函件格式范例6篇

前言:中文期刊网精心挑选了函件格式范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

函件格式

函件格式范文1

【关键字】Excel 函数嵌套

Excel是办公自动化中非常重要的一款软件,它的数据处理功能在现有的文字处理软件中独占鳌头,特别是Excel的函数功能更是十分强大,在生活和工作实践中得到重要应用。Excel中所提的函数其实是一些预定义的公式,它们使用一些称为参数的特定数值按特定的顺序或结构进行计算。用户可以直接用它们对某个区域内的数值进行一系列运算。

Excel函数一共有11类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。

函数的基本结构以函数名称开始,后面是左圆括号、以逗号分隔的参数和右圆括号。如果函数以公式的形式出现,函数名称的前面必须键入等号(=)。

嵌套函数,是指在某些情况下,用户可能需要将某函数作为另一函数的参数使用,它返回的数值类型必须与参数使用的数值类型相同。在处理复杂问题时,一个或两个函数的单独使用无法有效解决问题,甚至无法解决,那么,通过嵌套函数的使用就能方便解决问题。下面,通过几个实例介绍嵌套函数的运用。

1 单个函数的嵌套:个人所得税的计算

假设个人收入所得税的稽征办法是:工资在1000元以下的免征个人所得税,工资1000元以上至1500元的超过部分按5%的税率征收,1500元以上至2000元的超过部分按10%的税率征收,高于2000元的超过部分按30%的税率征收。

假如工作表的B列存放职工姓名,C列存放工资,选中D列的空白单元格输入公式“=IF(C2

例子中用到的函数是IF函数,它用于执行真假值判断后,根据逻辑测试的真假值返回不同的结果,因此IF函数也称为条件函数。它的应用很广泛,可以使用函数IF 对数值和公式进行条件检测。

2 多个函数嵌套

2.1 员工奖金计算

假如有一张某公司员工出勤表,且该公司规定一个月奖金基数为1000元,病假1天扣10元,事假一天扣20元,旷工一天扣50元,扣完为止。计算出每个员工的当月奖金. 选中BM4单元格,输入公式:=IF(1000-COUNTIF(C4:BL4,"病假")*5-COUNTIF(C4:BL4,"事假")*10-COUNTIF(C4:BL4,"旷工")*25>0,1000-COUNTIF(C4:BL4,"病假")*5-COUNTIF(C4:BL4,"事假")*10-COUNTIF(C4:BL4,"旷工")*25,0),确认,计算出第一位员工的当月奖金额。

上述公式的含义是:用“COUNTIF(C4:BL4,"病假")、COUNTIF(C4:BL4,"事假")、COUNTIF(C4:BL4,"旷工")”分别用于统计每位员工的病假、事假、旷工的次数,再分别乘以“5、10、25”(每“半天”为一次)计算出所要扣去的奖励额,再用基数“1000”减去上述扣去的金额。如果(IF)差大于“0”,则显示差(即员工的奖金额),否则显示“0”(扣完为止)。再次选中BM4单元格,用“填充柄”将上述公式复制到下面的单元格中,用于计算其它员工的当月奖励额。

例子中用到的函数:

条件计数函数COUNTIF

语法:COUNTIF(range,criteria)。

参数:range为需要统计的符合条件的单元格区域;criteria为参与计算的单元格条件,其形式可以为数字、表达式或文本(如36、″>160″和″男″等)。条件中的数字可以直接写入,表达式和文本必须加引号。

2.2 人民币小写金额转换为大写金额

很多会计人员都无法准确而快速地将会计报表中的小写金额转化为大写金额,如果手工输入这些大写金额,或者或少总会出现种错误,并且输入的速度慢了很多,这样就大大影响了工作效率。那么通过Excel函数多次嵌套可以轻松解决人民币金额从小写转换大写,下面以实例进行说明。

第1步 在Excel工作表中输入相关数据,并在A列中输入一些具有代表性的人民币小写数据用来测试函数的功能。

第2步 在B2单元格中输入公式"=IF(ABS(A2)

第3步 仔细检查公式输入无误后,按回车键即可将A2单元格中人民币小写金额转换为人民币大写金额。

第4步 拖动B2单元格中的填充柄将公式复制到以下相关的单元格中,即可将A列中数字转换为人民币大写。从公式的执行结果来看,此公式可以处理各种情况。

例子中用到的函数:

绝对值函数ABS(number),返回给定数值的绝对值取整函数INT(number),返回给定数值的整数文本函数TEXT(value,format_text),根据指定的数字格式将数值转换成文本舍入函数ROUND(number,num_digits),按指定的位数对数值进行四舍五入

Excel应用软件提供了大量函数,函数之间的嵌套更是十分丰富,虽然嵌套函数看似十分复杂,但是经过深入的学习和实践,掌握正确的函数并相互嵌套,将会快捷有效地解决实际问题。

函件格式范文2

[关键词]HDF格式;Matlab;科学数据

中图分类号:TP319 文献标识码:A 文章编号:1009-914X(2014)47-0312-01

1 引言

科学研究需要对大量的数据进行处理,而这些科学数据有着很多不同的存储形式和标准格式。HDF是美国国家高级计算机应用中心(NCSA)为了满足各种领域研究需要而开发出的一种能高效存储和分发科学数据的新型数据格式。HDF的数据格式是一种分层式数据管理结构,是一个能够自我描述、多目标、用于科学数据存储和分发的数据格式。HDF格式文件被广泛运用于科学数据共享,是目前国际上数据共享应用较广泛的文件格式。正确高效地读取HDF文件里面的数据,是共享HDF格式科学数据的前提。目前比较常用的读取HDF文件的方式是使用IDL、C和Fortran等传统语言工具和GrADS等绘图软件。但是这些读取方式对于非专业人员来说都有一定的难度,不容易在短期内快速掌握,而利用Matlab读取HDF格式数据则相对简单高效。

2 HDF文件介绍

HDF是由伊利诺斯州大学的美国国家超级计算应用中心(NCSA)于1987年开发的一套文件格式,并包括对HDF文件进行操作的函数库。简单说来,HDF是容许共享跨平台的自我描述文件。它的跨平台性,允许人们在不同的操作系统上操作HDF文件而不用对其进行格式转换;它的自我描述性意味着一个数据集,例如一个多维的数字序列,有逻辑上与它联系的额外的元数据,这些元数据用来描述诸如数据集的名称、维数、每维上的元素个数等等。

1993年美国国家航空航天局(NASA)决定把HDF格式作为存储和EOS数据的标准格式,于是NASA和NCSA在HDF标准的基础上,开发了一种专门用于存储EOS产品的HDF格式,称之为HDF-EOS。HDF-EOS是HDF的扩展,它主要扩充了两项功能:一是提供了一种系统宽搜索服务方式,它能在没有读文件本身的情况下搜索文件内容;二是提供了有效的存储地理定位数据,将科学数据与地理点捆绑在一起。目前国内由于MODIS接收站的处理系统不同,因此采用这两种格式的都有。但是,这并不妨碍我们用Matlab对其进行处理,因为Matlab对这两种数据格式都能很好地支持。

3 Matlab读取HDF文件的方法

Matlab提供了三种从HDF或者HDF-EOS数据集中读取数据的方法:HDF输入工具、Matlab高级输入函数以及Matlab命令行用法(低级函数用法)。下面分别介绍这三种方法。

①HDF输入工具法,语法为hdftool

HDFImportTool是一个可视化的HDF文件输入工具。此工具可以同时打开多个HDF或HDF-EOS文件。打开文件,选定一个要打开的数据集(DataSet),再选择好相应的参数后,点击Import,即可把选择的数据输入Matlab工作区。因为是可视化的工具,所以该方法简单直观,操作简便易行。

②使用Matlab高级输入函数hdfread

hdfread这个函数隐藏了HDF库中规定的低级函数所必须的许多操作细节。例如,如果使用低级函数从HDF文件中读取数据,需要打开HDF文件,选取数据集,读取数据集中的数据,最后关闭文件这样一系列的操作过程,但是hdfread函数已经把这些所有的过程都包括在内了。因此使用起来相对简单一些。hdfread函数的常用法是:

data=hdfread(filename,dataset);

其中data返回指定数据集中的所有数据,dataset的名称可以由hdfinfo函数获得。

③使用Matlab命令行接口

Matlab用一个单独的低级函数来代替HDF库函数中的一系列应用程序接口(API)的子程序,只要给这个函数的第一个参数指定不同的值,就能相应的使用相当于HDFAPI中不同子程序的功能。这些低级函数的使用需要指定的过程。

下面就以hdfsd这个函数的使用来详细说明。

根据前面所述的流程,首先必须打开HDF文件,函数的语法为:

sd_id=hdfsd(‘start’,‘mydata.hdf’,‘read’);

上式中sd_id返回一个正值表示文件打开成功;返回-1则表示打开文件不成功。在下面的用法中sd_id将用来表示mydata.hdf这个文件。read表示读文件。

其次,要选择数据集,用

sds_id=hdfsd(‘select’,sd_id,sds_idx);

sds_id将在下面的用法中代表所打开的数的数据集,它是要打开的数据集在HDF文件中的索引号。然后是最重要的一步,从数据集中读文件,语法为:

[data,status]=hdfsd(‘readdata’,sds_id,ds_start,de_stride,ds_edges);

ds_start指定从第几个数据开始读取;ds_stride表示读数据的步长;ds_edges表示数组中每一维的长度。

最后是关闭数据集和HDF文件,语法分别为:

stat=hdfsd(‘endaccess’,sds_id);

stat=hdfsd(‘end’,sd_id);

从上面的hdfsd函数的用法中可以看出,虽然只有一个函数,但是由于给函数的第一个参数指定了不同的值,所以它能表示各种不同的用法。

4 结语

从上述说明可以看出,利用Matlab实现HDF文件数据的读取极为简单和高效。这一读取方法非常适用于程序基础不高或非专业的人员使用,同时对HDF文件的操作直观,也可以节省大量读取HDF文件的时间,不必把时间花在库函数的配置上。

参考文献

[1] 景毅刚,李登科,张树誉.HDF-EOS数据格式及其数据导入[J].气象科技,2005,33(3):278-288.

函件格式范文3

关键词:自定义函数 构成 语法规则

1、Excel版本与功能

Excel2007是Office2007系列办公软件的主要组件之一,是一个功能强大的电子表格制作软件。使用Excel2007可进行数据统计,数据分析,汇总,查询,筛选,分类汇总,数据透视表等操作,并可将表格以图表的形式表现和输出,还具有强大的数据综合管理与分析功能,可简单快捷地配合其他软件进行数据库相关操作。其广泛应用于财务、数据分析等领域。

2、Excel的函数类型

工作表中的数据,有些是根据基础数据计算得出的,而对基础数据的计算是通过公式实现的。Excel为用户提供了大量的函数,这些函数都是Excel 预定义的公式。如求和函数(SUM)、求平均值函数(AVERAGE)等。函数处理数据的方式与公式处理数据的方式是相同的,而使用函数可以使公式变得更加简单。

Excel函数一共有11类,分别是:数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数、用户自定义函数

3、自定义函数的打开方式和函数构成

3.1 自定义函数的打开方式

打开自定义函数的方式有两种。

(1)在Excel工作表中,选择菜单“工具宏Visual Basic编辑器”命令,打开Visual Basic窗口,然后选择菜单“插入模块”命令,插入一个名为“模块1”的模块。

(2)同时按住Alt键和F11键,可以直接打开自定义函数的窗口。

3.2 函数的结构

公式选项板是帮助创建或编辑公式的工具,还可提供有关函数及其参数的信息。单击编辑栏中的“编辑公式”按钮,或是单击“常用”工具栏中的“粘贴函数” 按钮之后,就会在编辑栏下面出现公式选项板。

3.3 函数的语法规则

函数由等号(=)、函数名和参数组成。函数名通常用大写字母表示,用来描述函数的功能。函数的基本形式为:=函数名(参数1,参数2,…),参数可以是数字、单元格引用或函数所需要的其他信息。参数要用圆括号括起来,当参数是多个时,要用“,”分隔开。函数本身也可以做为参数,形成函数嵌套。Excel最多允许嵌套七级函数。

4、应用举例

使用自定义函数计算个人交纳的党费。

收缴标准为:固定工资(几项工资之和,计算党费的基数)小于3000元(含)的缴费比例为0.5%,固定工资在3000-5000元(含)之间的缴费比例为1%,固定工资在5000-10000元(含)之间的交费比例为1.5%,固定工资在10000元之间的交费比例为2%。

在Sheet1工作表的A、B、C、D列中分别存放“姓名”、“总工资”、“固定工资”、“缴纳党费”字段数据。

选择菜单“工具宏Visual Basic编辑器”命令或按下键盘Alt+F11组合键,打开Visual Basic窗口,我们将在这里自定义函数。

进入Visual Basic窗口后,选择菜单“插入模块”命令,于是得到“模块1”,在其中输入如下自定义函数的代码:

Function df(x)

Const r1 As Double =0.005

Const r2 As Double =0.01

Const r3 As Double =0.015

Const r4 As Double =0.02

If x

df=x*r1

End if

If x3000 then

df=x*r2

End if

If x5000 then

df=x*r3

End if

If x>10000 then

df=x*r4

End if

End Function

函数自定义完成后,选择菜单“文件关闭并返回到Microsoft Excel”命令,返回到Excel工作表窗口,在D2单元格中输入公式“=df(C2)”,回车后就计算出了第一个员工应交纳党费,然后用公式填充柄复制公式到其后面的单元格,这样就利用自定义函数完成了个人党费的计算。

从自定义函数的代码中可以看出,用这种方式,自定义函数的功能非常易于理解,同时如果交费比例改变,相应地变化r1、r2、r3、r4的值即可。

总之,自定义函数可以简化我们的工作。有些工作我们的确可以在公式中组合使用Excel内置的函数来完成任务,但是这样做的一个明显缺点是,我们的公式可能太冗长、繁琐,可读性很差,不易于管理,除了自己之外别人可能很难理解。这时,我们可以通过使用自定义函数来简化自己的工作。其次,自定义函数还可以满足我们个性化的需要,可以使公式具有更强大和更灵活的功能。实际工作的要求千变万化,当使用Excel内置函数不能圆满地解决问题时,我们就可以使用自定义函数来满足其个性化需求。

参考文献

[1](美)John Walkenbach著,张兆心 译.中文版Excel2007公式与函数应用宝典.清华大学出版社,2008年.

[2]陈 威,黄 锐编著.Excel 2007公式与函数实例详解.人民邮电出版社,2009年.

[3]王红卫,白力军编著.Excel函数经典应用实例.清华大学出版社,2008年.

函件格式范文4

【关键词】Excel软件 公式函数 审计实务运用

Excel功能之强大让人叹为观止,我无数次地给同行以及学生说过的一句话是:“只有你想不到,没有Excel做不到”。Excel提供的大量的内置函数从本质上来说是一些预定义的公式,这些函数使用参数按预先定义好的顺序或结构进行计算。用户可以直接应用这些函数对活动工作表的某个区域内的数值进行系列计算。在实务中,我们只需要掌握部分函数的使用方法,便可事半功倍。笔者将会介绍几个较为实用的函数。

一、LEFT、MID、RIGHT、LEN和FIND函数

数据的整理工作在审计实务中占了很大比重,因为大部分从客户财务系统中导出的数据格式并不全都是规范有序的,那审计师就需要利用各种Excel函数从中提取审计所需要的数据信息。

(一)函数语法

1. LEFT(text, num_chars):从字符串的最左端位置提取指定数量的字符;

2. MID(text, start_num, num_chars):从字符串中间的任意位置提取指定数量的字符;

3. RIGHT(text,num_chars ):从字符串的最右端位置提取指定数量的字符。

其中,text 表示要提取字符的字符串位置;start_num表示开始提取字符串的位置;num_chars 表示需要提取的字符数,忽略时为1。LEFT、MID和RIGHT 函数的运用基本一致,区别在于一个从左开始提取字符串, 一个从中间任意位置开始提取字符串,一个从右开始提取字符串。

4. LEN(text):返回字符串中的字符个数,即计算字符串的长度。

5. FIND(find_text,within_text,s tart_num):查找其他文本字符串(within_text) 内的文本字符串(find_text),并从within_text 的首字符开始返回find_text 的起始位置编号。其中,“find_text”表示要查找的字符串;“within_text”表示要在其中进行搜索的字符串,“start_num”表示起始搜索位置,在within_text 中第一个字符的位置为1,忽略时,start_num= 1。

(二)在审计中的运用实例

实务中经常会有财务人员将存货数量直接填列在摘要栏内,表1列示了类似情况,如果逐个摘录摘要文本中的数量信息并手工录入,既耗时且还容易出错,但若审计员了解上述一组提取数据的函数,提取出存货数量就会迎刃而解。

由于文本中每笔交易数量的位数不同,所以我们不能直接用RIGHT函数提取摘要栏内的数量信息。假设我们需要提取第一笔摘要栏“电源模块6ES73071EA000AA0:257”中的数量信息“257”, 则复合函数公式为“=RIGHT(B3,LEN(B3)-FIND(“:”,B3,1)”。拆分各公式后具体介绍如下:

LEN(B3): 测量该字符串长度,结果为24;

FIND(“:”,B3,1): 查找冒号在该字符串中所处位置, 结果为21;

RIGHT(B3,3): 通过LEN 和FIND函数组合运用,得出需要在B3单元格中从右返回3个字符(即24-21= 3), 结果为“257”。

熟练掌握后, 同理还可以提取处于最左边或者中间任意位置的数量信息。

二、VLOOKUP、HLOOKUP函数

VLOOKUP函数和HLOOKUP函数是用户在查找数据时使用频率非常高的Excel函数。利用这两个函数可以实现一些简单的数据查询。

(一)函数语法

1. VLOOKUP(lookup_value,table_array,col_index_num,range_lookup):在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。

2. HLOOKUP(lookup_value,table_array,row_index_num,range_lookup):在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。

其中,lookup_value : 需要在数据表首列进行搜索的值。

table_array: 需要搜索数据的信息表。

col_index_num:满足条件的单元格在数组区域table_array中的列序号。

row_index_num:满足条件的单元格在数组区域table_array中的行序号。

range_lookup : 在查找时, 是否需要精确匹配。如果为FALSE,则大致匹配,如果为TRUE 或忽略,则精确匹配(并区分全/ 半角)。在实务中, 一般选择大致匹配, 即“FALSE”。

VLOOKUP函数和HLOOKUP函数的语法非常相似,功能基本相同。主要区别是VLOOKUP主要用于搜索用户查找范围中的首列中满足条件的数据,并根据指定的列号返回对应的值,唯一的区别在于VLOOKUP函数按列进行查询,而HLOOKUP函数按行查询。

(二)在审计中的运用实例

在进行审计工作时,往往会需要以前年度的对比数,比如说按客户分类的应收账款余额就需要列示出该客户上年末的对比数,通过两期对比数,我们可以判断有无客户余额变化情况、有无新增客户等情况。表2、表3分别给出了某公司截至2013年12月31日以及2012年12月31日按客户分类的应收账款余额。

首先,在“2013年应收账款余额”工作表的D2单元格内粘贴“2012年12月31日”字符串, 作为行标题。然后, 在“2013年”工作表D3单元格内使用VLOOKUP 函数, 公式为“=VLOOKUP(A3,'2012年应收账款明细账'!$A$3:$C$7,3,FALSE)”,依次类推,其中“$”符号是为了绝对引用和相对引用单元格信息,以便通过鼠标的单元格拖放功能, 让电脑自动生成D列内其他行次的单元格信息。在表2 和表3 的基础上, 经上述操作并略作整理, 便可得到表4 所示结果。其中,因为海克斯康测量技术是2013年度新增的一家客户,所以其在2012年12月31日没有余额,公式自动返回“#N/A”。

三、COUNTIF、SUMIF、SUBTOTAL函数

(一)函数语法

1. COUNTIF(range,criteria):主要用于有目的地统计指定范围内满足特地条件的数据个数。其中,range必须是对单元格区域的直接引用或由引用函数产生的间接引用;crieria是定义的特点条件。

2. SUMIF(range,criteria,[sum_range]):主要用于按指定条件在查找区域进行查找,并返回查找区域内满足条件数值的和。SUMIF的前两个参数和COUNTIF函数完全一致,如果不输入数据求和区域sum_range,则SUMIF函数会对查找区域range自动求和。

3. SUBTOTAL (function_num,ref1,ref2, …):SUBTOTAL主要用于筛选下的数据统计,是Excel中唯一一个可以只统计可见单元格的函数。其中:function_num参数使该函数具备求和、计数、求平均值等等功能,在审计实务中,运用最多的function_num是9,即对可见单元格求和。

(二)在审计中的运用实例

表5是某公司按产品分类的主营业务收入明细账,在审计实务中,审计人员可能需要统计出每类产品的销量以及销售金额。这里就可以用到COUNTIF函数以及SUMIF函数。

首先编制表6列出所需要整理的信息,在E3单元格使用COUNTIF函数,公式为“=COUNTIF($A$3:$A$13,D3)”,在F3单元格使用SUMIF函数,公式为“=SUMIF($A$3:$A$13,D3,$B$3:$B$13)”,依次类推,让电脑自动生成E列以及F列内其他行次的单元格信息,经上述操作之后便可得出如下表6。

当然,上述功能也可以通过筛选之后利用SUBTOTAL函数对可见单元格进行求和处理完成。

本文所介绍的几个公式函数仅仅是Excel庞大公式函数中的“冰山一角”,在既定的审计程序目标和有限的审计工作时间内,若想不断地提高工作效率,就需要审计人员不断地去探索和完善。

【参考文献】

[1]张宇. 浅谈Excel软件在审计实务中的运用[J].会计之友,2008(10).

函件格式范文5

函,即信;公函即公务信件。它是上下级和平行机关或不相隶属机关之间在商洽和联系工作、询问和答复问题时所使用的文体。函的特点是不受公文规定的严格限制,如不用正式文件头,也可不编文件号,有时还可不拟标题,因此用起来极为简便。

公函大体有以下几种用法:

1、下级机关向上级机关询问一般事宜,或上级机关答复或催办下级机关有关事宜。

2、平行机关或不相隶属机关之间商洽有关事宜,

3、用函来通知一般事项。如通知开一般性的会议、要求下级机关报送某项材料或统计某些数字等时,也常用公函。

4、向上级机关请示较小事宜也常用函。

函件采用书写、复印、打印、传真等传递方式均可。

函的结构、内容和写法

由于函的类别较多,从制作格式到内容表述均有一定灵活机动性。主要介绍规范性公函的结构、内容和写法。

公函由首部、正文和尾部三部分组成。其各部分的格式、内容和写法要求如下:

(一)首部。主要包括标题、主送机关两个项目内容。

1、标题。公函的标题一般有两种形式。一种是由发文机关名称、事由和文种构成。另一种是由事由和文种构成。

2、主送机关。即受文并办理来函事项的机关单位,于文首顶格写明全称或者规范化简称,其后用冒号。

(二)正文。其结构一般由开头、主体、结尾、结语等部分组成。

1、开头。主要说明发函的缘由。一般要求概括交函的目的、根据、原因等内容,然后用“现将有关问题说明如下:”或“现将有关事项函复如下:”等过渡语转入下文。复函的缘由部分,一般首先引叙来文的标题、发文字号,然后再交代根据,以说明发文的缘由。

2、主体。这是函的核心内容部分,主要说明致函事项。函的事项部分内容单一,一函一事,行文要直陈其事。无论是商洽工作,询问和答复问题,还是向有关主管部门请求批准事项等,都要用简洁得体的语言把需要告诉对方的问题、意见叙写清楚。如果属于复函,还要注意答复事项的针对性和明确性。

(三)结尾。一般用礼貌性语言向对方提出希望。或请对方协助解决某一问题,或请对方及时复函,或请对方提出意见或请主管部门批准等。

(四)结语。通常应根据函询、函告、函商或函复的事项,选择运用不同的结束语。如“特此函询(商)”、“请即复函”、“特此函告”、“特此函复”等。有的函也可以不用结束语,如属便函,可以像普通信件一样,使用“此致”、“敬礼”。

(五)结尾落款。一般包括署名和成文时间两项内容。

署名机关单位名称,写明成文时间年、月、日;并加盖公章。

撰写函件应注意的问题

函的写作,首先要注意行文简洁明确,用语把握分寸。无论是平行机关或者是不相隶属的行文,都要注意语气平和有礼,不要倚势压人或强人所难,也不必逢迎恭维、曲意客套。至于复函,则要注意行文的针对性,答复的明确性。

其次,函也有时效性的问题,特别是复函更应该迅速、及时。像对待其他公文一样,及时处理函件,以保证公务等活动的正常进行。

中国科学院××研究所关于建立全面协作关系的函

函件格式范文6

关键词:C语言;文件处理;程序

中图分类号:TP312文献标识码:A文章编号:1009-3044(2010)17-4711-03

Based on C Language Program of the Realization of File Processing and Analysis

YU Min

(Changzhou Liu Guojun Vocational Technology College,Changzhou 213000, China)

Abstract: Using read and write technical of C language, you can read data from a disk file to the computer memory, after processing the data or intermediate results still can output to disk file permanent preservation. This article by "rating of handling procedures" as an example, this paper expounds the C language file processing method and process of the general.

Key words: C language; file handling; program

C语言具有较强的文件处理功能。C文件是典型的流式文件。在c语言中,文件被视为一个字符的序列,是由一个一个字符的数据顺序组成,而文件的存取是以字符为单位。根据数据的组织形式,C文件可分为文本文件(ASCⅡ文件)和二进制文件。

运用C语言,可以编制程序实现对一个已经存在的记录文件中的数据进行处理,结果信息既可显示到屏幕终端,也可再次保存到磁盘文件中去。本文以“评分处理程序”的实现为例,阐述了C语言文件处理的一般流程和方法。

1 需求分析

某竞赛活动,聘请十位专家作为评委为八位参赛选手进行现场打分,现已将选手的评分存于文本文档score.txt中,试以此为原始数据,去掉一个最高分和一个最低分后取余下分数的平均分,作为每位选手的最终得分并按此由高到低排名后存入文本文档result.txt中。

1.1 处理流程

事务处理流程(不包括数据处理的具体过程)如图1所示。

1.2 具体任务

1) 从文本文件score.txt中(如图2所示),按格式读出原始数据显示到屏幕,求出每位选手的总分存total数组中并显示到屏幕。

2) 找出每位选手的最高分和最低分后显示到屏幕。

