B/S基于springMVC的网上选课系统
简要:
去年花了一周时间自己在课设上写的,基于springMVC的网上选课系统。
使用说明
- windows系统
- java8环境
- tomcat9环境
- mysql5.5数据库, 用户名root,密码root
- eclipse需配置jre和tomcat。可由eclipse直接导入工程使用
1.设计选题
1.1 设计选题
《网上选课系统》
1.2 设计背景
随着在校人数的增加,选课是重点问题,拥有一个好的网上选课系统可以简便快速的对选课各种信息进行管理,节省了人力和时间,提高了对课程管理的效率。
2.需求分析
分为三种用户:管理员、学生、教师。
管理员:
1.登录功能
需求描述:通过已知的管理员账号登录,登录成功进入管理员界面,方可执行相应功能。
2.添加教师信息
需求描述:添加一个新的教师信息,教师工号作为教师身份唯一标识,添加时会对输入框中教师工号是否存在进行判断并提示。
3.修改教师信息
需求描述:可以选择教师并修改其信息,教师编号不可修改。
4.删除教师信息
需求描述:删除某一条选中教师的所有信息。
5.查询教师信息
需求描述:选择查询条件,可查询所有教师、通过教师编号查询教师信息,并以表格的形式显示出来。
6.添加课程信息
需求描述:添加一个新的课程信息,课程编号作为该课程身份唯一标识,添加时会对输入框中课程编号是否存在进行判断并提示。其中一些属性通过下拉框方便选择。
7.修改课程信息
需求描述:可对选中的课程进行修改,其中课程编号不可修改
8.删除课程信息
需求描述:删除选定课程的所有信息。
9.查询课程信息
需求描述:根据相应条件查询课程,所有课程、根据编号、课程类型、所属学院等进行查询。
10.添加学生信息
需求描述:添加一个新的学生信息,学号作为学生身份唯一标识,添加时会对输入框中学号是否存在进行判断并提示。其中学院、专业等信息通过下拉框方便选择。
11.修改学生信息
需求描述:修改选中学生的信息,其中学号不可修改。
12.删除学生信息
需求描述:删除选中学生的所有信息。
13.查询学生信息
需求描述:通过相应条件查询学生,例如查询所有信息,通过学号、学院、专业、班级等条件查询学生信息。
教师:
1.查询个人信息
需求描述:可以查询自己的所有信息
2.修改个人信息
需求描述:只能修改自己密码,其他信息都不可修改
3.选择课程
需求描述:通过查询课程表,查看已有课程,并选择自己需要教学的课程。
4.添加课程安排
需求描述:通过选择一门已有课程,对该课程进行安排包括上课班级名、上课时间、所在教师、学分学时、总人数等。
5.修改课程安排
需求描述:修改自己已经安排的课程的信息。
6.删除课程安排
需求描述:删除自己已经安排的课程的信息。
7.查询课程安排
需求描述:查询自己的已选教学课程的各种信息
8.查询选课信息
需求描述:选定自己教学课程,查看该课程的学生学科情况,包括一些学生信息。
9.打印选课信息
需求描述:选择自己教学的一门课程,并打印出该课程的学生信息。
学生:
1.修改个人信息
需求描述:只能修改自己的密码,其他信息需联系管理员修改。
2.选课
需求描述:选择一门已有课程,并进入确认,提示学习该课程是否已有教师安排。
3.查询课程安排
需求描述:查询自己所选课程的信息。
4.查询选课人数
需求描述:查询课程已选人数。
5.退选。
需求描述:退选自己已选课程。
3.系统的开发运行环境
- 本系统开发平台: JSP + MYSQL
- 本系统集成开发环境: Eclipse + Tomcat
- 本系统运行环境: Windows OS
4.程序功能模块图及数据流图
4.1 程序功能模块图
4.1 数据流图
5.总体设计
5.1 系统体系结构设计
界面首先为选择登录身份,选择后进入相应登录界面,登陆成功后的主界面由两块组成,一个为左栏,用于显示功能以及功能操作的,可以手动隐藏和显示;还有主界面,用于操作对应功能以及查看结果等。主界面内含一个div盒子,用于美观。使用户能够在简单、易用、单一、统一的可视化界面下,轻松、方便地访问到各种类型的数据。
5.2 系统功能说明
1.管理员
①可以对学生信息通过诸多条件进行查询;
②可以对学生信息进行修改以及删除;
③添加一个新的学生信息
④可以对教师信息查询、修改、删除以及添加。
⑤可对课程进行修改、删除、查询、以及添加。
2.教师
①可以查询管理员添加的课程信息,并选择自己需要教学的课程。
②选择自己教学课程后对该课程进行安排,包括上课时间、上课地点、学分、学时、总人数等。
③可以对自己已选教学课程的课程安排进行修改、删除等操作。
④可以查询自己教学课程的学生选课信息。
⑤查看自己信息,并可以修改密码。
3.学生
①可以查询全部管理员已添加的课程,并可以通过课程编号、课程名、课程所属专业、课程类型等条件查询。
②可以选择查询出来的课程进行选课,选择后进入确认界面,显示课程名,提示是否已有教师安排此课,若有则显示教师姓名,并有确认和取消两个按钮,确认则选课成功,取消则返回上一界面。
③查看选课结果,用表格形式显示出课程名、上课教室、上课地点、学分、学时以及代课教师。没有教师安排的课程无法查出,只能在退选中查看单独的课程名。
④退选已选课程,先查询出自己已选的所有课程,通过课程名选择退选。
⑤查看个人所有信息,只可以修改密码。
5.3 数据库设计
总共六个表:学生表、教师表、管理员表、课程表、课程安排表、选课表。
管理员表admin
列名 | 类型 | 约束 | 备注 |
---|---|---|---|
Aname | Varchar(12) | 主键 | 账号 |
Apassword | 密码 |
学生表Student
列名 | 类型 | 约束 | 备注 |
---|---|---|---|
Sid | Char(12) | 非空、主键 | 学号 |
Sname | Varchar(8) | 非空 | 姓名 |
Sidcard | Char(18) | 非空 | 身份证 |
Ssex | Char(2) | 男女 | 性别 |
Spassword | Varchar(12) | 非空 | 密码 |
Sage | Char(2) | 年龄 | |
Classr | Varchar(15) | 班级 | |
profession | Varchar(15) | 专业 | |
College | Varchar(15) | 学院 |
教师表Teacher
列名 | 类型 | 约束 | 备注 |
---|---|---|---|
Tid | Char(4) | 主键 | 工号 |
Tname | Varchar(8) | 姓名 | |
Tpassword | Varchar(12) | 密码 | |
Tsex | Char(2) | 男女 | 性别 |
Introduction | Varchar(100) | 简介 |
课程表course
列名 | 类型 | 约束 | 备注 |
---|---|---|---|
Cid | Char(4) | 主键 | 课程号 |
Cname | varChar(15) | 课程名 | |
Cintroduction | Varchar(100) | 简介 | |
Type | Varchar(15) | 类型(选修,必修) | |
Belongcoll | Varchar(15) | 所属学院 | |
Belongpro | Varchar(15) | 所属专业 |
课程安排
列名 | 类型 | 约束 | 备注 |
---|---|---|---|
Courseclass | Varchar(12) | 主键 | 开课班级 |
Coursetime | Varchar(12) | 上课时间 | |
Courseweek | Varchar(12) | 上课周 | |
Cid | Char(4) | 外键 | 课程号 |
Tid | Char(4) | 外键 | 教师编号 |
Classroom | Varchar(6) | 上课教室 | |
credits | Int(11) | 学分 | |
period | Int(11) | 学时 | |
Totalnum | Int(11) | 总人数 |
选课表sc
列名 | 类型 | 约束 | 备注 |
---|---|---|---|
Id | varChar(4) | 自动增长、主键 | 用于传值 |
Sid | Char(12) | 外键 | 学生学号 |
Cid | Char(4) | 外键 | 课程编号 |
5.4 界面设计
登录(以管理员为例)
管理员登录界面,左侧栏可收缩
6.实现
6.1 程序结构
网上选课系统利用MVC设计模式,利用spring mvc框架,将其分为视图层、控制器层、模型层。视图层为jsp文件,分别存放在admin、teacher、student三个文件夹中,分别是管理员界面、教师界面、学生界面,而index和登录界面以及操作成功失败界面直接放在主目录;控制器层为servlet类,用来处理视图层发送的每个请求,存放在以域名翻转命名的包内:net.fuzui.servlet;模型层用来存放javabean类,分为实体bean和业务bean中,分别放在以域名翻转命名包net.fuzui.beans、net.fuzui.dao中,实体bean存放实体类,业务bean中存放数据库连接以及对数据库的操作,由servlet调用。
6.2 应用技术及实现
在网上选课系统中,用到基于注解的spring mvc框架,在视图层中的每一次请求都会发送到控制器层,由servlet类通过注解识别请求,处理请求,需要用到数据库时则调用DAO。先通过配置web.xml以及springmvc.xml来应用框架,由@RequestMapping 来处理请求映射,在处理url和表单提交时,会自动根据url或者表单中参数的名字和方法中同名形参进行匹配并赋值。
在添加学生、教师、课程信息时,通过jQuery运用ajax技术,如果添加的学号已存在,在输入框右侧会红字提示该学号已存在,不存在也会有提醒该学号可添加,教师工号、课程编号也如此。
在学生界面查询选课结果时,利用了数据库表与表之间级联,通过选课表、课程表、课程安排表、教师表四表级联的sql语句,查询出课程名、班级名称、上课时间、教室、学分学时以及代课老师信息,并将此信息存放在一个实体类中,方便调用。
在视图层的样式设计中,通过css设置背景色透明度渐变和背景图片透明度来实现整体视觉效果,在该系统中,表比较多,所以将表的样式也焕然一新。总界面分为左侧栏和显示栏,运用js,左侧栏通过点击相应图标可收缩隐藏。运用了el表达式和jstl标记,是界面更加简约。
6.展示和下载
项目展示:http://studentInfo.fuzui.net/onlineSC
管理员用户名admin,密码admin,以供测试,学生和教师账号密码可通过管理员登录查看。
这个小项目里还是有不少bug的,不够完善。
github源码:https://github.com/fuzui/onlineSC
最后附上项目目录:
2019年5月8日:
更新百度网盘下载链接:网上选课系统源码
提取码:zkhv
当然也可以:扫一扫关注公众号,回复3获取直接下载链接(最新)
如果部署运行测试中出现问题可以找我~,留言会在12小时内回复