成绩处理

2024-11-07

成绩处理(精选5篇)

成绩处理 篇1

1 准备阶段

根据我院实际情况,学生平时成绩主要由上课出勤、平时作业、实验实训和课程实习四部分组成,前两部分各占20%,后两部分各占30%;学期期评成绩主要由期末考试成绩和平时成绩组成,其中平时成绩占40%,期末成绩占60%。现根据此情况准备《网页设计与制作》课程成绩评定的全部资料,并输入到EXCEL表中。

2 成绩量化阶段

根据习惯,大家在记平时成绩时总喜欢用“A+、A、A-、B+、B、B-,……”等符号来表示成绩,因此需要一个将这些符号量化成数值的问题。为方便计算,各符号量化对应表如表1所示。

由于此量化对应表为11项,故不便于使用EXCEL中的IF函数来进行嵌套,为此选用LOOKUP函数,其作用是返回向量或数组中的数值。

LOOKUP函数语法格式:LOOKUP(lookup_value,lookup_vector,result_vector)

其中:

Lookup_value为函数LOOKUP在第一个向量中所要查找的数值,可以为数字、文本、逻辑值或包含数值的名称或引用。

Lookup_vector为只包含一行或一列的区域,其数值可以为文本、数字或逻辑值,文本不区分大小写,但该数值必须按升序排序,否则不能返回正确的结果。

Result_vector只包含一行或一列的区域,其大小必须与Lookup_vector相对应。

说明:

如果函数LOOKUP找不到lookup_value,则查找lookup_vector中小于或等于lookup_value的最大数值。如果lookup_value小于lookup_vector中的最小值,函数LOOKUP返回错误值#N/A。

分析:

根据上述量化对应表,则LOOKUP函数应写成如下格式:

LOOKUP(D3,邀″A″,″A-″,″A+″,″B″,″B-″,″B+″,″C″,″C-″,″C+″,″D″,″E″妖,邀90,85,95,75,70,80,60,45,65,30,0妖)

具体操作:

(1)在E3单元格插入LOOKUP函数,并依次输入相应参数值,单击“确定”按钮后,E3单元格返回具体数值,如图1所示。

(2)单击E3单元格,用鼠标指向右下角的自动填充按钮并按下左键向下拖动进行自动填充。注意,如果D列单元格中没有数据,则E列相应单元格中会出现错误值#N/A。因此,应对函数进行改正。在E3单元格中单击,在地址栏中选定整个LOOKUP函数并右击,选择复制命令,然后再删除单元格中的函数,重新插入IF函数,如图2所示,输入好相关参数。

(3)单击“确定”按钮,重新自动填充整列数据;同理分别量化平时作业、实验实训、课程实习等成绩,如图3所示。

3 计算期评成绩

(1)计算平时成绩。在L3单元格单击,输入公式“=E3觹0.2+G3觹0.2+I3觹0.3+K3觹0.3”,但考虑到前面各项成绩有可能“没有即空白”及“四舍五入”的情况,更正公式为:“=IF(B3=″″,″″,INT(IF(E3=″″,0,E3觹0.2)+IF(G3=″″,0,G3觹0.2)+IF(I3=″″,0,I3觹0.3)+IF(K3=″″,0,K3觹0.3)+0.5))″,确定后再单击右下角自动填充柄自动填充整个平时成绩。

(2)计算期评成绩。在P3单元格单击,输入公式“=L3觹0.4+N3觹0.6”,但考虑前面类似情况及期末考试中有“请假、缺考、舞弊”等特殊情况,更正公式为:“=IF(B3=″″,″″,IF(OR(N3<40,N3=“缺考”,N3=“舞弊”,N3=“请假”),N3,INT(IF(L3=″″,0,L3觹0.4)+IF(OR(N3=″″,N3=“缺考”,N3=“舞弊”,N3=“请假”),0,N3觹0.6)+0.5))),确定后再单击右下角自动填充柄自动填充整个期评成绩,如图4所示。

4 成绩量化变评价

考虑成绩统计表的通用性,有时考查课程只需要成绩评价即可,因此,还需要将成绩由量化而转换成评价。

(1)平时成绩评价。在M3单元格单击,输入公式“=IF(L3=″″,″″,IF(AND(L3<=100,L3>=90),“优秀”,IF(AND(L3<90,L3>=75),“良好”,IF(AND(L3<75,L3>=60),“及格”,IF(AND(L3<60,L3>=0),“不及格”,″″))))”,确定后再使用填充柄自动填充整个平时成绩列。

(2)期末成绩评价。在O3单元格单击,输入公式:“=IF(B3=″″,″″,IF(AND(N3<=100,N3>=90),“优秀”,IF(AND(N3<90,N3>=75),“良好”,IF(AND(N3<75,N3>=60),“及格”,IF(AND(N3<60,N3>=0),“不及格”,N3)))))”,确定后再使用填充柄自动填充整个期末成绩列。

(3)期评成绩评价。在Q3单元格单击,输入公式:“=IF(B3=″″,″″,IF(AND(P3<=100,P3>=90),“优秀”,IF(AND(P3<90,P3>=75),“良好”,IF(AND(P3<75,P3>=60),“及格”,IF(AND(AVERAGEA(P3)<60,AVER-AGEA(P3)>=0),“不及格”,P3))))),确定后再使用填充柄自动填充整个期评成绩列,如图5所示。

5 表格美化及特殊格式显示

(1)选定期末成绩和期评成绩中数值单元格,单击“格式”菜单中的“条件格式”命令,弹出条件格式对话框,输入相应参数,如图6所示,单击确定即可。

(2)选定期末成绩和期评成绩中评价单元格,单击“格式”菜单中的“条件格式”命令,弹出条件格式对话框,输入相应参数,如图7所示,单击确定即可。

(3)到此,成绩评定模板已经完成,以后只需修改学生上课出勤、平时作业、实验实训、课程实习及期末考试成绩,即可自动完成学期成绩量化计算处理,成绩最终效果如图8所示。

6 结束语

成绩量化处理只是EXCEL中一个简单的应用,在EX-CEL中还有许多功能等待进一步去开发利用。

参考文献

[1]朱建平,等.Excel在统计工作中的应用[M].北京:清华大学出版社,2007-01.

[2]东方人华编.Office2003中文版入门与提高[M].北京:清华大学出版社,2004-07.

成绩处理 篇2

为进一步加强电大开放式教学班级教育教学管理,提高教学质量,规范学生学籍管理,参照中央广播电视大学课程平时成绩处理办法,教务科5次对电大班级的学生到课率进行了检查,结合任课教师上交的平时作业成绩、期末考试成绩,对相关上课不认真、随意请假,不服从教学管理,扰乱教学秩序的学生进行了相关处理,现将情况通报如下:

一、信息二班:

①刘志标、多杰才旦、刘颖、董晓霞、马生慧、郭永鑫、张泽宇、刚苗苗、尕松秋江,请长假至今未归,未按照正常手续办理请假,作“一科次平时成绩为“0分”处理;

②求吉尼玛请长假,未按学籍管理条例办理请假手续,且请假至今未归,作“二科次平时成绩为 “0分”处理;

③刘健在教务科督导中缺5次,作“二科次平时成绩为0分”处理;

④欧阳开放、宋志文、李秀炎、陆海峰、钟特在教务科督导中缺3次,作“一科次平时成绩为0分”处理; 欧阳开放在本学期学校组织的期末考试过程中,态度极度不端正,《ERP》期末考试成绩为“0分”,该课程期末平时成绩为“0分”;

⑤易武军、段吉梅、让丁、代吉拉毛、任志涛、武芬阳、李刚在教务科督导中均有缺课,作“一科次平时成绩不及格“处理。

二、商务二班:

①张旭华请长假,未按照正常手续办理请假,并且请假超时,作“二科次平时成绩为 “0分”处理;

②郑明远、田凯、张帅、胡梦倩、冯贵生、袁朵,在教务科督导中均有缺课,作“一科次平时成绩不及格“处理;

三、信息三班:

①拉毛杰、阿力木江·阿卜杜喀迪尔、扎西巴忠、祖力皮喀尔·麦提赛伊迪、伊利亚尔江·艾合麦提、胡西塔尔·努尔兰、高甜、请假至今未归,也未按学籍管理条例办理请假,且至今未归,以上同学均作“二科次平时成绩为 “0分”处理;

②旦正在本学期学校组织的期末考试中,态度极端不端正,《PS》期末卷面分为0分,该课程期末平时成绩为“0分”;

③地夏提·艾努瓦尔在本学期学校组织的期末考试中,态度极端不端正,《信息化管理与运作》期末考试卷面成绩为0分,该课程期末平时成绩为“0分”;

④麦麦提库尔班·艾斯凯尔、刘敏、拉毛才旦、才项闹吾、乙旦才让、地夏提·艾努瓦尔在教务科督导中缺均有缺课,作“一科次平时成绩不及格“处理;

四、商务三班:

①边妙玲、才本、仁青多结、李加才让、阿斯哈勒·沙勒达那提、阿勒青·也尔肯、华尼什汗、丁伟芹、欧阳毅、李紫薇,以上同学至今请假未归,也未按学籍管理条例办理请假,作“二科次平时成绩为

“0分”处理;

②马晓婷、尹炳花、祁志霞、光布加甫·阿丽腾图娅、格日措、张紫薇、彭金吾在教务科督导中缺均有缺课,作“一科次平时成绩不及格“处理;

五、信息四班:

①伊卜拉伊木·麦提努日、朝白、迪里亚尔·迪里夏提、旦正才仁、孜乃古丽·麦麦提图尔干、阿萨米丁·孜亚、南杰仁增、贺成海、魏有瑜、麦麦提艾力·麦麦提努热、赵深圳、阿卜力米提·阿卜杜喀迪尔、李景源、郑飞钊、贾涛,以上同学请长假至今未归,也未学籍管理条例办理请假手续,作“一科次平时成绩为“0分”处理;

六、商务四班:

①王欣、麦麦提江·麦提塞伊迪、芦闯江、以上同学请长假至今未归,也未学籍管理条例办理请假手续,作“一科次平时成绩为“0分”处理;

②黄爱香请长假,期满未归,通知多次未到校,作“二科次平时成绩为 “0分”处理;

③刘艳红、李婷在教务科督导中缺均有缺课,作“一科次平时成绩不及格”处理;

教 务 科

成绩处理 篇3

本系统采用基于Visual FoxPro 6.0可视化的程序开发语言, 它的界面灵活而友好, 并且可以使用户迅速地建立数据库及数据库表。它能与其他软件实现数据交换和数据共享, 并能支持客户机/服务器 (C/S) 结构, 它既支持交互环境, 又支持编程环境, 同时它具有向下兼容性, 以保证数据的完整性、一致性和只对有效的数据进行处理的面向对象编程的能力。它提供的控件可用于设计界面和实现多种功能, 对此控件的有效使用, 可以简化界面设计过程、减少编程人员的工作量, 有效地提高应用程序的运行效率和可靠性, 使系统调试相对简单。

由于Visual FoxPro 6.0语言对计算机硬件配置要求不高, 当前的计算机软、硬件配置足够满足开发方面的需求, 因此系统在技术上是绝对可行的。

2系统设计

系统开发的总体任务是实现对成绩录入的系统化、规范化和自动化等要求。使原本枯燥、繁琐及易出错的过程变成轻松、方便、快速。

本系统基于VFP数据库语言编写, 结合原中考报名数据库表使用单机或网络环境。系统总体功能模块图如图1所示。

该系统分别由系统设置模块、成绩录入模块、成绩比较等模块组成。

2.1系统设置模块的设计

系统设置模块实现了成绩处理系统的安装、服务器信息的收集、原始学生信息库的导入等功能。

该模块所包括以下几项内容:①成绩库名称登记;完成中考科目名称的删除或修改;②成绩上界规定:设置中考各科目成绩的最高分;③获取服务器名称:获取安装服务器之名称, 为创建共享做准备;④创建共享目录:完成数据库共享目录的创建;⑤导入中考报名库:完成中考原始报名库的导入;⑥创建客户端程序:创建成绩录入模块、成绩比较模块等;⑦完成界面。

通过系统设置模块, 用户可以很方便地对数据、服务器、相关数据等设置。当用户在进行系统设置时, 可以进行对中考科目的设置、各科目成绩最高分的设定, 防止数据录入过程中的误操作。并有系统自动获取服务器名称, 创建系统所需数据库表及导入原始招生库, 创建客户端程序。

2.2成绩录入模块的设计

成绩录入模块是该系统最主要的模块。该模块也是操作数据库表最频繁的模块, 如何使工作人员在操作过程中减少疲劳, 如何减少工作人员录入过程中的无关动作均是在编写程序过程中需要考虑的。

在编写程序过程中, 尽量减少屏幕中无关紧要的信息、降低屏幕的色彩, 防止视觉疲劳, 采用整个考场所有考生的成绩数据保存在内存中。当全部输入完毕后, 再一次性访问数据库, 对数据库中的表进行写操作, 从而减少了访问服务器的时间, 减轻了服务器的负担。

2.3成绩比较模块的设计

一般来说, 成绩录入和成绩复核分由不同的人来完成, 在这里一般只用录入总分, 检测总分是否和库内总分相符。不相符则提示工作人员检查, 相符则自动跳到下一记录。

3系统的实现与应用

3.1系统设置模块实现

系统设置模块主要是对系统初始环境的设置, 并同时创建各项需要使用到的数据库表、共享目录等。

系统安装及设置一共分为6步, 其中第1步主要是设置中考成绩录入时的科目名称及相应的代码, 在此设置及定义处理系统中的各字段与中考招生数据库中的各字段进行对应。

3.2成绩录入模块实现

成绩录入模块主要是操作员对中考成绩的录入, 进行在输入“起始考号”时, 系统会根据考号, 查找该考场的所以考生, 并将他们的准考证号显示在成绩录入界面内。在成绩输入时屏蔽掉了字母的输入, 在录入成绩这一步时就防误操作。部分代码如下:

go top

for i=1 to rs

scat fiel zkzh, &hcd1 to ack &&从表中读记录

arrai (i, 1) =ack (1)

arrai (i, 2) =ack (2)

skip

endfor

if rs<30

for x=rs+1 to 30

temp='thisform.container1.label'-allt (str (x) ) -'.visible'

temp2='thisform.container1.text'-allt (str (x) ) -'.visible'

&temp=.f.

&temp2=.f.

endfor

endif

for i=1 to rs

temp='thisform.container1.label'-allt (str (i) ) -'.visible'

temp1='thisform.container1.label'-allt (str (i) ) -'.caption'

temp2='thisform.container1.text'-allt (str (i) ) -'.visible'

temp3='thisform.container1.text'-allt (str (i) ) -'.value'

&temp1=arrai (i, 1)

&temp3=arrai (i, 2)

&temp=.t.

&temp2=.t.

endfor

thisform.container1.refresh

thisform.container1.text1.setfocus

3.3系统的性能测试与应用

通过对该系统的全面测试和部分操作人员的试用, 证明了该软件在功能上相当完整、人机界面友好、使用方便、安全可靠, 达到了预期的目标。但是在测试过程中, 还是发现了一些软件的不足和缺陷。

本软件已经基本可以满足本地中考成绩处理及录入的要求, 目前已在本地县、市的部分城市中试用。由于本系统己经投入实际使用中, 因此如果用户在操作或使用过程中发现问题, 可以随时反映问题。因此, 本系统的测试是全方位的, 这对于系统正常使用提供了有利保障。

4结束语

本文从开发背景、需求分析、系统环境设计、系统整体设计、数据库设计、主要技术等方面讨论了中考成绩录入系统的开发和应用。开发过程中以教委、学校和操作人员需求为导向, 结合多种开发语言和工具, 实现了中考成绩录入、核对、打印等功能, 方便操作人员在短期内对大量数据准确录入。

参考文献

[1]蒲玲.基于Web的学生成绩管理系统设计与实现[D].成都:电子科技大学, 2007.

[2]PHILIP J.PRAT, JOSEPHJ.ADAMSKI.数据库管理系统基础[M].陆洪毅, 杨文波, 程华, 等, 译.北京:机械工业出版社, 1999.

[3]游应德.基于Internet的学生信息管理系统——学生成绩管理系统[D].成都:电子科技大学, 2007.

[4]LESLIE KOORHAN, CHAI MCHARO.Client-Server Applicationswith Visual FoxPro and SQL Server[M].Hentzenwerke Publish-ing, 2000.

[5]ANDY KRAMEK, MARCIA AKINS, ANDY KRAMEK RICKSCHUM.MegaFox:1002 Things You Wantedto Know About Ex-tending Visual FoxPro[M].Hentzenwerke Publishing, 2003.

成绩处理 篇4

以某班成绩单图1为例

一、用Sum函数根据学生各科成绩统计出总分

方法:1、在I2单元格中输入公式:=Sum(C2:H2)可求出1号学生的总分。

2、将鼠标移至I2单元格右下角的“填充柄”上,鼠标变成实心十字形状。

3、按下鼠标左键,拖动鼠标向下拖拽,就可快速统计出其他学生的总分。(见图2)

二、用Average函数统计出各科的平均成绩

方法:

1、在J2单元格中输入公式:=Average(C2:H2),确认后,即可求出第一名同学的平均成绩。

2、将鼠标移至J2单元格右下角的“填充柄”上,鼠标变成实心十字形状,按下鼠标左键,拖动鼠标向下拖拽,就可快速统计出其他学生的平均成绩。

同理,我们可以利用这个函数求出各科成绩的平均分。(见图3)

注:若所得的平均数为非整数,可以选中所编辑的单元格列(如“平均分”这一列),单击右键,在弹出的快捷菜单中选择“设置单元格格式”,在弹出的单元格格式对话框中,选择“数字”选项卡中的数值一栏右侧设置要保留的小数位数。

三、用Rank函数根据总分进行名次的排列

利用Rank函数,可以计算出某个同学在全班的排名。RANK函数功能是返回某一数值在一列数值中相对于其他数值的排位。语法格式:RANK(Number,ref,order),Number表示需要排序的数值(或单元格地址);ref表示排序数值所处的单元格区域;order表示排序方式参数。order参数值如果为“0”或者省略,则按降序排名;如果为非“0”值,则按升序排名。

方法:

1、在K2单元格输入公式:=Rank(I2,$I$2:$I$47),确认后即可得出第一位同学的总分成绩在全班成绩中的排名结果。

2、将鼠标移至K2单元格右下角的“填充柄”上,鼠标变成实心十字形状。按下鼠标左键,拖动鼠标向下拖拽,就可得出其他学生在全班的排名。这时,选中整个成绩单,单击“数据”菜单中的排序选项,还可以对名次进行排序。(见图4)

注:使用这个函数需要注意的是,函数中涉及到的“$”符号,一定不要省略,这是对Excel中单元格地址的绝对引用,是指公式中的单元格地址或单元格区域的地址不随着公式位置的改变而发生改变。

四、用Countif函数统计出各科的优秀率、及格率

方法:

1、在C49单元格中输入公式:=COUNTIF(C2:C47,">=80")/COUNTA(C2:C47)即可求出语文成绩在80分以上的人数占总人数的百分比。

2、利用自动填充至H49单元格,求出其他各科的优秀率。用同样的方法可以求出各学科的及格率。(见图5)

注:因为输入的是百分数,所以单击右键在弹出的“单元格格式”对话框中将所编辑的单元格中的数值类型设置为百分数。

五、用Countif函数统计出各科各分数段的人数

方法:

1、在C54~C58单元格中分别输入

统计出″语文″低于60分,在60~70分,70~79分,80~89分区间段的学生人数。

2、利用自动填充可以求出各科成绩各分数段的学生人数。(见图6)

六、根据平均分利用if函数统计学生成绩总评

考试结束后根据学生的平均成绩给出正确的评价,可以更好的知道今后的教学工作,我可以用if函数来解决这个问题。

if函数功能:根据指定条件的逻辑判断的真假值,返回不同的结果。

If语法格式:if(Logical_test,Value_if_true,Value_if_false),Logical_teste用来表示逻辑判断表达式;Value_if_true表示当判断条件为逻辑“真”时返回的结果;Value_if_false表示当判断条件为逻辑“假”时返回的结果。

方法:

1、在L2单元格中输入公式:=if(J2>=85,"优秀",if(J2>=75,"良好",if(J2>=60,"及格","不及格")))。确认,可以计算出第1名学生的总评。渊下转第41页冤渊上接第49页冤

2、将鼠标移至L2单元格右下角的“填充柄”上,鼠标变成实心十字形状,拖动鼠标向下拖拽,就可得出其他学生总评成绩。(见图7)

七、用Large或Small函数统计出各科的前几名或后几名和用Max或Min函数统计出各科最高分或最低分

语法格式:Large(array,k)返回数据中第k个最大值。

Small(array,k)返回数据中第k个最小值。

Max(ref)返回一组数值中的最大值,忽略逻辑值及文本。

Min(ref)返回一组数值中的最小值,忽略逻辑值及文本。

例如:在某一单元格内输入=Max(C2:C47)或输入=Large(C2:C47,1)可以求出语文成绩的最高分;输入=Large(C2:C47,2)可以输出语文第二名的成绩。Min函数和Small函数同理。

成绩处理 篇5

1.要便于快速输入

由于田径比赛的径赛成绩是时间, 而时间的表示格式有多种, 国内常用“12"23”来表示“12秒23”, 而“1'02"34”则表示“1分02秒34”。但国际上通用的方式却不是这样, 而是采用“12.23”来表示“12秒23”, 用“1:02.34”表示“1分02秒34”。为了在比赛中快速地输入成绩, 可以考虑只输入数字, 利用Excel的自定义格式显示为所需的数据格式。由于在输入数据时, 不必输入各种标点符号, 将会大大提高输入成绩的速度。

2.数据的“非零进位”处理

由于输入的成绩是精确到百分之一秒的, 而成绩公告, 判断是否破纪录等都是按照十分之一秒。因此, 必须设计一个公式对输入成绩进行计算, 按“非零进位”的原则转换成为十分之一秒的成绩。

3.设计径赛成绩处理的界面

如图1所示, 在“A”、“B”、“C”、“D”、“E”、“F”、“G”列输入“项目”、“姓名”、“单位”、“输入成绩”、“公告成绩”、“名次”、“备注”。

由于在编排的时候已经有了基础的数据, 在比赛中仅需要在“输入成绩”列输入成绩即可。图1中“男子乙组400米”项目共有24位运动员, 但图中隐藏了部分的行。

4.设置“输入成绩”和“公告成绩”的自定义格式

选择“D”列, 右击该列的列标“D”, 在弹出的“快捷菜单”中选择“设置单元格格式”命令, 出现如图2所示的对话框。单击“数字”标签, 在“分类”列表框中单击“自定义”, 在“类型 (T) :”下面的文本框中输入“[<=6000]0!.00;[>6000]0!:00!.00”, 如图2所示。

“[<=6000]0!.00;[>6000]0!:00!.00”是一个数字的条件格式, 中括号里面的内容是条件, 随后是数字的显示格式, 多个条件以分号“;”分隔。需要注意的是, 自定义格式设置, 所有的标点符号都必须是英文标点, 否则出错。

设置该格式的意义是:当输入的成绩小于6000, 显示的格式为“0!.00”, 表示从最右边的数字开始, 往左边数到第二位数字, 在它的左边插入 (显示) 一个小数点, 也就是保留两位小数点, 因为小于1min的时间在输入时, 最大也就是5999, 这个数字当然小于6000;当输入的成绩大于6000, 显示的格式为“1!:00!.00”, 表示从最右边的数字开始, 往左边数到第二位数字, 在它左边插入 (显示) 一个小数点, 同理, 第四位数字的左边插入 (显示) “:” (冒号) , 表示分与秒的分隔符, 因为大于1分钟的成绩都是5位数字, 最小的10000, 也会比6000要大, 符合该条件。

同理, 对“E”列公告成绩的自定义格式设置方法大同小异, 所不同的是数字自定义格式的内容为:“[<=600]0!.0;[>600]0!:00!.0”。因为成绩公告的时间是精确到十分之一秒, 只有一位小数点。所以, 小于1m i n的成绩最大为“599”, 显示为“59.9”, 而1m i n以上的最 小成绩“10 0 0”, 显示为“1:00.0”。

5.设计公式转换成绩

因为“输入 成绩”是百分之一秒, 而“公告成绩”显示为十分之一秒, 所以, 必须设计计算公式进行成绩转换。

Excel的函数非常丰富, ROUNDUP函数就可以实现“非零进位”。因此, 可以在图1中的“E 2”单元格中输入:“=ROUNDUP (D2/10, 0) 公式1”。

“公式1”的含义:对“D2”单元格的值除以10, 并对所得的结果取0位小数, 也就是保留到整数位, 在保留整数位时, 进行“非零进位”的操作。这样就巧妙地实现百分之一秒的成绩转换为十分之一秒的成绩。

但是, “公式1”还存在缺憾, 因为, 如果输入成绩是“5991”~“5999”之间, 经过“非零进位”的计算, 都会转换为“600”, 显示为“60.0”;同理, 如果是“15991”~“15999”这种成绩, 经过转换后成为“1600”, 显示为“1:60.0”。众所周知, “时”、“分”、“秒”是“六十进制”, 逢60进1。

所以, 必须对“公式1”做进一步的修改, 不仅让公式能做到“非零进位”精确到十分之一秒, 还能判断如果由于进位的秒的时间是“60”, 就进位到“分”, 自动实现“时分秒”的“六十进制”的运算。

因此, 可以对“E2”单元格的公式进行修改:

=IF (MOD (D2, 10000) >5990, (INT (D2/10000) +1) *1000, ROUNDUP (D2/10, 0) ) 公式2

“公式2”的含义:可以把该公式分解为如下三部分:

MOD (D2, 10000) >5990公式2~1

(INT (D2/10000) +1) *1000公式2~2

ROUNDUP (D2/10, 0) 公式2~3

“公式2~1”、“公式2~2”、“公式2~3”是IF函数的三个参数, 其中“公式2~1”是IF函数的第一参数, “公式2~2”是IF函数的第二参数, “公式2~3”则为IF函数的第三参数。当“公式2~1”为“TRUE”, 也就是成立, 则执行“公式2~2”的运算, 否则执行“公式2~3”的运算。

“公式2~1”的含义:通过取余数函数MOD, 把“D2”单元格的值除以10000, 取余数, 得到除去“分”的值, 也就是得到“秒”的数值, 再把该余数与5990相比, 如果大于5990, 就为“TRUE”, 执行“公式2~2”的运算。

“公式2~2”的含义为:通过取整数函数, 把“D2”单元格的值除以10000, 取得商的整数, 丢去所有的小数, 也就是取得整数部分。当“D2”单元格的值小于10000, 整数为0, 当大于10000, 恰好能取得所有的“分”的值。由于“公式2~1”为“TRUE”, 也就是秒的数字是大于5990, 由于进位后的“秒”的数值为“60”, 故应该“秒”进位为“分”, “秒”转变为“00”。所以, 把取得的“分”的值+1, 就能进位为“分”了, 然后再把“分”的值乘以1000, 转化为“十分之一秒”的“分”的值。由于中小学生运动会的项目, 不存在成绩超过59m i n的运动项目, 因此不必做判断由于进位而达到60分钟而进位到小时运算, 尽管实现起来也很容易。

“公式2~3”就是“公式1”, 它的含义不再赘述。

“公式2”已经可以解决“百分之一秒”到“十分之一秒”的成绩转换, 并执行“非零进位”的原则。但是, “公式2”还不够强壮, 因为, 当把“公式2”往下复制, 在还没有比赛时, “输入成绩”为空白, 而“公告成绩”列显示“0”成绩, 不合理。因此, 可以通过嵌套一个I F函数进行“容错处理”, 也就是当输入成绩为“空白”时, 也显示为“空白”, 可以把“D2”单元格的公式修改为:

=IF (D2<>"", IF (MOD (D2, 10000) >5990, (INT (D2/10000) +1) *1000, ROUNDUP (D2/10, 0) ) , "") 公式3

“公式3”的含义:

“D2<>""”是第一个IF函数的第一参数, 作用是判断“D2”单元格是否为空, 当不为空时, 执行第二参数“IF (MOD (D2, 10000) >5990, (INT (D2/10000) +1) *1000, ROUNDUP (D2/10, 0) ) ”的运算, 该部分也就是“公式2”, 是“公式3”的核心部分, “""”是第一个IF函数的第三参数, 表示第一参数结果为“FALSE”, 也就是不成立, 显示为“空”。通过这样的设计, 就可以增强公式的强壮度, 并实现容错, 没有“输入成绩”也不会在“公告成绩”显示为0。

二、程序测试

程序设计好了, 必须做各种各样的数据的测试, 尤其是一些临界数据的输入测试。

可以输入60秒以下的成绩进行测试, 当在“输入成绩”列的“D2”单元格中输入“1234”, 在“D2”单元格中显示为“12.34”, 而在“公告成绩”列的“E2”单元格显示为:“12.4”, 实现了百分之一秒转换为十分之一秒, 同时也实现“非零进位”, 当在“D2”单元格中输入“1230”, 则“D2”单元格显示为“12.30”, “E2”单元格显示为“12.3”;当在“D2”单元格输入“5991”, “D2”单元格显示为“59.91”, 而“E2”单元格显示为“1:00.0”, 实现了数据的转换的同时, 还实现了“分秒”的“六十进制”转换, 同样, 以“15991”输入在“D”列, “E”列对应的单元格则显示为“2:00.0”。实际上, 用所有的小于595990 (小于1小时) 的数据输入, 均能得到正确的结果。

三、结果

1.输入成绩速度快

在运动会进行中, 因参赛人数众多, 每组之间的时间间隔非常短, 通常组与组之间在3m i n左右, 但由于在输入成绩时, 仅仅需要输入数字, 不需要输入任何标点符号, 特别是利用台式机的“数字键盘”进行输入, 极大地提高了“输入成绩”的速度和效率。

2.实现百分之一秒自动转换为十分之一秒

“手计时”成绩只能精确到十分之一秒, 但由于精确到十分之一秒, 导致相同成绩而无法排名次, 所以, 既需要百分之一秒成绩作为排名次的, 也需要把百分之一秒转换为十分之一秒来公告成绩。由于都是赛前设计好公式, 百分之一秒的成绩自动转换为十分之一秒, 不需要人工干预。

3.自动实现“分”、“秒”之间的“六十进制”的运算

本程序还能实现“分”、“秒”之间的“六十进制”的进位运算。由于比赛项目没有超过59m i n, 所以, 不需要考虑“分”进位到“时”。

4.顺利实现按成绩排名次

上一篇:荷载作用下一篇:运动补偿