3) 总分去掉一个最高分和一个最低分后取余下分数的平均分作为每位选手的最终得分仍存total数组中并显示到屏幕。

4) 按最终得分由高到低排名后存入文本文件result.txt中(如图3所示)。

2 源文件分析

在文本文件score.txt中,以记录的形式存放了十位评委对八位参赛选手的打分。每行记录均按选手编号,选手姓名和十位评委的打分依次存放,且编号和姓名为字符,评委打分为保留二位小数的实数。如何将数据从文件读取到内存中?如何存放?根据前面介绍,C文件可视为由一个个字符数据顺序组成的字符序列。则可选用fscanf函数,从此文件流中执行格式化输入,将编号、姓名和分数按不同的格式读入到内存。读入后,可将八位选手的编号(三位字符)存放在二维字符数组number[8][4],姓名(不超过四个汉字即八个字符)存放在二维字符数组name[8][9],十位评委的打分则存放在二维实型数组score[8][10]中待处理。为方便读者理解数据读入前后在文件与内存中的存放形式,将score.txt文件内容划分成三大块对应内存中的number,name和score数组。

3 程序设计与实现

用C语言实现评分处理程序,使其具有读源数据文件、求总分、平均分、最高分、最低分、排序和写结果文件等功能。

3.1 序设计思路

