演示视频:
https://www.bilibili.com/video/BV1pc411S7Wn/
1.1系统功能模块图
课程管理模块
成绩管理模块
用户管理模块
班级单科成绩报表
年级单科成绩报表
表
班级单科成绩报表
年级单科成绩报表
表
班级学期成绩汇总
年级学期成绩汇总
表
各班单科成绩分析
年级各科成绩分析
表
学生管理模块
考试成绩分析系统
管理员模块
教师模块
学生查询
图3-1 系统功能模块图
1.2数据库设计
设计数据库系统时应首先了解用户各个方面的需求,包括现有的以及将来可能增加的需求,用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
针对本考试成绩分析系统的需求,通过对考试成绩的管理、统计、分析过程分析,需要使用管理员和教师信息表保存系统管理员和教师的基本信息,使用学生信息表保存学生的个人信息,使用课程信息表保存所开设的课程的信息,使用成绩信息表保存考试成绩数据。
3.4.1数据库的表设计
首先在SQL Server中创建名为chengjifenxi的数据库,根据对系统的分析可以得出本系统需要的表如下:
管理员和教师信息表(admin):用来存放管理员或教师ID、姓名、登录密码和用户类型(系统管理员或普通教师)信息。
Type:此字段用来标示用户为普通教师或系统管理员;
字段值为“1” :用户为系统管理员,拥有管理员权限,可访问查询分析模块和数据管理模块,可对系统数据进行添加、修改、删除操作;
字段值为“2” :用户为普通教师,拥有非管理员教师权限,只能访问查询分析模块,不能对系统数据进行添加、修改、删除操作。3.4.2 表间关系
数据库中所创建的表有如下的约束关系:课程信息表course中的“TeacherID”字段受教师信息表admin中的“ID”字段约束,成绩信息表score中的“SrudentID”字段受学生信息表student中的“ID”字段约束,“CourseID”字段受课程信息表course中的“ID”字段约束。
如图3-2所示。
图3-2各表间的约束关系
2系统设计与实现
2.1系统首页
系统首页index.jsp为所有浏览者提供了学生个人成绩查询的功能,输入学生的学号,并选择学期项,就可以查询到该学生相应学期的所有已考试课程的成绩,不及格的课程考试成绩将会用红色字体显示。系统还会自动统计查询到的课程数目和不及格的课程数目。
此页面还为系统管理员和教师用户提供了登录页面的链接,用户点击此链接可进入系统登录页面进行用户登录。系统首页页面效果如图4-1所示。
图4-1 系统首页
2.2系统登录模块
系统管理员和教师用户可通过系统登录页面Login.jsp进行登录。填写完登录信息,提交表单后系统通过LoginCheck.jsp对用户填写的登录信息和数据库中记录的信息进行对比,若用户填写登录信息有空项,系统会提示“用户和密码不能为空”,然后系统返回登录页面Login.jsp;若用户登录信息填写错误,页面将提示“用户名或密码输入有误”,然后系统返回登录页面Login.jsp;若用户登录信息填写正确,系统将会对用户的权限类型“Type”进行检查,若“Type=1”表示用户为系统管理员,系统会将用户的登录信息记录在Cookies集合和Session变量中,然后系统转到管理员页面Manage.jsp;若“Type=2”表示用户为教师用户,系统会将用户的登录信息记录在Cookies集合和Session变量中后转到教师页面Teacher.jsp。管理员和教师页面
4.3.1管理员页面
拥有管理员权限的用户登录后即进入管理员页面Manage.jsp,页面上方将显示登录用户的用户名。用户可以点击左上方的“退出”链接退出系统,系统将转到Logout.jsp页面,清空Cookies集合和Session变量后返回到系统首页。管理员可通过此页面进入系统数据管理模块,对系统数据进行管理操作,还可以进入成绩查询与分析模块,对成绩数据进行相应的查询与分析操作,并返回查询分析报表。系统管理员页面效果如图4-2所示。
图4-2 系统管理员页
4.3.2教师页面
拥有非管理员权限的教师用户登录后即进入管理员页面Teacher.jsp,页面上方将显示登录用户的用户名。用户可以点击左上方的“退出”链接退出系统,系统将转到Logout.jsp页面,清空Cookies集合和Session变量后返回到系统首页。教师用户可通过此页面进入成绩查询与分析模块,对成绩数据进行相应的查询与分析操作,并返回查询分析报表。教师页面效果如图4-3所示。
图4-3 教师页
2.3系统数据管理模块
系统数据管理模块只有拥有管理员权限的用户才能进入进行操作,通过此模块可以对包括成绩录入等一系列的系统数据进行管理。此模块又分为学生管理、课程管理、成绩管理和用户管理四个小模块。
4.4.1学生管理
学生管理模块完成了对学生信息进行添加、修改、删除操作,以达到对学生信息管理的目的。此模块的主页面为StudentManage.jsp,管理员可通过输入需要管理的班级的班级号,查询得到现有的学生信息列表,通过列表中相应的链接对学生信息进行修改和删除操作。学生管理主页面效果如图4-4所示。
图4-4学生管理主页面
(1)修改学生数据信息:
管理员可通过点击如图4-4所示学生管理页面的相应学生的操作列中的笔型按钮,即可进入学生信息修改页面EditStudent.jsp,并将待修改学生的学号ID同时传递到该页面。在EditStudent.jsp页面上,显示有数据库中记录的待修改学生的全部信息,修改完该学生的信息点击“提交”按钮完成修改。提交修改后,系统会对提交的信息进行检查,若修改过程中存在没有填写完整的项,系统会提示该项信息不能为空,然后返回学生管理主页面StudentManage.jsp;若修改学生信息对数据库操作失败,系统将会提示“更新数据时失败”,并返回学生管理主页面StudentManage.jsp。
(2)删除学生数据信息:
管理员可通过点击如图4-4所示学生管理页面相应学生的操作列中的叉型按钮,即可完成对该行对应学生的信息进行删除,删除成功后系统将返回学生管理主页面StudentManage.jsp。
(3)添加学生数据信息:
管理员可通过点击学生管理页面StudentManage.jsp或管理员页面Manage.jsp下方的“添加学生”按钮,即可进入添加学生信息页面AddStudent.jsp。在该页面填写完该学生的信息点击“提交”按钮完成对学生信息的添加。提交后,系统会对提交的信息进行检查,若存在没有填写完整的项,系统会提示该项信息不能为空,然后返回添加学生信息页面AddStudent.jsp;若添加学生信息时对数据库操作失败,系统将会提示“录入数据时失败”,并返回添加学生信息页面AddStudent.jsp。
4.4.2成绩管理
成绩管理模块完成了对成绩信息进行添加、修改、删除操作,以达到对成绩信息进行管理的目的。此模块的主页面为ScoreManage.jsp,管理员通过输入需要对成绩进行管理的班级的班级号,并从页面的下来菜单中选择相应的学期和课程,查询得到某个班级某学期某门课程的成绩信息列表,通过列表中相应的链接对成绩信息进行修改和删除操作。成绩管理主页面效果如图4-7所示。
图4-7 成绩管理页面
(1)修改成绩数据信息:
管理员可通过点击如图4-7所示的相应成绩的操作列中的笔型按钮,即可进入成绩信息修改页面EditScore.jsp,并将待修改成绩对应的学号和课程ID同时传递到该页面。浏览器转到EditCourse.jsp页面后,显示有数据库中记录的待修改成绩相关的全部信息,修改后点击“提交”按钮完成修改。提交修改后,系统会对提交的信息进行检查,若修改过程中存在没有填写完整的项,系统会提示该项信息不能为空,然后返回成绩管理页面ScoreManage.jsp;若修改成绩信息对数据库操作失败,系统将会提示“更新数据时失败”,并返回成绩管理页面ScoreManage.jsp。
(2)删除成绩数据信息:
管理员可通过点击如图4-7所示成绩管理页面相应成绩操作列中的叉型按钮,即可完成对该成绩信息的删除,删除成功后系统将返回课程成绩管理主页面ScoreManage.jsp。
(3)添加成绩数据信息:
管理员可通过点击成绩管理页面ScoreManage.jsp或管理员页面Manage.jsp下方的“添加成绩”按钮,即可进入添加成绩信息页面AddScore.jsp。在该页面管理员需要从下拉菜单中选择要添加成绩的学生和课程信息,而不能自己填写 填写该项的信息。这样做的目的是避免为数据库中不存在的学生或不存在的课程添加成绩。填写完成绩的相关信息点击“提交”按钮完成对成绩信息的添加。提交后,系统会对提交的信息进行检查,若存在没有填写完整的项,系统会提示该项信息不能为空,然后返回添加成绩信息页面AddScore.jsp;若添加成绩信息时对数据库操作失败,系统将会提示“录入数据时失败”,并返回添加成绩信息页面AddScore.jsp。添加成绩信息页面效果如图4-8所示。
图4-8 添加成绩页面
4.4.3用户管理
用户管理模块完成了对管理员和教师信息进行添加、修改、删除操作,以达到对登录用户信息进行管理的目的。此模块的主页面为UserManage.jsp,管理员可通过输入需要管理的用户的登录ID号,可以查询得到该用户的相关信息信息列表,通过列表中相应的链接可以对用户信息进行修改和删除操作。管理员还可通过点击用户管理页面UserManage.jsp或管理员页面Manage.jsp下方的“添加用户”按钮,即可进入添加用户信息页面AddUser.jsp。在该页面填写完添加用户的信息提交后,系统会对提交的信息进行检查,若存在没有填写完整的项,系统会提示该项信息不能为空,然后返回添加用户信息页面AddUser.jsp;若添加用户时对数据库操作失败,系统将会提示“录入数据时失败”,并返回添加用户信息页面AddUser.jsp。
2.4查询分析模块
4.5.1单科报表
单科报表模块包括了班级单科成绩报表CourseScoreReport.jsp和年级单科成绩报CourseScoreGradeReport.jsp表两个页面,完成了对选定班级或年级的某门课程成绩的查询和对查询的统计。查询的结果按成绩分数由高到底排序,并统计出名次。统计包括了有成绩记录的总人数统计和及格人数统计,并通过统计结果计算出该班或该年纪在这门课程的及格率。现根据班级单科成绩报表对单科报表模块做进一步说明。
班级单科成绩报页面效果如图4-9所示:
图4-9 班级单科成绩报表
4.5.2成绩统计
成绩统计模块包括了班级学期成绩报表CourseScoreReport.jsp和年级学期成绩报表CourseScoreGradeReport.jsp两个页面,完成了对选定班级或年级的某学期各科成绩的查询和对查询结果的汇总统计。查询的结果按成绩平均分数由高到底排序,并统计出名次。汇总统计通过使用交叉表和动态SQL语句完成了对学期各科成绩的汇总、计算总分、各科平均分。在本成绩统计模块中交叉表和动态SQL语句的使用是一个难点,可以说本模块页面调用的存储过程sp_ClassScoreReport和sp_GradeScoreReport是本模块的灵魂。另外,对学生名次的统计是通过JSP程序来完成的。现根据班级学期成绩报表页面对成绩统计模块做进一步说明。
班级学期成绩报表页面效果如图4-10所示:
图4-10班级学期成绩报表
4.5.3成绩分析
成绩分析模块包括了班级各科成绩分析ClassCourseAnalysis.jsp和年级各科成绩分析GradeCourseAnalysis.jsp两个页面,其任务是对选定班级或年级的某学期各科成绩的进行查询,并对查询结果进行统计分析。统计分析结果的报表显示了各科个分数段的人数、各科有成绩记录的总人数、各科优秀人数、及格人数,并计算出了各科的优生率和及格率。为了让统计结果能更直观的展现给用户,本系统通过扩展TeeChart组件完成了对各科各分数段人数统计结果以柱状图的形式展现。现根据年级各科成绩分析页面对成绩分析模块做进一步说明。
年级各科成绩分析页面效果如图4-11所示:
图4-11年级各科成绩分析页面
各分数段人数统计柱状图效果如图4-12所示:
图4-12各分数段人数统计柱状图
第29页共 29 页