第1章 系统概述
1.1概述
背景:随着计算机网络技术的发展,Web 数据库技术已成为应用最为广泛的网站架构基础技术。学生选课系统作为教育单位不可缺少的部分,其内容对于学校的决策者和管理者至关重要。传统的人工管理方式存在效率低、保密性差等缺点,因此需要开发一个学生选课系统来提高管理效率和质量。
系统功能:本系统主要包括用户登录、课程管理、学生管理、教师管理、选课管理等功能模块。
实现技术:本系统采用了 Java 语言开发,使用了 Spring Boot 框架和 MyBatis 框架提高开发效率和质量。前端使用了 Vue.js 框架开发,实现了前后端分离。
1.2 本系统主要功能模块
本系统的主要任务就是负责对学生选课管理.主要用户为老师、学生,其中,学生可对自己的信息进行查询,可以进行选课,也可以进行删除已选课程,教师可对学生和课程的信息进行查询,教师拥有所有的权限,可以添加删除学生信息,,课程.系统提供界面,操作简单.
为实现这些功能,系统一个包含如下几个基本模块:
1.用户登陆模块.用户可以选择自己的登陆身份.
2.课程管理模块.教师可以实现对课程信息的查看与添加.
3.学生管理模块.教师可以实现对学生信息的查看与修改.
4.教师管理模块.可以实现对教师信息的管理.
5.退出系统.清除缓存退出该系统.
第2章 可行性研究
2.1 项目背景及意义
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.随着计算机网络技术发展,Web数据库技术已经成为应用最为广泛的网站架构基础技术在应用系统中,Web提供了与用户进行通信联络的有效手段,利用Web技术,实现Web服务器与数据库系统的连接,完成对数据的处理与查询,用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据.
学生选课系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来人们使用传统人工的方式管理文件档案,这种方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难.
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生选课进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高学生选课的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件.
2.2 可行性研究
技术可行性研究:本系统采用了 Java 语言开发,使用了 Spring Boot 框架和 MyBatis 框架提高开发效率和质量。前端使用了 Vue.js 框架开发,实现了前后端分离。这些技术都是目前比较成熟的技术,具有较高的可靠性和稳定性。
经济可行性研究:本系统的开发成本主要包括人力成本、硬件成本和软件成本等。由于本系统是一个小型的学生选课系统,因此开发成本相对较低。同时,本系统的使用可以提高学校的管理效率和质量,减少人工管理的工作量和错误率,从而为学校带来一定的经济效益。
操作可行性研究:本系统的操作界面简洁明了,操作流程简单易懂,用户可以通过浏览器轻松访问系统。同时,本系统还提供了详细的帮助文档和操作指南,方便用户使用。
法律可行性研究:本系统的开发和使用符合国家相关法律法规的要求,不存在任何法律问题。
第3章 需求分析
3.1 功能性需求
主要功能及要求:
(1)能够实现学生基本信息的录入、修改、删除等操作,其中学生信息包括姓名、学号、性别、入学时间、学院等;
(2)能够实现课程信息的录入、修改、删除等功能,其中课程信息包括课程名称、授课老师编号、上课时间、上课地点、周数、课程类型、学分等;
(3)能实现选课功能,每个学生有选修学分限制;
(4)能方便的对学生选课情况进行查询,可以根据学号、姓名、班级、课程名等多种方式查询;
(5)能够实现教师基本信息的录入、修改、删除等功能,其中教师信息包括教师编号、姓名、性别、出生年份、学历、职称、入职年份、学院等;
(6)有用户登录功能,能够选择管理员、教师或者学生的身份登录系统。
3.1.1详细需求分析
对系统功能分析,应包含以下功能:
- 身份验证,用以用户登录,分别有教师用户、学生用户和管理员用户;
- 教师用户可以录入、修改、删除学生信息、课程信息;
- 教师用户可以按编号、名称、等多种方式查询学生信息、课程信息;
- 教师用户可以统计学分;
- 学生用户可以查看可选科目、并选课;
- 学生选课结束,可以查看已选课程;
3.1.2该系统实现的大致功能:
1.用户登陆界面.该界面可以选择使用者的身份,“,教师,学生,管理员”.不同的身份有不同的操作界面和功能权限.学号和密码输入正确即可登录.学生管理界面.提供了学生选课的功能和查询已选课程的功能2.教师管理界面.拥有最高的权限.允许添加学生信息和课程信息,提供了对学生学籍信息的查询,添加,修改,删除;提供了对教师信息的查询,添加,修改,删除;修改密码等功能.
3.1.3系统的数据性能需求
学生选课系统主要提供信息查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己所选的课程,教师可以通过该系统对学生的信息进行添加、删除、修改和查询,为了保证系统能够长期、安全、稳定、可靠、高效的运行,学生信息管理系统应该满足以下的性能需求:
1.系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能.在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足各使用者对信息处理的需求.
由于信息查询系统的查询功能对于整个系统的功能和性能完成举足轻重.作为系统的很多数据来源,而学生的信息的准确性很大程度上决定了学生选课管理系统的成败.在系统开发过程中,必须采用一定的方法保证系统的准确性.
2.系统的开放性和系统的可扩充性
学生选课系统在开发过程中,应该充分考虑以后的可扩充性.例如科目的改变和学生基本信息的改变,学生查询的需求也会不断的更新和完善.所有这些,都要求系统提供足够的手段进行功能的调整和扩充.而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件.通过软件的修补、替换完成系统的升级和更新换代.
3.系统的易用性和易维护性
学生选课系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉.这就要求系统能够提供良好的用户接口,易用的人机交互界面.要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程.
学生选课系统中涉及到的数据是学生的重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作.
3.1.4系统功能需求分析
综上所述本系统具体需要完成功能如下:
1.全面展示学生选课系统所包含的信息.
2.登陆窗口模块区分教师、管理员和学生身份.
3.教师登录模块:教师登录系统可以录入学生信息和课程信息以及管理课程和学生信息查看学生的学分情况
4.学生登陆模块:学生登录系统后可以进行选课,并查看自己所选的课程。
该系统使用了先进的数据库技术与数据管理技术,使数据的准确性与安全性得到了很大的提高,且在用户的并行操作与用户管理方面也有了极大地改善.
教师登录模块功能需求:
教师登录系统后可以对学生的个人信息进行查询操作,然后教师可以对学生和课程信息进行增删改查操作。
学生模块功能需求
通过调研得出学生选课系统中需要在学生登录或验证身分后,可以自行完成学生的选课以及学生个人信息的查询,也可以进行选课和删除已选课程等操作,方便用户使用.
3.1.5 功能模块划分
用户验证登录模块
用户根据自己身份,选择相应的登录选项(教师、管理员或学生)登录,与数据库中数据相验证,若用户存在,则跳转到相应页面;若用户不存在,则提示密码或用户名错误,跳回登录页面。
教师对课程信息的操作模块
教师可以添加课程、删除课程、修改课程,查询课程。修改、删除、添加模块应有修改成功的提示,查询页面应有分页显示功能。
教师对学生信息的操作模块
教师可以添加、修改,删除、查询学生信息。对学生信息的修改、删除、添加操作应该有修改成功的提示,对学生的查询应该可以分页显示。
模糊查询功能
教师用户可以根据某一个数据项查询学生或课程信息,或是查询含有某一字符的相关元组。
学分控制模块
本模块可统计选课学分不足或是学分超出上限的学生。
学生选课模块
学生可查看所有课程,可选择选课人数未满课程。选课前要有确认选项。选课后不能更改。成功选课后,选课对该学生关闭。该学生只能看到已选课程以及课程信息。
3.2 非功能性需求
3.2.1 系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件.所有这些都要符合主流国际、国家和行业标准.例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准.如规范的数据库操纵界面、作为业界标准TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性.
3.2.2系统的响应速度
学生选课系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息.在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率.
第4章 总体设计
4.1设计目标
学生信息管理系统为用户提供信息交流的交互平台,让老师、学生间建立良好联系,主要实现如下目标.
1教师管理模块
1.基本信息录入,对系统的所有基本信息进行管理操作.
2.学生信息操作,对学生的信息进行管理操作.
4.教师管理操作,对所教课程和听课通知进行查询操作
2学生登录管理模块
1.学生管理操作,对学生自己选课和删除已选课程进行管理操作.
2.系统中数据库起着非常重要的作用,不能随意存取或改动,因此必须对数据库的存取和改动进行严格的控制,对系统数据进行有效的保护,防止对数据库的非法操作,防止计算机病毒对数据的破坏,定期对数据库进行备份.
4.2数据库分析
1.实体的分析
根据学生选课系统的总体设计,我们将这个系统分为三大模块.由此我们可以首先确定三大实体:教师、管理员和学生,而由于用户可以进行选课、查询等操作.所以确定该系统共有以下实体:
1.教师实体.
2.学生实体.
3.课程实体.
4.选课实体.
5.管理员实体
2.实体的属性
该系统涉及到的实体分别为教师实体,学生实体.根据系统需求,我们将以下实体的属性确定如下:
数据结构 | 组 成 |
教 师 | 教师编号、密码、姓名 |
学 生 | 学号、姓名、密码、班级、性别。 |
课 程 | 课程编号、课程名称、授课教师、课程学分 |
选课关系 | 课程编号、学号、课程学分、上课地点、成绩 |
表4-1实体属性表
1.教师实体,包含教师的信息,详细属性如下:
教师实体,包含教师的基本信息,详细属性如下:
(1)教师号.
(2)教师姓名.
(3)登录密码.
3.学生实体,包含学生的基本信息,详细属性如下:
(1)学生号.
(2)学生姓名.
(3)密码.
(4)班级.
(5)性别.
4课程实体,包含课程的信息,详细属性如下:
(1)课程号.
(2)课程名称.
(3)课程学分.
3.数据表设计
逻辑结构是独立于任何一种数据模型的信息结构.逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化.
定义每个表的数据类型以及字段限制,使数据库达到一定的完整性.每个表的物理设计如下:
数据项 | 含义 | 别名 | 类型 | 长度 | 取值范围 |
教师编号 | 唯一表示教师 | TeaNo | Varchar | 11 | —— |
学号 | 唯一表示学生 | StuNo | Varchar | 11 | —— |
教师密码 | 教师用户登录验证 | Teapassword | Varchar | 20 | -—— |
学生密码 | 学生用户登录验证 | Stupassword | Varchar | 20 | —— |
姓名 | 老师、学生的属性 | Name | Varchar | 11 | —— |
班级 | 学生所属班级 | class | Varchar | 11 | —— |
课程学分 | 课程属性,学生要修够一定学分 | Creait | Float | 5 | 0-5 |
教室 | 学生上课地点 | Classroom | Varchar | 11 | —— |
授课教师 | 课程由老师教授 | Teacher | Varchar | 11 | —— |
4.3SQL语句实现
(1)教师信息表创建:
CREATE TABLE `teacher` (
`TNo` int(11) NOT NULL AUTO_INCREMENT,
`Tname` varchar(30) DEFAULT NULL,
`Tpassword` varchar(30) DEFAULT NULL,
PRIMARY KEY (`TNo`)
)
(2)课程信息表创建:
CREATE TABLE `course` (
`CNo` int(11) NOT NULL AUTO_INCREMENT,
`Cname` varchar(30) NOT NULL,
`Ccredit` float(5,1) DEFAULT '0.0',
PRIMARY KEY (`CNo`)
)
(3)学生信息表创建:
CREATE TABLE `student` (
`SNo` int(11) NOT NULL AUTO_INCREMENT,
`Sname` varchar(30) NOT NULL,
`Spassword` varchar(30) NOT NULL,
`Sclass` varchar(30) DEFAULT '',
`Ssex` varchar(10) DEFAULT '',
PRIMARY KEY (`SNo`)
第5章 详细设计
本学生选课系统主要模块,即用户登录模块、用户操作模块,用户操作模块又分为学生操作模块、教师操作模块和管理员操作模块.下面将显示系统的主要功能模块.
5.1教师模块设计
学生信息管理系统前台登录模块只有一个登陆窗口分为学生、老师、管理员三个级别登录,系统在后台程序有自动限制设置,可以自动识别登录者的限制.其系统登录模块算法如下:
1 输入用户名和密码;
2.判断用户名和密码是否匹配
(1)若提示输入信息错误,则返回登录界面重新登陆;
(2)否则进入系统.
5.1.1添加学生信息功能
学生选课系统对学生信息的管理非常重要,其中对信息的录入是系统最为关键的地方,以往我们管理学生信息的时候都是手工操作,而随社会不断发展的今天计算机的应用已全部取带了手工操作的方法,利用计算机可以方便的录入各类信息,进行高效的管理.学生信息的录入就是利用计算机通过程序读入数据库,录入学生信息模块算法描述如下:
1.教师登录后,录入学生信息模块;
2.无误后,学生信息添加成功.
5.1.2添加新课程功能
学生选课模块主要是给学生选择课程的功能,本功能主要由教师在后台发布自己的课程信息进入数据库,然后学生登录系统,可以看见所有发布的课程信息,然后学生再进行选择,学生选择的课程信息会自动进入后台数据库,其学生选课模块算法描述如下:
1.教师成功登录;
2.点击添加新课程;
3.输入课程号;
4.输入课程名;
5.点击提交按钮,完成添加新课程操作.
5.1.4修改学生信息功能
此信息修改模块主要是给学生和教师建立信息库,方便教师查询操作,信息修改模块算法描述如下:
1.教师成功登录;
2.点击修改学生信息;
3.输入学生的编号;
4.输入正确,进入修改页面进行相关修改;
5.1.5修改课程信息功能
此信息修改模块主要是给课程和教师建立信息库,方便教师查询操作,信息修改模块算法描述如下:
1.教师成功登录;
2.点击修改课程信息;
3.输入课程的编号;
4.输入正确,进入修改页面进行相关修改.
5.2学生模块设计
5.2.1学生选课功能
学生可以进行网上选课,在每学期快要结束时,学校都会把下学期要修的课程放到学校网站上,供同学们进行选课,这样节省了大家的宝贵时间,也方便了老师的管理,方便又实用.
此学生选课功能主要是方便学生操作,信息模块算法描述如下:
1 学生成功登录;
2.点击选定课程按钮,进入选定课程的页面;
3.在页面中点击添加课程按钮;
4.点击想要选择的课程的复选框,进行选择;
5.然后点击提交按钮;
6.课程选择成功.
5.2.2查看学生录;
学生选课系统方便了学生查看自己的信息,如果学校由于疏忽输入了错误信息,自己可以查看并且及时通知学校教师,及时修改,减少不必要的麻烦.
此信息查询模块主要是方便学生查询操作,信息查询模块算法描述如下:
1 学生成功登录;
- 点击查询学生信息;
- 输入学生的编信息功能
4.输入正确,进入信息查询页面进行相关修改.
5.2.3查看已选课程功能
学生可以查看本学期已选课程,并且可以方便的知道所选课程的教课老师和上课地点等,这样方便了学校专员,方便了老师和我们学生自己,需要的时候从网上下载课程表,随时看都可以.
此信息查询模块主要是方便学生查询操作,选课信息查询模块算法描述如下:
1. 学生成功登录;
2.点击选定课程;
3.右边显示出本学期已选定的课程信息;
4.如果想继续选课,点击添加课程即可;
5.2.4删除已选课程功能
学生可以进行网上选课,就可以删除已选课程,比如说不小心选错了某一门课程,就必须在规定的时间里删除掉,然后重新选择要修的课程,因为有时粗心是不可避免的,所以有删除的功能是必须,这样既方便了老师的管理,又方便了自己.
1. 学生成功登录;
2.点击选定课程;
3.右边显示出本学期已选定的课程信息,选择想要删除的课程;
4.单击课程后面的删除按钮即可;
第6章 系统实现与部署
在完成了上面的所有工作之后,本系统的各种功能已经全部确定,下面要完成的工作就是在详细设计的基础上,建立各功能界面,实现系统的各个功能.
6.1系统登录界面
本系统有三个用户,分别是学生、教师和管理员,配给他们三个不同的权限.
图6.1用户登录界面
6.2录入学生信息界面
图6.2录入学生信息界面
6.3教师管理界面
图6.3教师管理界面
6.4课程名单界面
图6.4课程名单界面
6.5账号密码重置界面
图6.5账号密码重置界面
第7章 测试
7.1 功能测试
登录功能测试:测试不同用户(学生、教师、管理员)能否正确登录系统,验证用户名和密码的准确性。
课程管理功能测试:
教师添加课程测试:教师是否能够成功添加新课程,包括课程名称、授课教师、上课时间等信息。
教师修改课程测试:教师能否对已有的课程信息进行修改,如课程名称、授课教师等。
教师删除课程测试:教师是否可以删除不再需要的课程。
学生选课测试:学生是否能够查看所有课程,并选择自己感兴趣的课程进行选课。
学生退课测试:学生是否可以在规定时间内退选已选课程。
学生管理功能测试:
教师添加学生信息测试:教师是否能够成功添加学生信息,包括学生姓名、学号、性别等。
教师修改学生信息测试:教师能否对学生信息进行修改,如学生姓名、学号等。
教师删除学生信息测试:教师是否可以删除不再需要的学生信息。
学生查看个人信息测试:学生是否能够查看自己的个人信息,如姓名、学号、选课情况等。
成绩管理功能测试:
教师录入成绩测试:教师是否能够为学生录入课程成绩。
学生查看成绩测试:学生是否能够查看自己所选课程的成绩。
7.2 性能测试
响应时间测试:在不同网络环境下,测试系统的响应时间,包括登录、选课、查询等操作的响应时间。
并发测试:模拟多个用户同时进行选课、查询等操作,测试系统在高并发情况下的性能表现。
7.3 安全测试
权限测试:测试不同用户的权限是否正确,如学生是否只能进行选课、查询等操作,教师是否可以进行课程管理、学生管理等操作。
数据加密测试:测试系统是否对用户密码等敏感信息进行加密处理,确保数据的安全性。
7.4 兼容性测试
浏览器兼容性测试:测试系统在不同浏览器(如 Chrome、Firefox、IE 等)上的兼容性,确保系统在各种浏览器上都能正常运行。
操作系统兼容性测试:测试系统在不同操作系统(如 Windows、Mac OS、Linux 等)上的兼容性,确保系统在各种操作系统上都能正常运行。
7.5 测试结果分析
功能测试结果分析:对功能测试的结果进行分析,总结系统的功能是否符合需求,是否存在缺陷或问题。
性能测试结果分析:对性能测试的结果进行分析,评估系统的性能是否满足要求,是否需要进行优化。
安全测试结果分析:对安全测试的结果进行分析,检查系统的安全性是否得到保障,是否存在安全漏洞。
兼容性测试结果分析:对兼容性测试的结果进行分析,确定系统是否在不同的浏览器和操作系统上都能正常运行。
第8章 总结
8.1 存在的不足
界面设计不够美观:系统的界面设计比较简单,不够美观,需要进一步优化。
功能不够完善:系统的功能还不够完善,例如缺少成绩管理等功能,需要进一步扩展。
性能有待提高:在高并发场景下,系统的响应时间可能会受到影响,需要进一步优化性能。