C语言是面向结构的程序设计语言,且C程序是由函数构成的。根据功能设计本程序的函数包括:主函数main( )、读文件函数readfile( ) 、数据处理函数dealscore( ) 、求最高分函数max( ) 、求最低分函数min( ) 、排序函数getorder( )和写文件函数writefile( )。各函数间通过函数调用实现功能的整合,其中主函数分别调用读文件函数、数据处理函数、排序函数和写文件函数;数据处理函数再分别调用求最高分函数和求最低分函数。

3.2 程序流程图

本程序的执行流程如图4所示。

3.3 程序实现方法

1) 主函数:按一定顺序调用各功能函数,串起整个程序,实现本程序功能。

2) 读文件函数:主要实现从给定文件中读取数据存数组并按格式显示到屏幕。首先定义文件指针fpscore,再利用fopen函数打开文件,由于score.txt为文本文件,则选用“r”方式打开。然后读文件存相应数组,C语言中读文件的函数较多,有读入单个字符函数fgetc、读入字符串函数fgets、读入数据块函数fread(一般适用于二进制文件)和格式化读入函数fscanf。根据前面介绍的源文件分析及数据处理的要求,选择使用fscanf函数进行格式化读入,并且存入不同类型和大小的数组:number,name和score。fscnaf函数的原型是:fscanf(文件指针,格式字符串,输入表列);其中文件指针即为fpscore,格式字符串中依次为%s,%s和十个%f及\n,分别控制输入表列中的number[k],name[k]和score[k][0]~ score[k][9],按行循环地读入,其中k指第k位选手,每读完一行选手的数据,变量k就累加一次,故当本程序段执行完后,k正好为选手的人数。循环可利用while语句实现,只要不到文件末尾就读文件,关于是否已读到文本文件末尾,可用EOF判断或feof函数测试,此处用feof函数测试实现较为方便。最后利用fclose函数关闭该文件。

