基于SpringBoot+Mybatis和Mysql实现的选课管理系统
一、引言
计算机技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段。一方面,这极大的减少了簿记和人力的开销,另一方面,现代计算机强大的计算能力和网络的普遍部署,大大简化了大量信息的处理和流动。教务管理是大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。迫切需要研制开发一款基于 Web 的综合教务信息管理网站。
而这次我们所要研发的青枣选课管理系统的定位是基于 Spring boot 和 jsp+boostrap5 前端框架开发的,使用角色主要是普通用户、教师、管理员。
二、需求概述
2.1 项目背景
-
开发目的 :学校管理
-
应用目标及其适用范围 :全体师生
2.2 需求描述
2.2.1 基本要求
教务管理是高校管理的重要组成部分,对于学校和政府教育管理单位来说都至关重要,所以教务管理系统应该能够为用户提供充足的信息和快捷的查询手段。但是使用传统人工的方式管理学生学籍、档案、成绩等,效率低、保密性差,不利于查找、更新和维护。使用计算机对学生信息进行管理,能够极大地提高学生管理的效率,节约教育经费,这也是适应学校信息化建设发展趋势的重要因素。
2.2.2 软件结构要求
教务管理系统在前期的开发为了测试的准确性,采用 B/S 的结构模式,在后期会加入域网服务器采用 C/S 的模式。
2.2.3 操作接口基本要求
分为 B/S 与 C/S 两种类型,B/S 体现一种清晰,严谨之感觉。这个接口的体现是多为录入,查询与审批。C/S 提供相应的应用接口,对无使用权限的功能不在接口上显示。操作尽量简单,好用、易用。这个接口体现多为查询,统计分析。
2.2.4 功能需求
用软件的功能结构图加以说明如下:
青枣选课管理系统的主要功能为:用户管理、学生信息管理、学生成绩管理、成绩统计与分析、选课管理、教室管理和信息查询。
数据更新功能分为三部分:学生相关信息的添加、删除和修改。
-
数据添加功能 :提供便捷的录入界面将学生数据添加到数据库
-
数据删除功能 :将不满足要求的相相关记录从数据库中删除
-
数据修改功能 :允许管理员对他所指定记录的相关信息进行修改
数据查询功能允许管理员进行两种方式的查询:记录浏览(不构造任何查询条件)和条件查询。
-
记录浏览功能 :可以方便快捷地浏览全部记录
-
条件查询功能 :允许用户构造各种组合条件来查询所需信息
密码管理功能允许用户对密码进行修改。
性能要求 :方便快捷有效地完成学生信息管理的各项工作,录入数据合法性的校验程度高,数据查询速度快,能够快速的对学生信息进行管理。
2.3 功能模块需求分析
这里主要通过系统的主功能模块划分以及系统用例图来分析系统需求。
2.3.1 主要功能模块划分
青枣选课管理系统分为三个模块:学生模块、教师模块和管理员模块。
-
学生模块的功能 :个人信息的查看,修改个人资料,查看理论课成绩,选修公共课,成绩排行榜功能
-
教师模块的功能 :个人信息的查询,成绩的录入、修改、查看和分析,查看所负责的课程
-
管理员模块的功能 :对学生、教师、班级、课程的增删改查,课程的安排,系统用户的添加和删除,为学生分配班级、课程等
对于各功能的详细介绍,如下表所示:
权限等级 | 身份 | 功能菜单 | 功能说明 |
---|---|---|---|
1 | 学生 | 登录 | 登录系统界面 |
1 | 学生 | 成绩查询 | 通过输入自己的课程号,学期,查询自己的某个课程的相关成绩及其他信息。 |
1 | 学生 | 个人信息 | 个人信息就是学生姓名,学生的性别年龄等个人相关信息。可以上传图片 |
2 | 教师 | 登录 | 登录到教师模块 |
2 | 教师 | 成绩录入 | 教师选择要录入分数的课程,直接在输入每个人的成绩,点击保存即可。 |
2 | 教师 | 成绩查看 | 查看某门课程的所有学生的成绩;查看某一个学生的成绩 |
2 | 教师 | 成绩分析 | 教师可以查看某门课的各个分数段的人数分布,课程的及格率等,还可看最高最低分、平均分。 |
2 | 教师 | 个人信息 | 教师可以查看自己的个人信息,修改自己的个人信息,可以更换头像 |
3 | 管理员 | 登录 | 登录到管理员模块 |
3 | 管理员 | 学生信息管理 | 包括学生信息的查询、添加、修改和删除 |
3 | 管理员 | 班级信息管理 | 先进行录入班级的信息,班级号,班级名称,班级院系 |
3 | 管理员 | 教师信息管理 | 包括教师信息的查询、添加、修改和删除 |
3 | 管理员 | 课程管理 | 包括课程的管理、班级管理和课程安排 |
3 | 管理员 | 系统用户权限管理(拓展功能) | 管理员添加或删除使用该系统的学生、教师以及管理员的账号密码权限的信息 |
3 | 管理员 | 个人信息管理 | 管理员有自己的个人信息,可以查看并修改自己的个人信息。 |
2.3.2 系统用例图
根据以上主功能模块分析,青枣教务管理系统包括三个参与者:学生、教师、管理员。根据不同身份的用户和系统的交互活动不同,可以画出如下用例图:
三、软硬件及外部系统接口需求
3.1 用户界面
用户界面是程序中用户能看见并与之交互作用的部分,设计一个好的用户界面是非常重要的,本设计将为用户提供美观,大方,直观,操作简单的用户界面。
3.2 硬件需求
移动终端硬件配置应遵循如下原则:具有高的可靠性,可用性和安全性。【描述系统中软件和硬件每一接口的特征。这种描述可能包括支持的硬件类型、软硬件之间的交流的数据和控制信息的性质以及使用的通信协议。】
3.3 运行环境
-
Web 浏览器 :0+、Chrome、Opera、Safari、Firefox 及任何支持 HTML5 标准的浏览器
-
标准分辨率 :1024*768、1920*1080、2K
四、数据库的设计与实现
本系统采用 MySQL 数据库,系统数据库名为 qz.数据库中有 10 张表。下面分别介绍不同的表。
4.1 数据表的概述
系统中包括:学生表(student)、教师表(teacher)、班级表(class)、课程表(course)、成绩表(score)、学生班级(student_class)、教师课程(teacher_class)、教师班级(teacher_class)、课程安排表(course_arrange)、系统用户表(user)
4.2 数据表的结构
student(学生表)
学生表主要存取学生的学号、姓名、性别、年龄、专业、入学年份、电话、地址、照片
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | studentId | int | 11 | 学号 |
2 | studentName | varchar | 255 | 姓名 |
3 | sex | varchar | 255 | 性别 |
4 | age | int | 20 | 年龄 |
5 | major | varchar | 255 | 班级 |
6 | yearSchool | int | 255 | 入学年份 |
7 | telephone | varchar | 255 | 电话号码 |
8 | address | varchar | 255 | 地址 |
9 | photo | varchar | 255 | 照片 |
teacher(教师表)
教师表主要存取教师的教师号、姓名、性别、学院、职位、学位、照片
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | teacherId | int | 11 | 教师编号 |
2 | teacherName | varchar | 255 | 教师姓名 |
3 | sex | varchar | 255 | 性别 |
4 | college | varchar | 255 | 学院 |
5 | professionalTitle | varchar | 255 | 职称 |
6 | degree | varchar | 255 | 学位 |
7 | photo | varchar | 255 | 照片 |
class(班级表)
班级表主要存取班级号、班级名称、学院:
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | classId | int | 11 | 班级编号 |
2 | className | varchar | 255 | 班级名称 |
3 | ofCollege | varchar | 255 | 学院 |
score(成绩表)
成绩表主要存取学生的学号、姓名、课程号、课程名、成绩
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | studentId | int | 11 | 学生编号 |
2 | courseId | int | 11 | 课程编号 |
3 | studentName | varchar | 255 | 学生姓名 |
4 | courseName | varchar | 255 | 课程名称 |
5 | grade | int | 5 | 分数 |
student_class(学生_班级表)
学生班级班级表主要存取学生学号、学生姓名、班级号、班级名
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | studentId | int | 20 | 学生编号 |
2 | studentName | varchar | 255 | 学生姓名 |
3 | classId | int | 11 | 班级编号 |
4 | className | varchar | 255 | 班级名称 |
teacher_class(教师_班级表)
教师班级表主要存取教师号、教师姓名、班级号、班级名称
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | teacherId | int | 11 | 教师编号 |
2 | teacherName | varchar | 255 | 教师姓名 |
3 | classId | int | 11 | 班级编号 |
4 | className | varchar | 255 | 班级名称 |
teacher_course(教师课程表)
教师课程表主要存取教师号、教师名称、课程号、课程名
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | teacherId | int | 11 | 教师编号 |
2 | teacherName | varchar | 255 | 教师姓名 |
3 | courseId | int | 11 | 课程编号 |
4 | courseName | varchar | 255 | 课程名称 |
course_arrange(课程安排表)
课程安排表是存取课程安排信息。主要存取教师号、教师名、课程号、课程名、班级号、班级名
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | classId | int | 11 | 班级编号 |
2 | className | varchar | 255 | 班级名称 |
3 | courseId | int | 11 | 课程编号 |
4 | courseName | varchar | 255 | 课程名称 |
5 | teacherId | int | 11 | 教师编号 |
6 | teacherName | varchar | 255 | 教师姓名 |
course(课程表)
课程表存取的是课程信息,包括课程号、课程名、学分
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | courseId | int | 11 | 课程编号 |
2 | courseName | varchar | 255 | 课程名称 |
3 | credit | float | 10 | 课程学分 |
user(系统用户表)
系统用户表存取的是该系统的用户的账号密码信息
序号 | 字段名 | 类型 | 长度(字符) | 描述 |
---|---|---|---|---|
1 | username | varchar | 255 | 用户名 |
2 | password | varchar | 255 | 密码 |
3 | superuser | varchar | 255 | 超级用户 |
4.3 E-R 图(实体-联系图)
全局 E-R 图
班级信息 E-R 图
学生信息实体 E-R 图
教师信息实体 E-R 图
成绩信息实体 E-R 图
课程信息实体 E-R 图
课程安排信息实体 ER 图
学生班级信息实体 E-R 图
信息实体 E-R 图
教师课程实体 E-R 图
系统用户信息实体 E-R 图
五、项目实现
5.1 类图
学生-教师类图
管理员-教师类图
选课类图
登录类图
5.2 顺序图
管理员登录功能顺序图
学生登录功能顺序图
教师登录功能顺序图
管理员管理公告顺序图
管理员管理教师顺序图
管理员管理课程顺序图
管理员管理学生顺序图
教师成绩管理顺序图
学生选课顺序图
5.3 活动图
学生活动图
教师活动图
管理员管理学生信息活动图
5.4 用例图
学生用例图
教师用例图
管理员用例图
5.5 状态图
登陆模块状态图
管理员模块状态图
六、系统实现
6.1 登录页面实现
6.2 学生平台功能实现
所有课程功能实现
已选课程功能实现
已修课程功能实现
已修课程功能实现
退出系统功能实现
6.3 教师平台功能实现
我的课程功能实现
成绩管理功能实现
评分功能实现
6.4 管理员功能实现
学生管理功能实现
修改学生信息功能实现
课程管理功能实现
课程添加功能实现
修改课程功能实现
教师管理功能实现
添加教师功能实现
修改教师信息功能实现
密码重置功能实现
修改密码功能实现
七、可靠性与可用性需求
7.1 处理能力
由于是在线测评系统,其处理能力主要考虑系统能承载的最大并发用户数,按照实际情况的规划,系统至少能承载的最大并发用户数要求达到全校学生总人数*φ,φ 为 0 至 1 的常数,随服务器容量而定。
7.2 响应时间
为了能够快捷地提供在线测评服务,系统应该能够快速地响应在线测评请求。用户最终得到结果的响应时间除了与系统响应速度有关外,还与网络状况有关。因此对 Web 服务器端需要较高的要求。
总结
本次课程设计工作在最初选题过后,我们小组讨论决定选择了基于 Spring boot 和 boostrap5 进行项目开发,它是真正的跨平台,实现动态功能的一种技术。它能够让人非常简单方便地构建安全高速的应用。同时可以通过 MyBatis 持久层框架实现接口,访问几乎所有数据库,并且可以使用数据库连接池技术,有效控制连接数,确保系统的正常运转。从发展的眼光来看,JSP 的前途一片光明。在数据库的选择上,我也使用近些年发展很好的 MySQL,充分实现系统的跨平台性。
在该系统的开发过程中,我们小组成员分工明确,并且配合默契,出现问题及时沟通。我们参阅了很多相关的书籍,许多网站的帮助解决了我们许多难题。系统中所有的页面,我们都争取使页面上代码简捷、易懂、易改。
经过多天的设计与开发,系统终于基本开发完成,各项预期功能都已得到实现。当然,该系统还具有进一步的扩展空间,将会伴随着日后的使用逐步完成,使得界面更加优美,操作更加顺畅。设计和开发过程中遇到的问题也都得到解决,学到了很多的开发经验,受益无穷。
此次项目的设计和开发不但巩固了我们所学的书本知识,而且还学到了许多课堂上无法学到的实践知识,并且提高了我们自学能力,增强了专业技术的水平。
参考文献
- 基于STRUTS和HIBERNATE的医院门诊信息管理系统(北京邮电大学·赵东)
- 基于STRUTS和HIBERNATE的医院门诊信息管理系统(北京邮电大学·赵东)
- 济宁市第一人民医院客户服务系统的设计与实现(山东大学·宋珂)
- 医疗电子商务平台的设计与实现(电子科技大学·唐章琨)
- 医疗电子商务平台的设计与实现(电子科技大学·唐章琨)
- 网上预约挂号系统的设计与实现(华中科技大学·游国强)
- 网上预约挂号系统的设计与实现(华中科技大学·游国强)
- 基于SSH的医疗单位事务管理系统的设计与实现(江西农业大学·邱石)
- 基于SSH的医疗单位事务管理系统的设计与实现(江西农业大学·邱石)
- 基于J2EE的互联网医院系统的设计与实现(厦门大学·林亦杉)
- 基于spring框架的网上预约挂号平台的设计与实现(电子科技大学·邓倩)
- 基于STRUTS和HIBERNATE的医院门诊信息管理系统(北京邮电大学·赵东)
- 基于Android平台的预约挂号系统的设计与实现(江西财经大学·赵震)
- 枣矿集团总医院预约挂号系统的设计与实现(山东大学·佘汝伟)
- 基于J2EE的深圳机场医院的挂号系统的设计与实现(吉林大学·车超骥)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码货栈 ,原文地址:https://m.bishedaima.com/yuanma/35433.html