基于SSM的中学学生学籍管理系统设计与实现

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 基于SSM的中学学生学籍管理系统设计与实现

摘 要:进入新世纪之后,信息技术迅速发达,计算机网络也被广泛使用。各行各业都在面临信息化改革。作为信息技术水平较高的教育行业来说,更是需要冲在信息化改革的最前面。在信息爆炸的年代,传统的教育模式就显得相对落后,教师课件、学生作业等等都只还是以纸质传输的形式来传达,如何将这些纸质的东西以网络来替代则显得尤为重要。

本系统是后台使用SSM框架、前端使用JSP结合jQuery、CSS等技术、数据存储使用MySQL数据库实现的一款中学学生学籍管理系统。在系统中涉及到了系统管理员和学生两个权限,其中系统管理员负责基本信息如加分项信息、扣分项信息、维护学生信息、班级信息、课程信息,且可以上传学生课程成绩、加分项成绩和扣分项成绩;而学生权限则可查看个人的所有成绩,并根据这三个成绩查看综合测评。本系统的开发不仅提高了系统管理员对基本信息的管理效率,另外学生可以即时查看个人各类成绩,达到了信息快速分享与传递的目的等。

关键词:学生学籍;JSP;MYSQL

摘 要:进入新世纪之后,信息技术迅速发达,计算机网络也被广泛使用。各行各业都在面临信息化改革。作为信息技术水平较高的教育行业来说,更是需要冲在信息化改革的最前面。在信息爆炸的年代,传统的教育模式就显得相对落后,教师课件、学生作业等等都只还是以纸质传输的形式来传达,如何将这些纸质的东西以网络来替代则显得尤为重要。

本系统是后台使用SSM框架、前端使用JSP结合jQuery、CSS等技术、数据存储使用MySQL数据库实现的一款中学学生学籍管理系统。在系统中涉及到了系统管理员和学生两个权限,其中系统管理员负责基本信息如加分项信息、扣分项信息、维护学生信息、班级信息、课程信息,且可以上传学生课程成绩、加分项成绩和扣分项成绩;而学生权限则可查看个人的所有成绩,并根据这三个成绩查看综合测评。本系统的开发不仅提高了系统管理员对基本信息的管理效率,另外学生可以即时查看个人各类成绩,达到了信息快速分享与传递的目的等。

关键词:学生学籍;JSP;MYSQL

1 引言

1.1 研究背景

随着科学技术的发展,计算机技术在当今社会中的作用越来越明显。目前,学生学籍管理系统是教育管理和学校建设的重要组成部分。而且各地学校的规模越来越大,每年高考人数不断递增,因此,学生学籍管理的规范化、信息化在学校教育管理体系中的有效实施是非常重要的。

另外,在传统的纸质化管理的模式下,无法对学校学籍信息分门别类的管理与查询工作,要翻阅某一个学生的学籍信息是非常痛苦,需要在卷宗中人工的去查找,这样对人力的消耗无疑是巨大的,而在上线了学生学籍管理系统之后,要查阅学生学籍资料只需要在具体功能模块中对学生数据进行精确搜索,在毫秒级的查询速度下就可以很快的完成搜索工作。

1.2 研究目的及意义

学生学籍管理的目的是管理学生的学历。学籍是学生组织和管理的客观基础。传统学籍管理的方式不仅消耗了很多人力的资源,而且还存在诸多弊端,影响了教育秩序,阻碍了教育改革的深入。因此,很难保证这项工作的严肃性。

学籍管理系统为学校提供了全面的学籍管理解决方案,显著提高了学籍管理效率,节约了教育资源,明显适应了学校信息化发展趋势。它解决了传统机密性的低效率、低维护和恢复问题。

2 系统分析

2.1 可行性分析

(1) 技术可行性分析

学生学籍管理系统的开发所涉及到的开发技术及开发工具,本人在平时的学习过程中都已经基本掌握,并且在系统开发阶段还将继续深入学习它们的使用方法及操作步骤等,所以学生学籍管理系统的开发是具备技术可行性的。

