1、基于 VBA 的学生成绩管理系统的设计与实现第 1 页 共 35 页基于 VBA 的学生成绩管理系统的设计与实现【摘要】本系统是基于 Excel 来开发的一套学生成绩管理系统。该系统充分利用了Excel 强大的数值计算、数据分析统计功能,以及 VBA 语言本身简明易懂的特点。系统分为六大模块:学生基本信息、学生成绩、课程基本信息、教师基本信息、学生奖惩情况(各类奖学金的评定、受处分情况以及学生职务的设定) 、学生成绩图表统计分析等。系统提供了友好的界面和方便快捷的操作功能,主要适用于教学秘书来方便管理学生成绩,避免了每次评奖评优都需要手工填表计算的过程。该系统在成绩的处理上不是单纯地从学生课程
2、成绩来考察评估学生,而是结合平时的工作表现来全面测评学生的综合素质,并根据它来评奖评优。系统还提供了报表打印、帮助等功能,同时还可以用直观的图表来显示学生成绩的分布情况。【关键词】 VBA Excel 宏 报表 学生成绩管理系统基于 VBA 的学生成绩管理系统的设计与实现第 2 页 共 35 页The Administration System of Student ScoreABSTRACTThis paper describes the Administration System of Student Score. The system is developed based on Exce
3、l. It makes the best of Excels powerful function, for examples, data analysis, data statistic and making chart, and uses the VBA developing language, a language similar with VB (Visual Basic). This system contains six components: Information of Student, Score of Student, Information of Course, Infor
4、mation of Teacher, Information of Rewards & Punishments and Score Distributing Chart Printing. It provides a friendly interface and powerful functions, it is used by didactical secretary and it can avoid the mistake bringing by manual operating. It can evaluate the students general diathesis not onl
5、y based on the course score but also based on his work behavior. It also provides the printing function and can show the intuitionist score distributing chart.KEYWORD VBA Excel Macro Report Administration of Student Score基于 VBA 的学生成绩管理系统的设计与实现第 3 页 共 35 页目录一. 引言 .41.1 项目概述 .41.1.1 项目目的 .41.1.2 项目背景
6、.41.2 系统设计框架图 .61.2.1 符号说明 .71.2.2 系统整体流程图 .71.2.3 系统详细的总体框架图 .81.3 模块简述 .91.4 VBA 的介绍 .91.4.1 VBA 与 Excel .101.4.2 编辑宏 .101.4.3 VBA 和 VB 的不同 .111.4.4 为什么选择 Excel.11二. 系统设计 .122.1 开发工具 .122.2 数据库设计 .122.2.1.数据字典 .122.3 程序设计 .142.3.1.用户登录 .152.3.2.学生基本信息 .172.3.3.学生成绩信息 .182.3.4.学生课程信息 .202.3.5.教师基本信
7、息 .212.3.6.学生奖惩信息 .212.3.7.学生成绩统计分析 .252.4 系统测试情况 .27三. 应用前景及后续工作 .283.1 系统应用前景 .283.2 后续工作 .283.2.1.尚未解决的问题 .283.2.2.需要改进的地方 .29四. 总结 .30五. 致谢语 .30六. 参考文献 .31七. 附件 .327.1 安装说明 .327.2 使用说明 .33基于 VBA 的学生成绩管理系统的设计与实现第 4 页 共 35 页一. 引言1.1 项目概述目前市场上有很多的学生成绩管理系统,但是大多数都是用VB、C、C+、JAVA 等语言来开发的。而这些语言的特点是他们是单纯
8、的开发语言,通用性比较强,不能提供其他特有的功能,比如函数公式、图表分析等。学生成绩管理系统涉及到的主要是成绩的排名、成绩的分析等,而如果用VBA 来开发的话可以利用 Excel 中大量现有的数学公式以及统计函数,这样就减少 了编码工作。而且 Excel 是很常用的工具,无须特殊的软硬件支持。因此系统选用在 Excel 上做二次开发。该项目主要分为六大模块:学生基本信息、学生成绩、课程基本信息、教师基本信息、学生奖惩情况(各类奖学金的评定、受处分情况以及学生职务的设定) 、学生成绩图表统计分析等。几乎每个模块都提供了显示、查询、修改、删除、打印以及说明帮助等功能。1.1.1 项目目的系统的目标
9、是要建立一个专门适合于厦门大学软件学院使用的学生成绩管理系统。由于每个院系除了都遵循学校的成绩管理办法外也都有各自特有的成绩管理系统方案,因此这个系统的目标就是要建立一个存同求异的成绩管理系统。以便让软件学院更好得管理好学生成绩,提高工作效率。系统需要提供友好的界面,使用方便,容易上手。同时要在界面的右方根据运行的各个不同的模块分别提供说明帮助,有利于更好得使用系统。系统在一般的 PC 机上都可运行,同时无需特殊的软硬件的支持,只要在机子上安装Office 中的 Excel 即可安装运行。1.1.2 项目背景该项目是结合厦门大学软件学院的成绩管理方案来设计开发的,在项目开始阶段需要结合项目的背
10、景对客户进行需求分析的调查,这为以后项目的详细设计提供依据,同时需求分析是客户和程序员之间沟通的过程,因此项目是否满足客户的需求做好需求分析是很重要的。1、 需求分析目的1) 建立和用户之间的沟通桥梁:通过描述该系统的功能,可以从客户那得到反馈的意见和建议。避免了在开发过程中的不明确因素以及不完整功能实现。2) 提高开发效率:在编写需求分析的过程中可以及时发现一些问题并可以及时得到解决,减少了在开发过程中的回头现象,对开发的过程有个缜密的计划,并及时纠正一些错误的主观理解。基于 VBA 的学生成绩管理系统的设计与实现第 5 页 共 35 页3) 为进度安排提供依据:经过对开发系统的详细描述使我
11、们对开发需要的环境、资源等有了较清楚的认识因此在安排进度上能更加合理。4) 为以后软件测试、扩展提供参考2、 支持文档1) 厦门大学软件学院学生成绩管理方案2) 软件工程需求分析文档3、 背景1) 作为毕业设计的课题2) 本系统为厦门大学软件学院学生成绩管理系统3) 配合厦门大学软件学院其他的学生管理系统来一起工作4、 任务概述1) 目标:设计一个结合软件学院办学特色的专门适用与软件学院的学生成绩管理系统。每个学院除了和其他学院一样都必须遵循学校共同的成绩管理办法外也都有自己的不同之处,在此这个项目的目标就是设计一个专门适用于软件学院的学生成绩管理系统,以便老师更好得管理学生、了解学生的学习情
12、况。2) 假定和约束:由于是基于 Office 下的 Excel 产品开发的,所以基于其本身支持软件的约束某些功能不能很好的实现比如连网管理等等。同时由于对 VBA 处在学习阶段所以还不能更完美、熟练得用好其功能,通过此次的开发也是为了能够更熟练得掌握好 VBA 技术。同时由于毕业设计时间较短,所以可能软件还不够健全、完善。5、 数据描述数据分为静态数据和动态数据。所谓静态数据,指在运行过程中主要作为参考的数据,它们在很长一段时间内不会变化,一般也不会随着运行而改变,所谓动态数据,包括所有在运行中要发生变化的数据,以及在运行中要输入、输出的数据。1) 静态数据:静态数据即系统运行前已有的数据。
13、例如,(1) 学生基本信息表(包括学号、姓名、性别、年级、专业、电话、住址等等)(2) 课程基本信息表(包括课程号、课程名字、课程使用的教材、课程学分、授课老师等等)(3) 老师基本信息表(包括老师号、老师名字、电话、住址、性别、年龄等等)(4) 学生成绩表(包括学号、课程号、成绩等)(5) 班级表(包括学生号、年级、班级等)(6) 奖励表(包括奖励号、名称、奖励分等)(7) 学生奖励情况表(包括学生号、奖励号、次数等)(8) 惩罚表(包括惩罚号、名称、应扣分等)(9) 学生惩罚情况表(包括学生号、惩罚号、惩罚次数等)(10) 职务表(包括职务号、职务名称、最高所得分等)(11) 学生职务情况
14、表(包括学生号、职务号、所得分等)(12) 用户(包括用户名、密码等)(13) 其他2) 动态数据:系统运行过程中需要的输入数据以及系统运行过程中产生基于 VBA 的学生成绩管理系统的设计与实现第 6 页 共 35 页的输出数据。例如,(1) 学生总成绩的排名表(包括学号、姓名、各科成绩、总成绩、名次)(2) 学生各科成绩的排名表(包括学号、姓名、成绩、名次)(3) 学生综合素质的排名表(包括学号、姓名、各科成绩、其他测评项成绩、总成绩、名次)(4) 各项奖学金的比例或者名额(5) 单科奖学金的生成表(6) 用户名和密码6、 性能需求性能需求主要包括时间要求、适应性、可用性、数据精确度、安全保
15、密性维护性、可跨平台性等。下面我们分别进行陈述:1) 时间要求:运行时间没有严格限制,由于数据量比较小所以运行反应时间应该不会过慢,这也取决于运行环境的硬件资源和软件资源的优异程度。2) 适应性:本软件只需在 Windows 下运行即可,同时必须安装 Office产品,同时提供一些必要的插件。3) 可用性4) 数据精确度:学生成绩的排名由于有的时候前后只差 0.01 分因此数据精确到小数点后的第三位。5) 安全保密性维护性6) 可跨平台性7、 运行环境描述1) 硬件设备:服务器 CPU 为奔腾 III 及以上,内存为 256M 及以上。2) 软件设备:Windows 操作系统,Office 软
16、件包,使用 Excel 为数据库。1.2 系统设计框架图为了明确系统目标同时为系统的实现提供流程依据,这里提供了系统的总体设计框架图来大概说明系统的主要模块以及总体流程。基于 VBA 的学生成绩管理系统的设计与实现第 7 页 共 35 页1.2.1 符号说明处 理 输 入与 输出数 据 流 显 示 文 档磁 盘 数 据 库人 工 输 入判 断 开 始 或 结 束图 1.1 以下所用到的框图所表示的含义1.2.2 系统整体流程图 开 始用 户 登 录进 入 系 统选 择 处 理 事 务继 续 处 理否 ?结 束 OA数 据 库NY返 回 处 理 结 果图 1.2 系统总体的简单流程基于 VBA
17、的学生成绩管理系统的设计与实现第 8 页 共 35 页1.2.3 系统详细的总体框架图图 1.3 系统详细的总体框架图基于 VBA 的学生成绩管理系统的设计与实现第 9 页 共 35 页1.3 模块简述对 1.3 图中的最底层的功能所要完成的功能进行如下的描述:功能名称 功能详细描述学生基本信息显示 显示学生的基本信息,包括学号、名字、性别、出生年月、年龄、家庭地址、电话等查询学生基本信息 根据学生的学号查询学生的基本信息总成绩显示 显示所有学生的成绩总成绩排名 对学生成绩进行排名成绩录入 增加新的学生成绩成绩修改 修改现有的学生成绩总成绩打印 打印成绩表单科成绩的排名 单科成绩的排名按班级显
18、示成绩 提供按班级显示成绩的功能显示所有课程 显示课程名,所用的教材,该课程的学分,授课的老师的名字打印课程 打印课程信息表显示老师信息 显示老师的所有基本自然信息打印老师信息 打印老师信息单科课程奖学金,这是软件学院特有的评奖部分学校的普通奖学金,这是各个院系共有的评奖部分(这里包括三好生的评选)校级奖学金的评选学生获奖学金信息(这里有四种奖学金情况)制定输入各种奖学金的人数或比例然后提取满足条件的获奖学生名单并可以保存打印雏鹰奖学金的评选,这也是软件学院自己的评奖项目学生处分情况表 列出所有受过处分的学生名单并可以添加、删除打印学生职务情况表 显示担任各种职务的学生并可更改打印统计分析 对
19、所有成绩以及各班成绩进行统计分析显示出直观的图表1.4 VBA 的介绍VBA 即 Visual Basic for Applications,顾名思义它就是用 VB 语言来开发应用程序,VB(Visual Basic)是 Windows 环境下开发应用软件的一种通用程序设计语言,功能强大,直观易用。一方面,它是可视性程序设计语言,许多复杂的用户界面设计都可以直观地利用鼠标拖放以及对各种对象属性的设置、修改完成,几乎无需编程;另一方面,程序的控制普遍采用了事件驱动机制,根据用户操作触发的事件,执行不同的动作,完成相应的功能,因而都是一些短小精练的过程,容易设计和调试。VBA 则是根据其嵌入软件的
20、不同,增加了对相应基于 VBA 的学生成绩管理系统的设计与实现第 10 页 共 35 页软件不同对象的控制功能。例如 Excel 的 VBA,主要增加了关于 Excel 工作簿、工作表、区域、数据透视表等对象的属性、事件和方法。在 Excel 中使用VBA,可以更方遍地操作 Excel,更好地控制 Excel,进一步深入发掘 Excel 的强大功能,全面提高使用 Excel 工作的自动化水平。甚至可以在短短的几天时间内就在 Excel 环境中开发出所需的完整的管理信息系统。而且 VBA 广泛地应用于 Microsoft 公司开发的各种软件中,例如 Office 组件中的PowerPoint、W
21、ord、Outlook 等。VBA 虽然是用 VB 语言来实现的,但是他和VB 还是有区别的,只有部分的 VB 对象和语法能在 VBA 中使用,VBA 也根据各个不同组件提供了各自不同的对象来使用,同时 VBA 也增加了自己的特性比如安全性等。1.4.1 VBA 与 ExcelExcel 是 Microsoft Office 家族中的成员。是一个功能强大、技术先进、使用方便的表格式数据综合管理和分析系统。它采用电子表格方式进行数据处理,工作直观方便;提供了丰富的函数,可以进行各种数据处理、统计分析、辅助决策,适用于财政、金融、统计、管理等广泛的应用领域;具有强大的制图功能,可以方便地绘出各种专
22、业图表,实现了图、文、表三者的完美结合,以及预防宏病毒的功能,插入地图和超级链接的功能(直接链接来自 Internet 或其它网络地址的文档) ;还有视面管理器、共享工作簿等功能。Excel 的强大功能还在于它提供的宏语言 VBA。了解 Excel 的基本使用,比如 Excel 中的内置函数、图形的使用等,了解 VBA 中关于 Excel 的对象的使用。宿主于 Excel 中的 VBA,不是嵌入在 Excel 内部,而是通过一组称作对象库的特殊命令与 Excel 关联的。 VBA 与其它软件的这种控制关系,使得 VBA不仅可以控制 Excel,而且可以控制任何提供对象库的应用程序。例如所有的O
23、ffice 应用程序都提供对象库,其它一些 Microsoft 和非 Microsoft 应用程序也提供对象库。同时宿主于 Excel 的 VBA 也不是唯一与 Excel 对象库通信的语言,还可以使用宿主于 Word 的 VBA,独立版本的 Visual Basic,C+以及 Delphi 等操纵 Excel。1.4.2 编辑宏宏可以通过录制和自己编辑两种途径来创建。录制宏很简单,不需要自己写代码,录制好的宏可以再进行编辑。录制宏的方法虽然简单可行,但是这种方法不能录制复杂的宏,比如无法进行判断,无法进行复杂的逻辑运算,所以这种方法只能满足小部分的要求,比如适合与一些简单但是需要重复得烦琐得进行的操作。编辑宏的一种最简单的方法就是录制宏,它不用自己写代码,但是只能录制一些简单的宏同时对那些需要进行动态分析选择的时候就不能通过录制宏的方法。录制宏的方法很简单,如下图所示: