学生成绩管理系统建设方案A.1引言1.编写目的本文对“学生成绩管理系统”(以下简称“系统”)进行分析,作为用户和开发人员解决问题的共识、继续开发的依据和用户验收的标准。同时,进行了概要设计作为开发的参考。2.背景及时全面地掌握学生在校的学习成绩,有助于克服盲目性,积极主动地采取有效的教学措施,提高教学质量。本文是上海建桥学院信息技术系.NET程序设计精品课程建设组教师和从03级起若干级学生与教务人员长期和深入探讨的结果。3.参考资料z有关软件工程教材。z上海建桥学院信息技术系的实际。A.2需求分析1.项目概述现行的学生成绩管理的基本模式的数据流图如图A1的数据流图所示。系教务人员负责学生成绩的登录和管理,需要查询和形成汇总报表;教师和学生可以通过Internet及时了解成绩。教务人员对每个学生根据学年和课程录入成绩,每个学生每学年每门课程的成绩是唯一的;为了录入成绩,必须掌握学生、学年和课程的基本情况;同时,还需要掌握授课教师的基本情况;总成绩是平时成绩、期中成绩和期末成绩的加权平均,要设置权值;还要保障系统操作的权限控制和数据安全等;考试成绩确定后可以发E-mail通知学生。最大数据量主要与学生的数量以及课程考核次数有关,每一次考核都要记录成绩。272.NET程序设计案例教程——VisualC#2008(基础篇)教务人员1维护基础数据和学生成绩学生成绩档案学生成绩信息4制作固定报表组合条件报表类别和条件8网上查分学生学号成绩2浏览3查询子条件及其组合6导出7导入Excel系统文件系统5制作通用报表9发送邮件10定位定位条件图A1“学生成绩管理系统”数据流图2.功能要求系统要具备如下功能:GN01:录入学生成绩。GN02:删除学生成绩。GN03:增加与学生成绩相关的基础数据——学生。GN04:修改与学生成绩相关的基础数据——学生。GN05:删除与学生成绩相关的基础数据——学生。GN06:增加与学生成绩相关的基础数据——学年。GN07:修改与学生成绩相关的基础数据——学年。GN08:删除与学生成绩相关的基础数据——学年。GN09:增加与学生成绩相关的基础数据——课程。GN10:修改与学生成绩相关的基础数据——课程。GN11:删除与学生成绩相关的基础数据——课程。GN12:增加与学生成绩相关的基础数据——教师。GN13:修改与学生成绩相关的基础数据——教师。GN14:删除与学生成绩相关的基础数据——教师。GN15:增加与学生成绩相关的基础数据——成绩比例。GN16:修改与学生成绩相关的基础数据——成绩比例。GN17:删除与学生成绩相关的基础数据——成绩比例。GN18:通过键盘或鼠标逐条浏览基础数据和学生成绩;浏览基础数据时,自动地显示273附录A学生成绩管理系统建设方案相关的学生成绩,如:浏览某一学生记录,该学生的所有成绩记录都自动显示出来;浏览某一课程记录,该课程的所有成绩记录都自动显示出来。GN19:对学生成绩以及与学生成绩相关的基础数据中的任何项目进行单项或组合查询。GN20:可以进行数据备份和恢复。GN21:向Excel输出当前浏览的内容。GN22:浏览时可以按单项条件快速定位学生成绩以及与学生成绩相关的基础数据记录GN23:设置平时成绩、期中成绩和期末成绩占总成绩的比例:总成绩=平时成绩*平时成绩比例+期中成绩*期中成绩比例+期末成绩*期末成绩比例(其中,平时成绩比例+期中成绩比例+期末成绩比例=1)。GN24:考试成绩确定后可以发E-mail通知学生并作记录。GN25:打印输出的固定报表有:学生各门课程成绩报表、某门课程不及格学生报表、各门课程的及格率和平均分数报表、分类学生的成绩报表(其中含有学生学号和姓名、某学年某课程的成绩、平均分数、最高分数和最低分数,并且可以按总成绩等进行排序);各固定报表的输出内容可以文件形式存盘并可编辑。GN26:学生能够通过Internet了解自己的学习成绩。GN27:教师可以通过Internet查询所有学生的学习成绩。GN28:增加操作员账户。GN29:修改操作员账户。GN30:删除操作员账户。GN31:根据操作员账户控制操作员是否可以进入系统。GN32:为操作员分配对成绩及其相关基础数据的操作权限(不可看,不可维护;可看,不可维护;可看,可维护)。GN33:根据操作员的操作权限,控制操作员的数据操作(不可看,不可维护;可看,不可维护;可看,可维护)。GN34:浏览操作员记录时,自动显示该操作员录入的所有学生成绩。GN35:有完整的可以通过索引搜索的帮助。3.性能要求系统要具备如下性能:XN01:长时间运行要有提示。XN02:必输项以*提示。XN03:内容必须唯一的数据以深色粗体提示。XN04:数值数据用粉色背景、黑色字体表示;其他数据以白色背景、黑色字体表示XN05:已输入的有限数量的内容再次输入时尽量通过下拉列表来选择输入,尽量采用“代码+名称”的形式;如:0100309101—张三。XN06:若某项基础数据和学生成绩相关则不能删除该项基础数据。XN07:数值内容不可以输入字符串。XN08:不能输入不规范和不合理的日期。XN09:所有的命令按钮都要有悬停的帮助信息,对重要的对话框在其框内添加一个帮助按钮以调出专题使用说明。274.NET程序设计案例教程——VisualC#2008(基础篇)XN10:不仅可以通过鼠标也可以通过键盘定位至输入字段。XN11:按回车键【Enter】时遵循从左到右,从上到下的顺序在输入字段间移动。XN12:因权限控制或操作条件不满足时,相关可操作界面元素自动置“灰”。XN13:可以不离开编辑界面连续添加新记录。XN14:数据内容变化后要及时准确地反映在显示界面上。XN15:发生错误时要有明确的提示,对数据没有影响,系统不会中止,不影响重新操作。XN16:有唯一性要求的数据不能输入重复数据。XN17:任何数据记录的增加和修改都可以加备注。XN18:通过菜单项可以启动所有功能,常用功能可由工具栏和快捷键启动。XN19:操作员重新进入系统时自动进入最近一次浏览状态。4.数据要求组成学生成绩档案的主要数据结构有:SJ01:学生。学生=学号+姓名+性别+院系+专业+班级+联系电话+入学年月+政治面貌+邮件地址+备注。学号只能由10位数字组成。SJ02:学年。学年=学年+备注。SJ03:课程。课程=课程编号+课程名称+内容简介+备注。SJ04:教师。教师=工号+姓名+职称+学历+从教日期+联系电话+备注。职称只能取值:助教、助工、讲师、工程师、副教授、高工、教授学历只能取值:专科、本科、研究生。SJ05:操作员。操作员=工号+姓名+密码+类别+联系电话+成绩+成绩比例+学生+学年+课程+教师+备注。密码采用不可逆加密存储。类别分类为管理或普通两类。成绩、成绩比例、学生、学年、课程和教师用于权限控制,取值为0、1、2,分别对应相应数据结构的操作(0—不可看,不可维护;1—可看,不可维护;2—可看,可维护)。SJ06:成绩比例。成绩比例=学年+课程+考核类别+平时成绩比例+期中成绩比例+期末成绩比例+备注。考核类别取值考试或考查两类。平时成绩比例、期中成绩比例和期末成绩比例分别反映了平时成绩、期中成绩275附录A学生成绩管理系统建设方案和期末成绩占总成绩的比值,只能取0~1之间的值,三者之和为1。SJ07:成绩。成绩=学生+学年+课程+教师+考核类别+平时成绩+期中成绩+期中考核日期+期末成绩+期末考核日期+总成绩+已发邮件+邮件附注+备注。平时成绩、期中成绩、期末成绩和总成绩的取值范围为0~100。上述数据结构的每一条数据记录均要记载最近的编辑日期和进行编辑的操作员。5.其他要求项目完成后要提供用户使用手册,对用户进行培训,使用之前严格测试,使用后的年内跟踪维护。A.3概要设计1.总体结构“学生成绩管理系统”总体结构如图A2所示。图A2“学生成绩管理系统”总体结构各个模块主要功能如下:(1)主控该模块起控制作用,按权限调用其他功能模块,并且实现不需要单独建立一个模块的小功能。(2)浏览该模块显示基础数据(学生、学年、课程、教师、成绩比例和操作员)及其相关的成绩(如:某学生相关的成绩、某课程相关的成绩),并可以逐条浏览,及时反映编辑和查询的结果。(3)录入(成绩)该模块用于增加和修改学生成绩记录。一个学生在一个学年的一门课程的成绩是唯一的,当录入时,某学年和课程的成绩不存在就增加一条成绩记录,否则就修改原有成绩记录。(4)删除(成绩)该模块用于删除学生成绩记录。276.NET程序设计案例教程——VisualC#2008(基础篇)(5)增改(成绩比例)该模块可以设置平时成绩、期中成绩和期末成绩占总成绩的比例:总成绩=平时成绩*平时成绩比例+期中成绩*期中成绩比例+期末成绩*期末成绩比例(其中,平时成绩比例+期中成绩比例+期末成绩比例=1)。(6)查询该模块可以对学生成绩档案中的项目进行单项或组合查询,并可以在上次查询的基础上进一步查询。(7)定位该模块在浏览时可以按单项条件快速定位学生成绩以及与学生成绩相关的基础数据记录(8)增改(学生)该模块用于增加和修改学生记录。(9)删除(学生)该模块用于删除学生记录。(10)增改(学年)该模块用于增加和修改学年记录。(11)删除(学年)该模块用于删除学年记录。(12)增改(课程)该模块用于增加和修改课程记录。(13)删除(课程)该模块用于删除课程记录。(14)增改(教师)该模块用于增加和修改教师记录。(15)删除(教师)该模块用于删除教师记录。(16)制作固定报表该模块用于打印输出所选择的一组学生的成绩报表:学生各门课程成绩报表、某门课程不及格学生报表、各门课程的及格率和平均分数报表、分类学生的成绩报表(其中含有学生学号和姓名、某学年某课程的成绩、平均分数、最高分数和最低分数,并且可以按总成绩等进行排序);各固定报表的输出内容可以文件形式存盘并可编辑。(17)制作通用报表该模块将通过浏览模块显示的内容向Excel输出,以便进一步处理。(18)增改(操作员)该模块用于增加和修改操作员记录,其中含有操作权限。登录模块据此进行账户验证,主控模块据此决定是否可以对某类数据进行查询、增加、修改和删除。(19)删除(操作员)该模块用于删除操作员记录。277附录A学生成绩管理系统建设方案(20)导出该模块用于将学生成绩及相关基础数据备份在文件中。(21)导入该模块用于恢复导出的学生成绩数据文件。导入和导出相配合,实现数据迁移。(22)登录该模块用于验证操作员账户以控制是否可以进入系统,合法操作员可以修改密码(23)关于该模块用于显示系统版权等信息。(24)发送邮件该模块用于考试成绩确定后可以发E-mail通知学生并作记录注:另外开发一个WEB系统,以便使教师和学生通过Internet查询成绩。2.界面设计录入成绩主控界面:主要功能是控制进行学生成绩的维护、查询和制作报表。上表格显示的是学生信息,下表格显示了某学生的所有成绩信息,主控界面如图A3所示。图A3主控界面主控菜单内容如图A4所示。278.NET程序设计案例教程——VisualC#2008(基础篇)图A4主控菜单成绩录入界面如图A5所示。成绩删除界面如图A6所示。图A5成绩录入界面图A6成绩删除界面基础数据维护界面(见图A7):为了进行学生成绩的管理,需要对一些相对静态的数据(如:学生、课程、教师、学年和成绩比例)进行维护,同时为了进行权限控制要对操作员进行管理。上表格显示的是某类基础数据(如:学生)信息,下表格显示了和该类基础数据相关的成绩信息。279附录A学生成绩管理系统建设方案图A7基础数据维护界面基础菜单的查询、报表和帮助与主控菜单是一样的,其他如图A8所示。学生添加和修改界面如图A9所示。图A8基础数据菜单图A9学生添加和修改界面学生删除界面如图A10所示。课程添加和修改界面如图A11所示。280.NET程序设计案例教程——VisualC#2008(基础篇)图A10学生删除界面图A11课程添加和修改界面课程删除界面如图A12所示。教师添加和修改界面如图A13所示