(2)经济可行性分析

本学生学籍管理系统经过完整的需求分析过后,确认本系统无需硬件设备的采购;另外在软件开发过程中所需要用到的开发工具如MyEclipse、Navicat、Tomcat等都是开源免费的,且各开发框架也都是开源的。本设计的开发工作只使用于校内答辩,暂时不涉及到服务器的购买,基于此,本系统具备经济可行性。

(3)操作可行性分析

由于学生学籍管理系统在开发与系统测试阶段,都会保持人机交互简单的原则,比如在操作者填写表单的时候,如果有异常数据的录入,系统会及时进行提醒。另外由于系统是基于B/S架构的,因此操作者只需要一台可以安装浏览器的电脑即可输入系统网址进行系统操作。如果是在服务器本地操作系统,甚至于不需要联网即可进行系统操作。基于此系统具备操作可行性。

2.2 功能需求分

(1) 登录验证功能:由于学生学籍管理系统需要对系统内的核心数据做好保密工作,所以不是任何人都可以登录系统进行操作的,因此必须设计系统登录功能,只允许本系统的相关人员才能登录学生学籍管理系统。

(2) 班级管理功能:学生学籍管理系统中会存储众多的学生信息,并需要将学生根据班级进行分类,所以需要设计班级管理模块来对学生进行划分。

(3) 学生管理功能:作为学生学籍管理系统中最核心的模块,系统管理员需要对系统内的学生信息维护管理工作。

(4) 科目成绩管理功能:在学生学籍管理系统中需要对学生的科目成绩进行维护管理,所以需要设计科目成绩管理模块,来上传学生各科的成绩。

(5) 加分管理功能:加分管理功能中涉及到两点,首先是加分项基本信息的管理,另外就是学生加分成绩的管理。

(6) 扣分管理功能:扣分管理功能中涉及到两点,首先是扣分项基本信息的管理,另外就是学生扣分成绩的管理。

(7) 测评统计功能:在有了科目成绩、加分项成绩及扣分项成绩后,还需要根据各成绩的权重来计算测评统计成绩。

2.3 系统用例图

学籍管理系统分为了管理员和学生两种角色。系统用例功能有班级管理、学生管理、学科成绩管理等模块。系统总体用例图如图2-1所示。

图2-1系统整体用例图

3 系统概要设计

3.1 功能模块设计

完成学生学籍管理系统的需求分析任务之后,基本确定了系统的功能模块。系统权限分为系统管理员和学生,其中系统管理员负责管理系统内的基本数据信息,比如班级、学生、科目、加分项、扣分项、成绩等,而学生权限则可以对个人的成绩进行查看。另外系统可根据加分项、扣分项和科目成绩来计算学生的综合测评成绩,系统功能模块图如下图3-1所示。

图3-1 系统功能模块图

3.2 数据库设计

3.2.1 E-R图

本学籍管理系统主要涉及主体部分主要包括系统管理员、学生信息。课程信息、加分项信息、扣分项信和班级信息等,系统整体E-R图如下图3-3所示。

图3-3 系统整体E-R图

3.2.2 数据库表的设计

系统设计第二阶段就是数据库表的设计,结合上述E-R图,为数据库的使用设计了相应的关系表,其中E-R图中的实体、属性和联系人应逐个对应于该表。数据库的表设计主要由7个表组成,分别为管理员表、学生表、科目成绩表、加分项表、扣分项表、课程管理表、权重设置表。

1.管理员表,系统管理员信息存储在该表中,由于系统中没有对管理员信息进行维护的功能,所以管理员需要修改个人账户或密码的话可以直接联系系统开发者在该表中进行信息的修改。管理员表如表3-1所示。

表3-1 管理员表

序号

字段名称

字段类型

大小

允许为空

1

SysAdminId

varchar

20

2

sysAdminName

varchar

32