3) 数据处理函数:主要实现求每位选手的最终得分。首先利用for循环求出每位选手的十位评委的评分之和存入total数组,再调用max( ) 和min( )函数求出每位选手的最高分和最低分,最后按总分去掉一个最高分和去掉一个最低分后求平均的方法求出每位选手的最终得分。并将这些中间结果显示到屏幕,如图5所示。

4) 求最高分函数:主要实现求某位选手的最高分。函数为有参函数,形式参数为minscore[10],接收dealscore( )函数中实际参数score[i]的值,两者类型一致,且score[i]其实表示第i位选手的十个评分,故大小也一致,可以实现数据的传递。然后利用比较法求出一组数中的最大值即为最高分。最后用return语句返回最高分给主调函数待处理。实现代码如下:

/*求最高分函数*/

float max(float maxscore[10])

{int i;

float max=maxscore[0];

for(i=1;i

if(maxscore[i]>max) max=maxscore[i];

return(max);}

5) 求最低分函数:主要实现求某位选手的最低分。方法与求最高分类似,就不做说明。

6) 排序函数:主要实现将数据按最终得分由高到低排序。排序算法选用冒泡算法,算法中数据交换的条件是前一最终得分小于后一最终得分,值得注意的是:编号和姓名均为字符串,C语言中字符串的交换必须使用字符串处理函数strcpy()实现。另外,除了交换编号、姓名、最终得分外还需依次同时交换该相邻两位选手的十个评分,否则score数组中的数据将混乱。

实现代码如下:

/*排序函数*/

void getorder(char num[100][4],char xm[100][9],float cj[100][10],float sum[100],int t)

{int i,m,n;

char x[4],y[9];

float s,f;

for(m=1;m

{for(n=0;n

if(sum[n]

{strcpy(x,num[n]);strcpy(num[n],num[n+1]);strcpy(num[n+1],x);

strcpy(y,xm[n]);strcpy(xm[n],xm[n+1]);strcpy(xm[n+1],y);

for(i=0;i

{f=cj[n][i];cj[n][i]=cj[n+1][i];cj[n+1][i]=f;}

s=sum[n];sum[n]=sum[n+1];sum[n+1]=s; }}}

7) 写文件函数:主要实现将最终结果写入文本文件result.txt中。首先定义文件指针fpdkdz,再利用fopen函数打开文件,由于result.txt为文本文件,则选用“w”方式打开。然后将名次、编号、姓名、得分依次写入文件,C语言中写文件的函数也较多,有写入单个字符函数fputc、写入字符串函数fputs、写入数据块函数fwrite(一般适用于二进制文件)和格式化写入函数fprintf。根据要求选择使用fprintf函数进行格式化写入,每写完一位选手的结果就换一行。其中名次可用计数器i依次累加实现。最后利用fclose函数关闭该文件。

4 结论与分析

C语言中文件处理的一般步骤可归纳为:先利用fopen()函数配合恰当的使用方式打开文件,再选择适当的读写函数读写文件,最后切记一定要利用fclose()函数关闭该文件,以避免意外的发生。

笔者认为C语言文件操作时还应特别注意区分文本文件与二进制文件,根据文件类型和具体要求选择合适的文件使用方式。另外,在读写文件尤其是读文件时还应关注文件的位置指针,必要时可使用rewind()函数重定位或fseek()函数移动位置指针,进行随机读写。

C语言文件处理较为实用,许多可供实际使用的C程序中都包含文件处理,掌握好文件的使用,还需更多的实践和探索。

参考文献:

[1] 谭浩强.C语言程序设计[M].北京:清华大学出版社,2005.