计算机毕业设计 jsp学生成绩分析系统(jsp+sqlserver) 毕设

演示视频:

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所示。

c3aeaab7c72a348ffd5da05cb2843ec0.jpeg

图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所示。

265e4c1ec9498eab11ee51d18601a106.jpeg

图4-2 系统管理员页

4.3.2教师页面

拥有非管理员权限的教师用户登录后即进入管理员页面Teacher.jsp,页面上方将显示登录用户的用户名。用户可以点击左上方的“退出”链接退出系统,系统将转到Logout.jsp页面,清空Cookies集合和Session变量后返回到系统首页。教师用户可通过此页面进入成绩查询与分析模块,对成绩数据进行相应的查询与分析操作,并返回查询分析报表。教师页面效果如图4-3所示。

27caf7a65d90b3e79e4d8a10b0a73c57.jpeg

图4-3 教师页

2.3系统数据管理模块

系统数据管理模块只有拥有管理员权限的用户才能进入进行操作,通过此模块可以对包括成绩录入等一系列的系统数据进行管理。此模块又分为学生管理、课程管理、成绩管理和用户管理四个小模块。

4.4.1学生管理

学生管理模块完成了对学生信息进行添加、修改、删除操作,以达到对学生信息管理的目的。此模块的主页面为StudentManage.jsp,管理员可通过输入需要管理的班级的班级号,查询得到现有的学生信息列表,通过列表中相应的链接对学生信息进行修改和删除操作。学生管理主页面效果如图4-4所示。

6d5bff7e63774a51f8d58aa4cf23462e.jpeg

图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所示。

2cf8232a93be7f6bf5f717426db5144f.jpeg

图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所示。

bdbc681301638dcb832f6a5cf252636f.jpeg

图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所示:

b23efe9bb97c584710c178caad98308f.jpeg

图4-9 班级单科成绩报表

4.5.2成绩统计

成绩统计模块包括了班级学期成绩报表CourseScoreReport.jsp和年级学期成绩报表CourseScoreGradeReport.jsp两个页面,完成了对选定班级或年级的某学期各科成绩的查询和对查询结果的汇总统计。查询的结果按成绩平均分数由高到底排序,并统计出名次。汇总统计通过使用交叉表和动态SQL语句完成了对学期各科成绩的汇总、计算总分、各科平均分。在本成绩统计模块中交叉表和动态SQL语句的使用是一个难点,可以说本模块页面调用的存储过程sp_ClassScoreReport和sp_GradeScoreReport是本模块的灵魂。另外,对学生名次的统计是通过JSP程序来完成的。现根据班级学期成绩报表页面对成绩统计模块做进一步说明。

班级学期成绩报表页面效果如图4-10所示:

5801092ea264ea84b4f2d281022f24e8.jpeg

图4-10班级学期成绩报表

4.5.3成绩分析

成绩分析模块包括了班级各科成绩分析ClassCourseAnalysis.jsp和年级各科成绩分析GradeCourseAnalysis.jsp两个页面,其任务是对选定班级或年级的某学期各科成绩的进行查询,并对查询结果进行统计分析。统计分析结果的报表显示了各科个分数段的人数、各科有成绩记录的总人数、各科优秀人数、及格人数,并计算出了各科的优生率和及格率。为了让统计结果能更直观的展现给用户,本系统通过扩展TeeChart组件完成了对各科各分数段人数统计结果以柱状图的形式展现。现根据年级各科成绩分析页面对成绩分析模块做进一步说明。

年级各科成绩分析页面效果如图4-11所示:

58210b25642199053cf1f68522c3aa78.jpeg

图4-11年级各科成绩分析页面

各分数段人数统计柱状图效果如图4-12所示:

421b836b2e660a8e7baf3b25832e11a8.jpeg

图4-12各分数段人数统计柱状图

第29页共 29 页

一、课程设计题目 ① 基本要求题目:矩阵乘法。 ② 综合训练:学生成绩管理系统 二、设计要求 矩阵乘法:编写一个函数实现矩阵A(2行3列)与矩阵B 相乘(3行2列),乘积放在C数组中。在主函数中输入相乘的两数组,并输出结果。 学生成绩管理:(结构体数组、函数、指针、算法、流程结构及文件等的综合应用) 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 (2)各菜单项功能 ① 成绩录入:输入学生的学号、姓名及三门课的成绩; ② 成绩查询:(至少一种查询方式)。  按学号查询学生记录。  查询不及格学生的记录。 ③成绩统计:  计算学生的平均分;  根据学生的平均分高低,对学生的数据进行排序后输出;  对学生单科成绩排序,输出学生姓名与该科成绩; ④退出系统:退出整个系统(即主菜单)。 (3)结构体数组: #define N 30struct student {int num; /* 定义学号*/ char name[20]; /* 定义姓名*/ float score[3]; /* 定义存贮三门课成绩的数组*/ float average; /* 定义平均成绩*/ };struct student stu[N];  /* 定义结构体数组,存贮多个学生的记录*/ 三、数据结构设计描述 系统功能描述 1能够输入学生的学号、姓名、三科成绩并且计算出平均成绩。 2能够以表格的形式输出学生记录 3能够按照学生三科的平均成绩进行排序 4能够按照学生的单科成绩进行排序 5能够按照学号查询学生记录 6往表中插入学生记录 7从表中删除学生记录 8存储记录到文件中 9从文件中读取记录 10退出 数据字典 1数据流条目 数据流名称:全部记录 别名:无 简述:最新更新后所有关于学生成绩的记录 来源:数据库 去向:加工“记录筛选” 数据流量:不限 组成:学号+姓名+SC1+SC2+SC3+平均成绩 数据存储条 数据存储名称:学生成绩记录 别名:无 简述:存放学生所有可供查询的信息 组成:学号+姓名+SC1+SC2+SC3+平均成绩 组织方式:索引文件,以学学号为关键字 查询要求:要求能立即查询 2数据项条目 数据项名称:学号 别名:无 简述:所有学校学生的学号 类型:字符串 3加工条目 加工名:更改的记录 激发条件:学生成绩记录被改动 优先级:普通 输入:新记录 输出:更新数据、数据未改动 加工逻辑:根据现有学生成绩记录 if 新记录旧记录 then 更新数据 else 数据未改动 endif 设计测试流程 1、进入界面 2、输入选项0,回车; 按提示输入数据 3、回到主菜单; 输入选项8,回车; 输入文件名:data,回车; 出现成功提示,则读入文件操作成功。 4、回到主菜单,输入1,回车 每10个暂停显示数据 5、回到主菜单,输入2,回车 出现排序成功信息。 6、回到主菜单,输入3,回车 出现排序成功信息。 7、回到主菜单,输入5,回车 按提示插入一组数据 8、回到主菜单,输入6,回车 按提示输入姓名,删除数据 出现删除成功的信息 9、回到主菜单,输入4,回车 输入学号进行查询 10、回到主菜单,输入1,回车 出现统计信息 11、回到主菜单,输入7,回车 输入result,回车 出现成功写入文件的信息 12、回到主菜单,输入9,回车退出系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值