3

sysAdminPass

varchar

20

2.学生信息表,在学生学籍管理系统中,学生信息表中存储了学校所有的学生学籍档案信息。详细表结构如下表3-2所示。

表3-2 学生信息表

序号

字段名称

字段类型

大小

允许为空

1

stuid

int

11

2

bjd

int

11

3

xh

varchar

32

4

xm

varchar

32

5

xb

varchar

2

6

nl

int

11

7

pwd

varchar

50

8

health

varchar

32

3.课程信息表,在学生学籍管理系统中需要保存各课程的成绩记录,所以需要设计课程信息表来对基本的课程信息进行维护。详细表结构如表3-3所示。

表3-3 课程信息表

序号

字段名称

字段类型

大小

允许为空

1

couid

int

11

2

mc

varchar

32

3

del

varchar

2

4.科目成绩表,在学生学籍管理系统中用成绩信息表来保存学生科目成绩,详细表结构如表3-4所示。

表3-4 科目成绩表

序号

字段名称

字段类型

大小

允许为空

1

cjid

int

11

2

xsid

int

11

5.加分信息表,在学籍管理系统中,利用附加成绩信息表来存储附加成绩的结果,详细表结构如表3-5所示。

表3-5 加分信息表

序号

字段名称

字段类型

大小

允许为空

1

jfxid

int

11

2

xsid

int

11

3

jfx

varchar

50

4

fs

int

11

5

time

varchar

50

6

desc

text

6.扣分信息表,在学籍管理系统中使用扣分信息表来存储扣分项的结果,详细表结构如表3-6所示。

表3-6 扣分信息表

序号

字段名称

字段类型

大小

允许为空

1

kfxid

int

11

2

xsid

int

11

3

kfx

varchar

50

4

fs

int

11

5

time

varchar

50

6

desc

text

7.权重设置表,在学生学籍管理系统中,设计权重设置表来给各成绩进行权重设计,最后计算出综合测评的总成绩。

详细表结构如下表3-7所示。

表3-7 权重设置表

序号

字段名称

字段类型

大小

允许为空

1

qzid

int

11

2

couval

double

10

3

jiaval

double

10

4

kouval

double

10

4 系统详细设计与实现

4.1 系统登录

进入系统,首先显示的是登录页面。在登录界面,您可以验证登录名或密码是否正确。如果登录名或密码有错,则返回登录失败,其实现页面如图4-1所示。

图4-1系统登录

系统后台接收到前端传递过来的登录请求后,首先将根据登录类型userType判断当前登录者角色,再根据不同角色调用不同的业务层代码,在业务层代码中将用户名和密码作为查询条件来查询系统用户表或学生信息表。再根据查询结果来判断登录是否成

功。核心代码如下:

If(userType == 0){

Tadmin loginAdmin = adminService.checkLogin(uname,pwd);

}else{

   Tstudent loginStudent = stuService.checkLogin(uname,pwd);

}

4.2 修改密码

管理员登录后,点左旁导航栏的“修改密码”键,进入修改密码界面。更新密码时,需要输入正确的原密码和新的登录密码,实现页面如图4-2所示。

图4-2 修改密码

系统后台接收到修改密码请求后,首先获取当前登录者信息currentUser,再将其密码属性与前端传递的原密码进行比较,若相同则原密码输入正确,再将新密码赋值给currentUser实体,之后调用业务层updatePwd方法完成密码的修改。核心代码如下:

LoginUser currentUser = session. getAttribute(“currentUser”);

If(currentUser.getPwd == oldPwd){

currentUser.setPwd(newPwd);

service.updatePwd(currentUser);

}

4.3班级管理

在班级管理页面,会列出所有班级信息,可选择要去除的班级,其实现页面如图4-3所示。

图4-3班级管理界面

对于添加新的班级,系统将检查必填项是不是空。如果它们空,则由表单οnsubmit=return checkForm(), checkForm()函数是各种checkForm输入数据的验证方法,其实现页面如图4-4所示。

图4-4班级添加界面

4.4学生管理

“学生管理”页面中,所有学生信息都被罗列在内,并且能删除选定学生,其实现页面如图4-5所示。

图4-5学生管理界面

如果您需要添加学生,可以跳到添加学生界面。点“选择”键后,选择班级信息。添加时,系统会对各项非空验证,对学号进行唯一验证,实现页面如图4-6、4-7所示。

图4-6学生添加界面图4-7班级选择界面

系统后台接收到学生集合的查询请求后,首先调用业务层的queryStus方法,在持久化层执行sql select指令后,完成对学生信息表的查询,将查询得到的结果返回给前端,前端完成遍历展示。

List<Xuesheng> xss = service.queryStus();

Model.setAttribute(xss,xss);

4.5科目成绩管理

在学科成绩管理页面,列出了所有的学科的成绩信息,并能选择指定成绩信息做删除,其实现页面如图4-8所示。

图4-8科目成绩管理界面

如需要添加科目分数信息,可跳到添加科目成绩页面,点“选择”键选择学生后,系统将对其余非空项进行验证,实现页面如图4-9、4-10中所示。

图4-9科目成绩添加界面

图4-10学生选择界面

系统后台在接收到科目成绩集合查询请求后,首先调用业务层的queryChengjis方法,在持久层执行sql select指令后,完成对成绩信息表的查询,将查询得到的结果返回给前端,前端完成遍历展示。核心代码如下:

List<Chengji> cjs= service.queryChengjis();

Model.setAttribute(cjs, cjs);

4.6 加分信息管理

加分信息管理页面显示对应学年的学生加分信息,可以删除指定信息,实施页面如图4-11所示。

图4-11课程学生管理界面

如果需要添加学生额外加分信息,可以跳到添加加分信息页面。点击“选择”键选择学生后,系统将验证必要非空的条件,实施页面如图4-12和4-13所示。

图4-12加分信息添加界面

图4-13学生信息选择界面

4.7扣分信息管理

扣分信息管理页面列出了当前所有扣分的信息。删除指定的扣分信息,其实现页面如图4-14所示。

图4-14课程学生管理界面

如果需要添加学生减分信息,可以跳转扣分页面。点击“选择”按钮选择学生后,系统将对其余项做非空验证,其实现页面如图4-15、5-16中所示。

图4-15扣分信息添加界面

图4-16学生信息选择界面

系统后台在接收到加分项/扣分项集合查询请求后,首先调用业务层的query方法,在持久层执行sql select指令后,完成对加分项/扣分项的查询,将查询得到的结果返回给前端,前端完成遍历展示。核心代码如下:

List<Jiafenxiang> jiafenxiangs = service.query ();

Model.setAttribute(jiafenxiangs, jiafenxiangs);

4.8测评信息统计

管理员点击左侧操作栏中的“评估信息统计”后,系统会跳到评估统计页面。对要选择的班选择操作后,单击提交跳到统计结果页面,实现页面如图4-17及图4-18所示。

图4-17统计界面

图4-18统计结果界面

学生测评总成绩公式为:总成绩 = 课程总分数*课程成绩权重 + 加分项总分数*加分成绩权重 – 扣分项总分数*扣分成绩权重,核心代码如下:

double zong = chengji* nf.parse(quanzhong.getZong()).doubleValue()

+ jiafen*nf.parse(quanzhong.getJia()).doubleValue()

- koufen* nf.parse(quanzhong.getKou()).doubleValue() ;

4.9学生个人信息管理

学生在登录系统后可修改自己个人信息。在这里,系统会回显本人的基本信息,如果要修改,可在修改后单击提交按钮完成,其实现页面如图4-19所示。

图4-19学生个人信息管理界面

4.10学生成绩信息查看

学生可以在登录后查看他们的科目成绩。在这里,您可以返回此学生的对应学期各科目分数成绩。单击print按钮打印成绩单(window.print()方法),实施页面如图4-20和图4-21所示。

图4-20学生查看成绩信息界面

图4-21打印机选项界面

4.11学生加分信息查看

学生用户可以在登录后查看其他分数信息。在这里,您能够返回登录用户的加分的信息情况。点“打印”按钮打印加分数据表,实施页面如图4-22所示。

图4-22加分信息列表界面

学生查看个人加分信息时,系统后台接收到请求后,首先获取当前登录学生的ID,再根据学生ID查询加分记录表,然后再将查询结果返回给前端,核心代码如下:

TStu stu = session.getAttribute(“currentUser”);

List<Jiafen> jfList = service.getAllJf(stu.getId);

4.12学生扣分信息查看

学生能够在登系统后查他们的扣分信息数据。点击“打印”按钮打印扣分信息表,实施页面如图4-23所示。

图4-23扣分信息列表界面

学生查看个人扣分记录时,系统后台接收到请求后,首先获取当前登录学生的ID,再根据学生ID查询扣分记录表,然后再将查询结果返回给前端,核心代码如下:

TStu stu = session.getAttribute(“currentUser”);

List<Koufen> kfList = service.getAllKf(stu.getId);

5 系统测试  

5.1 软件测试

在系统开发工做完成后,为保证系统能正常运行,需要对系统功能模块来进行测试工作,测试方法有很多种,如黑盒测试或者白盒测试。黑盒测试就是在等系统发布后,对系统功能实施开放测试,这个过程中由于不是面向代码进行测试的,所以可能测试不出来一些隐藏的比较深的bug,而白盒测试则是面向代码进行测试,比如系统开发者们经常用到的debug模式就是一个典型的白盒测试实例

5.2 系统测试过程

根据软件测试的方法,下面列出系统详细的软件测试用例,测试过程如下表5-1所示。

表5-1 系统操作测试表

用例编号

测试目的

操作步骤

输入数据

期望结果

执行结果

1

平台用户能否正常登录

点击登录按钮

输入正确的用户名和密码

登录成功

与预期结果相符

2

系统管理员能否可以查看所有学生及教师信息

进入系统分别点击学生信息和教师信息

可查看所有学生及教师信息

与预期结果相符

3

系统管理员是否可以录入课程信息

点击课程信息,点击新增基本课程

按照要求填写课程信息

弹出新增成功

与预期结果相符

4

系统管理员是否可以查看成绩报表

点击成绩报表

选择时间区间

搜索出该时间段内所有的学生成绩报表

与期望结果相符

5

系统管理是否可以设置测评权重

点击测评权重设置

录入各项评分权重

根据权重计算得分

与期望结果相符

6

学生是否可以查看个人成绩

点击我的成绩

可查看个人成绩

与期望结果相符

7

系统用户是否可以退出登录

点击退出按钮

系统调整至登录页

与期望结果相符

5.3 系统测试结论

在系统测试过程中,有可能遇到各式各样问题。甚至一些难以理解的bug,比如插入MySQL数据库后的中文变为了乱码。因为导致这个问题的因素有很多,所以在测试过程需要定位是在哪个阶段出现了中文乱码。比如在前端页面如果没有准确的设置页面的编码格式,这样就会导致中文乱码。另外在用POST方式提交参数到Web后端时,后台接收到的中文参数值也可能会是乱码的。还有可能是MySQL数据库设置的编码格式为latin,导致的插入MySQL数据库时的中文变成了乱码。这几种情况中任意一种发生都会导致乱码,所以这就需要开发人员将原因找准,再对症下药,方能解决这个问题。其他bug也一样,首先去发现问题,然后定位问题,再是解决问题。只要认真遵循这三个步骤,系统测试一定能够顺利完成。

6 结束语

学籍管理系统的设计与实现已基本完成。学籍管理系统的开发从系统需求分析确定系统开发的功能模块需求,再到系统设计将系统分析阶段抽象的实体信息具体化到数据库表结构,再到系统编码实现完成系统功能模块的开发工作。在整个开发过程中,遇到了很多困难,比如在设计数据库表结构时,没有考虑到数据的安全性问题,在将实体信息进行删除操作时,使用的物理删除,也就是直接将数据删除,无法找回。这样系统如果在真实环境下上线,可能会面临数据丢失后无法找回的问题。所以后来将所有的数据表加上了删除标识字段,使用逻辑删除,也就是在删除某一实体数据时,将该实体对应的删除属性变更为已删除标识,再在查询实体数据时,查询删除属性为未删除的数据。这样就很好的避免了误删数据导致的数据安全性问题。另外在对学生成绩进行综合测评成绩的计算实现过程中,一开始并为根据设计权重设置这个模块,只是一味的将课程成绩加上加分项成绩再减去扣分项成绩,由于学校对这三个成绩的重视程度不一样,所以这样计算出来的结果是不合理的。后来加上了权重设置后,系统管理员可自由修改各成绩的权重值,最后再加三门成绩乘以各自的权重值得到的总成绩才是相对比较合理的。

参考文献

[1] 张跃平,耿祥义编著.JSP程序设计[M].北京:清华大学出版社,2020:18-25.

[2] 姚晓春,郑文清编著.Java编程技术教程[M].北京:清华大学出版社,2021:120-150.

[3] 吴逸贤,吴目诚编著.Java2程序设计[M].北京:科学出版社,2019:55-78.

[4] 张文静,林琪译编著.JSP程序设计[M].北京:人民邮电出版社,2019:45-60.

[5] 周竞涛,赵寒,王明微等编著,Eclipse完全手册[M].北京:电子工业出版社,2020:70-100.

[6] 刘炳文,精通JSP入门与提高[M].北京:人民邮电出版社,2019:70-85.

[7] 宋伟,吴建国等.中文Jsp编程基础[M].北京:清华大学出版社,2020:45-50.

[8] 杨磊,陈凌云.精通Eclipse Web开发:Java体系结构、工具、框架及整合应用[M].北京:人民邮电出版社,2019:50-60.

[9] 叶达峰,Eclipse编程技术与实例[M].北京:人民邮电出版社,2020-01:10-15.

[10] 张红军,王红.Jsp 中文版高级应用与开发指南[M].北京:人民邮电出版社,2020.4:55-80.

[11] WSH.A Discipline for software Engineering. Addison 2019:97-142

[12] Highsmith,Jim.Agile Project Management.美国:PEARSON,2021、

喜欢的点赞收藏加关注私信作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
小程序 前端开发 测试技术
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
|
2天前
|
前端开发 JavaScript Java
智慧物流管理|基于SSM的第三方物流信息管理系统
智慧物流管理|基于SSM的第三方物流信息管理系统
|
2天前
|
前端开发 JavaScript Java
计算机Java项目|SSM实验室课程管理系统
计算机Java项目|SSM实验室课程管理系统
|
2天前
|
前端开发 JavaScript Java
计算机Java项目|SSM酒店客房预定管理系统
计算机Java项目|SSM酒店客房预定管理系统
|
2天前
|
前端开发 JavaScript Java
计算机Java项目|SSM疫情之下社区管理系统
计算机Java项目|SSM疫情之下社区管理系统
|
2天前
|
前端开发 JavaScript Java
泉水管理系统|基于SSM实现泉水管理系统
泉水管理系统|基于SSM实现泉水管理系统
|
2天前
|
前端开发 Java 数据库连接
基于SSM+Bootstrap【爱校教务系统管理系统】附源码
基于SSM+Bootstrap【爱校教务系统管理系统】附源码
4 0
|
8天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的大学生校园兼职附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的大学生校园兼职附带文章和源代码部署视频讲解等
31 8
|
8天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的停车场微信小程序附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的停车场微信小程序附带文章和源代码部署视频讲解等
20 6
|
8天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
27 10