应用程序综合设计报告——题目:学生成绩管理系统1、需求分析学生成绩管理系统是学生管理系统的重要组成部分,对学生的德、智、体全面评估有很大的作用,所以学生成绩管理系统应该能够为用户提供方便的查询平台和数据存储功能。传统是使用人工的方式对学生的信息进行存储,对于个人的学生成绩来说,数据的整理和分析就显得很麻烦,不利于查找、更新和维护。因此,用户希望制作一个学生成绩管理系统,来提高老师的工作效率,同时给予老师便利。根据与用户的交流,一般对学生成绩管理系统有如下几点的要求:A、能够为用户提供方便的数据查询功能,满足复杂、多样的数据查询需求。一般我们所需要的数据都不是能够从原始数据库中直接读取的,往往需要一定的加工,这样才能使传统复杂的人工操作变得简单又准确。B、成绩管理要能够提供学校考试安排的管理,学生考试成绩的管理,以及学生单科和总成绩的统计和分析等功能。这些是一个学生成绩管理系统最主要的功能组成,包括数据的集成、整合和分析。上述是用户对系统需求和功能需求的两点要求,我根据用户对功能的需求,将整个学生成绩管理系统分成两个大的模块,即基本信息设置模块和成绩管理模块(如图1)。为了能使本系统能够基本独立,经过分析,我又添加了学生基本信息添加功能和班级基本信息添加功能,这样系统就能够实现本系统的全面界面化。2、概要设计根据需求分析,成绩管理系统主要是实现对考试和学生成绩的管理功能,我设计的整个学生成绩管理系统分为两个大的模块,分别为基本信息设置模块和成绩管理模块,这两个模块包括了成绩管理系统的全部数据存储和功能需求,为了更加清晰了分解学生成绩管理系统,每个大模块又由几个子功能模块组成,完成用户的需求。两个大模块的子模块具体划分如图2所示:基本信息设置是成绩管理系统中一些基本数据的添加和修改,为了能够实现本学生成绩管理系统的独立性,我在基本信息设置模块中添加了学生和班级信息添加模块,以便用户能直接添加新增的数据,而不需要通过程序员来完成。添加学生信息模块和添加班级信息模块,这两个模块是为了方便数据的存储而构造的,对于整个学生管理系统来说,这两个模块是不存在于学生成绩管理系统,而这里为了能在测试过程中方便添加新学生和班级信息,增加了这个功能。考试时间段设置模块是针对各个学期考试时间段的不同,随时添加时间段,增加考试的时间确定性,方便数据的统计和管理。考试类型设置模块是针对每个学生的要参与的考试形式而可以增加和删除某种考试模式,同时在成绩录入时可以供选择。考试科目设置模块是针对学校为学生制定的科目可以增加和删除,在成绩录入时可以供选择。成绩管理模块是学生成绩管理系统的主要功能模块,我根据用户的功能需求将该模块划分为成绩录入和成绩查询、分析模块,供用户在使用成绩时可以快速而又方便地取得所要的的结果。成绩录入模块是针对班级而言,将整个班级的所有学生的某个科目成绩添加入数据库,并且同时添加每个学生的成绩。成绩查询模块是供管理员根据班级或者学号查询整班学生的全部成绩或者某位学生的全部成绩,因此该模块是用于普通查询。班级成绩统计模块是结合整个学生成绩记录表,计算学生的总人数、缺考人数、及格人数以及优秀人数,根据得到的数据再分析统计及格率、优秀率等,供老师对整个班的学习情况有一定的了解。学生总分查询是将某位学生在特定时间段中所修的全部课程成绩作汇总,并计算它的总成绩,建立名次表。学生单科成绩名次查询是通过选择查询条件,比如班级、课程、时间段、类型,得到整个班级该科目的学生成绩排名。上述的十个子模块已经基本上把整个学生成绩管理系统的功能实现,而且在性能上比较稳定,数据库是采用SQLServer2000,因此数据存储安全,一般没有管理的许可,数据库数据不会被修改,而且在数据查询的过程中没有修改任何数据,只是数据读取,这样就保证了数据的安全性。而实用性方面可能有所欠缺,毕竟在短时间内没有足够地思考整个系统的运行机制和数据信息的整理,只是提取了其中最重要的来用,没有实现其完整性。3、详细设计根据上述的需求分析和概要设计,成绩管理系统主要划分成十个子模块:添加学生信息,添加班级信息,考试类型设置,考试科目设置,考试时间段设置,学生成绩录入,学生成绩查询,班级成绩汇总统计,学生总分查询和学生单科名次查询。下面分别阐述每个子模块的设计和实现过程。1.添加学生基本信息(1)添加学生信息子模块的IPO图功能:填写每项学生信息,完成后添加到数据库。输入:学生的基本信息。处理:1)添加学生信息对话框启动。2)根据提示填写相应信息,必须全部填写3)点击添加按键,完成操作。输出:数据库的学生信息表中保存一条新的学生信息记录(2)添加学生信息模块的界面设计学生信息包括很多个属性,这里因为不是整个学生管理模块,所以将学生信息简化成如下图所示的几项属性,只供数据查找时使用,如果实在整个学生管理模块中设计,则还要考虑其他必要的信息。(3)添加学生信息模块的实现根据IPO图和自己的数据分析,我把学生信息的属性简化为七个,分别为学号、姓名、性别、班级、学院、专业和出生年月,由于学生信息在成绩录入和成绩查询时要用到,所以添加了这个模块。性别和班级是下拉框,在显示时先查询数据库,将班级名称信息添加到班级对应的下拉框中,供用户选择。当用户填写完成之后,点击添加按键,就会通过sql语句执行数据插入操作,将新的数据信息填入数据库保存。在此之前必须为学生信息表建立一个记录集类,用来帮定数据库,这样在查询和更新数据库时就可以使用该类来实现。具体地代码实现见源程序。2.添加班级基本信息(1)加班级信息子模块的IPO图功能:填写每项班级信息,完成后添加到数据库。输入:班级基本信息的数据处理:1)添加班级信息框启动。2)根据提示填写相应的数据,完成后点击添加就可以添加入数据库输出:数据库中的班级表项添加一条新的数据(2)添加班级信息的界面设计(3)添加班级信息模块的实现根据IPO图和自己的数据分析,我把班级信息的属性简化为五个,分别为班级编号、班级名称、所属学院、所属专业和班辅导员,由于班级的基本信息在成绩录入和成绩查询时要用到,所以添加了这个模块。当用户填写完成之后,点击添加按键,就会通过sql语句执行数据插入操作,将新的数据信息填入数据库保存。在此之前必须为班级信息表建立一个记录集类,用来帮定数据库,这样在查询和更新数据库时就可以使用该类来实现。具体地代码实现见源程序。3.考试类型设置子模块(1)考试类型设置子模块的IPO图功能:从考试类型设置信息表中读取数据并显示,同时实现对这些数据的添加和删除功能。输入:考试类型信息处理:1)考试类型设置对话框启动。2)从考试类型设置表中读取数据并显示到列表中供用户浏览。3)根据用户选择,完成考试类型设置数据的添加和删除。输出:更新的考试类型设置信息表(2)考试类型设置子模块的基面设计界面设计如下图所示:(3)考试类型设置子模块的实现建立如界面所示的对话框,并为之定义一个对话框类。为考试类型表建立一个记录集类,帮定数据库。添加功能的处理过程:清空编辑区域的编辑框等待用户输入,然后当用户选择保存按键时检查用户输入的合法性,无误后方可以将数据添加到考试类型设置信息表中,同时更新数据列表显示。删除功能是当用户选中列表框中的某个数据时,按删除键就可将它从数据库中删除,同时也在列表框中删除。具体地代码见源程序。4.考试时间段设置子模块(1)考试时间段设置子模块的IPO图功能:从考试时间段设置信息表中读取数据并显示,同时实现对这些数据的添加和删除功能。输入:考试时间段信息处理:1)考试时间段设置对话框启动。2)从考试时间段设置表中读取数据并显示到列表中供用户浏览。3)根据用户选择,完成考试时间段设置数据的添加和删除。输出:更新的考试时间段设置信息表(2)考试时间段设置子模块的基面设计界面设计如上图所示:(3)考试时间段设置子模块的实现建立如界面所示的对话框,并为之定义一个对话框类。为考试时间段表建立一个记录集类,帮定数据库。添加功能的处理过程:清空编辑区域的编辑框等待用户输入,然后当用户选择保存按键时检查用户输入的合法性,无误后方可以将数据添加到考试时间段设置信息表中,同时更新数据列表显示。删除功能是当用户选中列表框中的某个数据时,按删除键就可将它从数据库中删除,同时也在列表框中删除。具体地代码见源程序。5.考试科目设置子模块(1)考试科目设置子模块的IPO图功能:从考试科目设置信息表中读取数据并显示,同时实现对这些数据的添加和删除功能。输入:考试科目信息处理:1)考试科目设置对话框启动。2)从考试科目设置表中读取数据并显示到列表中供用户浏览。3)根据用户选择,完成考试科目设置数据的添加和删除。输出:更新的考试科目设置信息表(2)考试科目设置子模块的基面设计界面设计如上图所示:(3)考试科目设置子模块的实现建立如界面所示的对话框,并为之定义一个对话框类。为考试科目表建立一个记录集类,帮定数据库。添加功能的处理过程:清空编辑区域的编辑框等待用户输入,然后当用户选择保存按键时检查用户输入的合法性,无误后方可以将数据添加到考试科目设置信息表中,同时更新数据列表显示。删除功能是当用户选中列表框中的某个数据时,按删除键就可将它从数据库中删除,同时也在列表框中删除。具体地代码见源程序。6.学生成绩录入子模块功能:以班级为单位,完成对指定班级在某次考试中所有学生的成绩录入功能。输入:班级、考试类型、考试时间段、科目、学生成绩处理:1)学生成绩录入对话框启动。2)根据用户指定的班级,从学生信息表中读取学生名单,并显示在列表中。3)当用户指定录入某学生成绩时启动成绩录入对话框。4)将用户输入的学生成绩、考试科目、考试类型、考试时间段、班级,保存到数据库的学生成绩记录表中。5)更新成绩列表显示,等待录入下一个学生的成绩。输出:学生成绩信息表本子模块的界面设计如下图所示:根据用户选择的班级,时间段,考试类型,科目信息,查询该班级的成绩记录,如果是已经存在的学生成绩记录,则由数据读取出来显示,选择学生可以修改其成绩。具体代码实现见源程序。7.成绩查询子模块功能:供用户按照一定的条件查询学生的各科成绩输入:班级编号,学生学号处理:1)学生成绩查询对话框启动。2)根据用户选择的班级名称,从学生信息表中的读取该班级的所有学生的成绩信息。3)显示所有学生的所有科目、学期以及类型的学生成绩4)根据用户填写学生学号,将该学生的所有科目成绩显示在成绩列表上。输出:学生成绩列表学生成绩查询子模块的界面设计如下图所示:根据用户选择的班级名称,从学生信息表中读取该班级学生名单,然后显示到学生列表中。具体代码见源程序。8.班级成绩统计子模块功能:提供统计某班级在某次考试中所有科目的考试情况,包括:参加考试人数,平均成绩,及格率等等。输入:班级名称,时间段,考试类型,科目处理:1)班吉成绩统计对话框启动。2)根据用户选择的班级名称,考试类型,考试时间段和科目,从学生成绩记录信息表中读取该班级的所有学生相关信息。3)统计各科的参考人数,平均成绩,及格率等等。4)将统计结果显示在列表中。输出:班吉成绩汇总统计数据班级成绩汇总统计子模块的界面设计如下所示:具体的代码实现见源程序。9.学生总分统计子模块功能:统计查询某班级在某次考试中某个学生的总成绩输入:班级名称,考试类型,考时间段,学生学号处理:1)学生总分名次查询对话框启动。2)根据用户选择的班级名称,考试类型和考试时间段,学号,从学生成绩记录信息表中读取该班级的该学生的成绩信息。3)统计该学生的所有科目总成绩、平均成绩。4)将统计结果显示到列表中输出:学生总分数据。学生总分统计子模块的界面设计如下图所示。具体代码实现见源程序。10.学生单科成绩名次查询子模块功能:统计查询莫班级学生在某次考试中某科目的成绩以及在班级中的名次。输入:班级名称,考试类型、考试时间段和考试科目处理:1)学生单科名次查询对话框启动。2)根据用户选择的班级名称、考试类型、考试时间段和考试科目,从学生成绩信息表中读取该班级所有学生的成绩信息。3)按照学生成绩的高低排序出学生的名次。4)将结果显