基于Excel VBA的成绩管理系统设计

2018-08-06 13:30陈华锋孟繁苹
魅力中国 2018年23期
关键词:程序

陈华锋 孟繁苹

摘要:成绩处理是学校教学管理的一项重要基础性工作,笔者结合工作情况,在Microsoft Office Excel工作环境中,通过VBA二次开发,通过宏编程实现学生成绩的自动化处理,保障了成绩处理的准确性和时效性,大大提高了工作效率。

关键词: 成绩管理; excel vba;程序

成绩管理是学校教学管理的一项重要基础性工作,它对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户(学校管理者、教师、学生)提供充足的信息和快捷的统计、查询服务。这也是学校实现管理科学化、规范化的一项重要内容。成绩管理自动化的实现可以借助各种数据管理软件如SQL Server、foxpro等,但这些大都涉及到专用软件及大量编程工作,对操作人员而言太过于专业和生疏。为此,笔者结合平时工作应用 ,在Microsoft Office Excel工作环境中,通过VBA二次开发宏编程实现学生成绩的自动化处理,保障了成绩处理的准确性和时效性,大大提高了工作效率。

一、系统需求分析

成绩管理系统用户分为学生、教师、管理员三类,功能需要分析如下:

1.学生。可以查询成绩、名次。

2.教师。可以方便地实现班级成绩录入、修改、排名、统计成绩合格率等功能。

3.管理员。负责成绩系统的管理和维护,主要功能需求如下:(1)班级管理:增删班级、增删学生名单。(2)科目管理:增删班级科目;实现科目与任课教师关联。(3)统计分析:以班级为单位,对各科学生成绩进行汇总;统计各科成绩合格率,生成成绩合格率统计表;按科目、班级分类统计学生补考情况。(4)汇总输出:输出班级成绩统计表、合格率统计表、补考情况统计表。

二、系统算法分析

(一)工作表中单元格的数据计算

1.统计各科平均成绩:=IF(OR(D4:D54>0),AVERAGE(D4:D54),””)

2.统计各科不及格(低于60分)人数:=IF(OR(D4:D54>0),COUNTIF(D4:D54,”<60”),””)。

类似统计良好人数、优秀人数、良好率、优秀率。

3.统计科目合格率:=1-D80/COUNTA($A$4:$A$75)

(二)工作表间数据判断、数据复制、表格生成等计算

1.成绩是否及格判断

If (Not IsEmpty(Cells(3, j))) And (Not IsEmpty(Cells(k, 2))) And (CVar(Cells(k, j).Value) < 60)

2.登记成绩

If CStr(Workbooks(filename).ActiveSheet.Cells(j + 1, 5)) <> “” Then

Cells(j, i).Value = CVar(Workbooks(filename).ActiveSheet.Cells(j + 1, 5).Value)

3.生成班级空白成绩单内容

Sheets(“空白表(课程)”).Copy

ActiveSheet.Name=班级

Range(“c2”).Value=学期

(三)工作表生成

1.生成班级成绩单

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=”zzjtxy”

ActiveWorkbook.SaveAs ThisWorkbook.Path & “\班级” & “\” & ActiveSheet.Name & “成绩单”

ActiveWorkbook.Close

2.生成成绩合格率统计表

Sheets(“课程”).Cells((i - 7) * 2 - 1, j - 2).Value = CStr(Cells(3, j).Value)

Sheets(“课程”).Cells((i - 7) * 2, 1).Value = “成绩合格率”

Sheets(“课程”).Cells((i - 7) * 2, j - 2).Value = CStr(Cells(63, j).Value)

3.生成补考安排表

Cells(j, 4).Value = Cells(j, 4).Value & IIf(Len(Cells(j, 4).Value) = 0, “”, “ “) & Sheets(“补考”).Cells(i, 4.Value

三、系统功能实现

本文以管理员功能需求为例说明。当用户以管理员身份登录后,各部分功能如下:

1.班级管理。根据期末班级毕业情况和新学期班级增加情况,分别设置“增加”和“删除”命令按钮。针对增加班级设置单个输入和批量增加两种操作,以方便管理员的操作。添加新班级时设置班级名重复性判断,保证工作表的唯一性。当班级毕业需要在成绩管理系统中删除时,设置二次询问,以防管理员误操作造成不必要的麻烦。在删除的同时进行该班数据备份,保证数据的完整性,使得以后的查询可以正常进行。

2.科目设置。对添加的班级,按教学计划(课程安排)设置学期科目,同时与任课教师一一对应,保证班级成绩数据上报的唯一性和严肃性。

3.生成空白成绩单。根据班级和科目设置,对在校班级生成学期成绩空白表,每科目一份电子文件。电子文件以学期+班级+科目+教师形式命名,方便任课教师查找自己需要登记的文件并上报。

4.成绩登记。教师登记任课班级的成绩上报后,管理员通过“成绩登记”功能,实现成绩的自动上传。上传结束后针对各班、各科成绩进行数据检测:一是开展数据的有效性检测,保证成绩数据可靠;二是检查成绩漏报情况,保证数据的完整性。

5.生成班级成绩单。成绩上传并通过检测后,该功能将各班级学期成绩汇总生成成绩单。成绩单的下方显示“合格率统计、良好率、优秀率、不及格名单”等数据,方便班主任的管理工作。

6.补考安排。将不及格名单按班级、科目分类统计,可以分别按班级或科目组织补考。

7.合格率统计。针对科目成绩进行合格率(以百分数形式表示)统计, 使全校学期成绩率一目了然;同时将合格率不达标的科目以特殊字体和颜色标志,方便管理员下一步的操作。

四、结束语

Excel作为一种常用办公软件,是我们日常工作必不可少的一种数据处理軟件,结合VBA宏编程的应用,Excel能够实现成绩的高效自动化,同时又有着极好的普及性和应用性。

参考文献:

[1]魏汪洋,《从零开始学编程》,电子工业出版,ISBN:9787121242502,出版日期:2014 年9月

[2]伍远高,《xcel VBA编程实战宝典》,清华大学出版社,出版日期:2014年8月

猜你喜欢
程序
给Windows添加程序快速切换栏
简化化学平衡移动教学程序探索
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序