自己在课设上写的,基于springMVC的网上选课系统。
使用说明:
《网上选课系统》
随着在校人数的增加,选课是重点问题,拥有一个好的网上选课系统可以简便快速的对选课各种信息进行管理,节省了人力和时间,提高了对课程管理的效率。
分为三个用户
管理员、教师、学生
需求描述:通过已知的管理员账号登录,登录成功进入管理员界面,方可执行相应功能。
需求描述:添加一个新的教师信息,教师工号作为教师身份唯一标识,添加时会对输入框中教师工号是否存在进行判断并提示。
需求描述:可以选择教师并修改其信息,教师编号不可修改。
需求描述:删除某一条选中教师的所有信息。
需求描述:选择查询条件,可查询所有教师、通过教师编号查询教师信息,并以表格的形式显示出来。
需求描述:添加一个新的课程信息,课程编号作为该课程身份唯一标识,添加时会对输入框中课程编号是否存在进行判断并提示。其中一些属性通过下拉框方便选择。
需求描述:可对选中的课程进行修改,其中课程编号不可修改
需求描述:删除选定课程的所有信息。
需求描述:根据相应条件查询课程,所有课程、根据编号、课程类型、所属学院等进行查询。
10.添加学生信息
需求描述:添加一个新的学生信息,学号作为学生身份唯一标识,添加时会对输入框中学号是否存在进行判断并提示。其中学院、专业等信息通过下拉框方便选择。
11.修改学生信息
需求描述:修改选中学生的信息,其中学号不可修改。
12.删除学生信息
需求描述:删除选中学生的所有信息。
13.查询学生信息
需求描述:通过相应条件查询学生,例如查询所有信息,通过学号、学院、专业、班级等条件查询学生信息。
需求描述:可以查询自己的所有信息
需求描述:只能修改自己密码,其他信息都不可修改
需求描述:通过查询课程表,查看已有课程,并选择自己需要教学的课程。
需求描述:通过选择一门已有课程,对该课程进行安排包括上课班级名、上课时间、所在教师、学分学时、总人数等。
需求描述:修改自己已经安排的课程的信息。
需求描述:查询自己的已选教学课程的各种信息
需求描述:选定自己教学课程,查看该课程的学生学科情况,包括一些学生信息。
需求描述:选择自己教学的一门课程,并打印出该课程的学生信息。
需求描述:只能修改自己的密码,其他信息需联系管理员修改。
需求描述:选择一门已有课程,并进入确认,提示学习该课程是否已有教师安排。
需求描述:查询自己所选课程的信息。
需求描述:查询课程已选人数。
需求描述:退选自己已选课程。
本系统开发平台: JSP + MYSQL
本系统集成开发环境: Eclipse + Tomcat
本系统运行环境: Windows OS
界面首先为选择登录身份,选择后进入相应登录界面,登陆成功后的主界面由两块组成,一个为左栏,用于显示功能以及功能操作的,可以手动隐藏和显示;还有主界面,用于操作对应功能以及查看结果等。主界面内含一个div盒子,用于美观。使用户能够在简单、易用、单一、统一的可视化界面下,轻松、方便地访问到各种类型的数据。
1.管理员
①可以对学生信息通过诸多条件进行查询;
②可以对学生信息进行修改以及删除;
③添加一个新的学生信息
④可以对教师信息查询、修改、删除以及添加。
⑤可对课程进行修改、删除、查询、以及添加。
2.教师
①可以查询管理员添加的课程信息,并选择自己需要教学的课程。
②选择自己教学课程后对该课程进行安排,包括上课时间、上课地点、学分、学时、总人数等。
③可以对自己已选教学课程的课程安排进行修改、删除等操作。
④可以查询自己教学课程的学生选课信息。
⑤查看自己信息,并可以修改密码。
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) |
外键 |
课程编号 |
其中设计了表与表之间的关联属性以及一些约束,例如删除学生信息时,该学生在选课表中的相应信息也会被删除。
登录(以管理员为例)
管理员登录界面(以管理员为例),左侧栏可收缩
网上选课系统利用MVC设计模式,利用spring mvc框架,将其分为视图层、控制器层、模型层。视图层为jsp文件,分别存放在admin、teacher、student三个文件夹中,分别是管理员界面、教师界面、学生界面,而index和登录界面以及操作成功失败界面直接放在主目录;控制器层为servlet类,用来处理视图层发送的每个请求,存放在以域名翻转命名的包内:net.fuzui.servlet;模型层用来存放javabean类,分为实体bean和业务bean中,分别放在以域名翻转命名包net.fuzui.beans、net.fuzui.dao中,实体bean存放实体类,业务bean中存放数据库连接以及对数据库的操作,由servlet调用。
在网上选课系统中,用到基于注解的spring mvc框架,在视图层中的每一次请求都会发送到控制器层,由servlet类通过注解识别请求,处理请求,需要用到数据库时则调用DAO。先通过配置web.xml以及springmvc.xml来应用框架,由@RequestMapping 来处理请求映射,在处理url和表单提交时,会自动根据url或者表单中参数的名字和方法中同名形参进行匹配并赋值。
在添加学生、教师、课程信息时,通过jQuery运用ajax技术,如果添加的学号已存在,在输入框右侧会红字提示该学号已存在,不存在也会有提醒该学号可添加,教师工号、课程编号也如此。
在学生界面查询选课结果时,利用了数据库表与表之间级联,通过选课表、课程表、课程安排表、教师表四表级联的sql语句,查询出课程名、班级名称、上课时间、教室、学分学时以及代课老师信息,并将此信息存放在一个实体类中,方便调用。
在视图层的样式设计中,通过css设置背景色透明度渐变和背景图片透明度来实现整体视觉效果,在该系统中,表比较多,所以将表的样式也焕然一新。总界面分为左侧栏和显示栏,运用js,左侧栏通过点击相应图标可收缩隐藏。
运用了el表达式和jstl标记,是界面更加简约。
在代码编写过程中,通过system.out.println()来调错。
这是在大三时候的一次课程设计,而现在已经大四的我,会的也只有这么点东西,荒度了半年。
项目展示:http://studentInfo.fuzui.net/onlineSC
2019年5月20最近小服务器升级系统,环境重新部署中,暂时无法预览
2019年5月23日恢复正常,可预览,管理员账号admin密码admin
2019年6月10日,暂停预览,预计12号开放预览
2019年6月14日,恢复正常,可预览。(提示:请大家尽量不要批量删除大量数据,方便他人预览~)
2020年2月6日,修改浏览连接,可正常浏览,管理员账号admin密码admin,学生和教师账号自行登录到管理员端查看。
给出教师、学生、管理员账号密码来体现功能
提示:用完数据尽量改回来=-=
最后放上源码
这个小项目里还是有的bug的,不够完善,有问题留言,基本当天回复
程序小白,虚心求教。
项目目录:
2018年12月28日补充:
有博友回复源码有缺失,现将完整的eclipse项目源码发出来,直接导入eclipse即可。具体查看文件内帮助说明
链接:网上在线选课系统_eclipse完整项目源码
提取码:fi0i
12月18日亲测项目可正常运行。
2019年1月4日补充:
感谢博友发现问题,因为疏忽,导致可能导入eclipse项目无法启动成功,因为当初我的servlet-api.jar包是我直接导入我tomcat路径下的lib包里的,写的是我的路径,如图
右键项目build path —— configure
然后选中图内圈中的那个,remove,再去添加add JARs,在你的tomcat内找到你的servlet-api.jar.
也可以把上面删掉之后,复制tomcat里的servlet-api.jar,到lib文件夹,添加到项目里。
2019年2月24日补充:
我的github源码下载:https://github.com/fuzui/onlineSC
2019年3月15日更新:
github:https://github.com/fuzui/onlineSC
2019年5月8日更新:
百度网盘下载链接:网上选课系统源码
提取码:zkhv
2019年6月14日更新:
鉴于最近出现频繁的问题,今天稍微总结一下:
如果部署运行测试中出现问题可以找我~,留言会在12小时内回复(前提:所有版本保持一致,严禁中文路径···)
本系统已停止更新,4月15日在博客新发一篇基于SSM的学生信息管理系统(选课),在该系统的基础上完成,新增一些功能并修复已知bug。
如果部署运行测试中出现问题可以找我~,留言会在12小时内回复
时间问题,不帮调试