B/S基于springMVC的网上选课系统(功能齐全javaweb)

自己在课设上写的,基于springMVC的网上选课系统。

使用说明:

  1. windows系统
  2. java环境和tomcat环境
  3. mysql数据库   用户名root  密码root
  4. eclipse需配置jre和tomcat。可由eclipse直接导入工程使用
  1. 设计题目

1.1设计选题

《网上选课系统》

1.2设计的目的

 

1.3的设计背景

随着在校人数的增加,选课是重点问题,拥有一个好的网上选课系统可以简便快速的对选课各种信息进行管理,节省了人力和时间,提高了对课程管理的效率。

  1.  需求分析
    1. 功能需求

分为三个用户

管理员、教师、学生

 

  • 管理员
  1. 登录功能

需求描述:通过已知的管理员账号登录,登录成功进入管理员界面,方可执行相应功能。

 

  1. 添加教师信息

需求描述:添加一个新的教师信息,教师工号作为教师身份唯一标识,添加时会对输入框中教师工号是否存在进行判断并提示。

  1. 修改教师信息

需求描述:可以选择教师并修改其信息,教师编号不可修改。

  1. 删除教师信息

需求描述:删除某一条选中教师的所有信息。

  1. 查询教师信息

需求描述:选择查询条件,可查询所有教师、通过教师编号查询教师信息,并以表格的形式显示出来。

  1. 添加课程信息

需求描述:添加一个新的课程信息,课程编号作为该课程身份唯一标识,添加时会对输入框中课程编号是否存在进行判断并提示。其中一些属性通过下拉框方便选择。

 

  1. 修改课程信息

需求描述:可对选中的课程进行修改,其中课程编号不可修改

  1. 删除课程信息

需求描述:删除选定课程的所有信息。

  1. 查询课程信息

需求描述:根据相应条件查询课程,所有课程、根据编号、课程类型、所属学院等进行查询。

10.添加学生信息

需求描述:添加一个新的学生信息,学号作为学生身份唯一标识,添加时会对输入框中学号是否存在进行判断并提示。其中学院、专业等信息通过下拉框方便选择。

11.修改学生信息

需求描述:修改选中学生的信息,其中学号不可修改。

12.删除学生信息

       需求描述:删除选中学生的所有信息。

13.查询学生信息

需求描述:通过相应条件查询学生,例如查询所有信息,通过学号、学院、专业、班级等条件查询学生信息。

 

  • 教师
  1. 查询个人信息

需求描述:可以查询自己的所有信息

  1. 修改个人信息

需求描述:只能修改自己密码,其他信息都不可修改

  1. 选择课程

需求描述:通过查询课程表,查看已有课程,并选择自己需要教学的课程。

  1. 添加课程安排

需求描述:通过选择一门已有课程,对该课程进行安排包括上课班级名、上课时间、所在教师、学分学时、总人数等。

  1. 修改课程安排

需求描述:修改自己已经安排的课程的信息。

  1. 删除课程安排
  2. 查询课程安排

需求描述:查询自己的已选教学课程的各种信息

  1. 查询选课信息

需求描述:选定自己教学课程,查看该课程的学生学科情况,包括一些学生信息。

  1. 打印选课信息

需求描述:选择自己教学的一门课程,并打印出该课程的学生信息。

 

  • 学生
  1. 修改个人信息

需求描述:只能修改自己的密码,其他信息需联系管理员修改。

  1. 选课

需求描述:选择一门已有课程,并进入确认,提示学习该课程是否已有教师安排。

  1. 查询课程安排

需求描述:查询自己所选课程的信息。

  1. 查询选课人数

需求描述:查询课程已选人数。

  1. 退选。

需求描述:退选自己已选课程。

2.2 系统的开发运行环境

本系统开发平台: JSP + MYSQL

本系统集成开发环境: Eclipse + Tomcat

本系统运行环境: Windows OS

  1. 程序功能模块图及数据流图
    1. 程序功能模块图

3.2 数据流图

 

 

  1. 总体设计

4.1 系统体系结构设计

界面首先为选择登录身份,选择后进入相应登录界面,登陆成功后的主界面由两块组成,一个为左栏,用于显示功能以及功能操作的,可以手动隐藏和显示;还有主界面,用于操作对应功能以及查看结果等。主界面内含一个div盒子,用于美观。使用户能够在简单、易用、单一、统一的可视化界面下,轻松、方便地访问到各种类型的数据。

4.2 系统功能说明

1.管理员

①可以对学生信息通过诸多条件进行查询;

②可以对学生信息进行修改以及删除;

③添加一个新的学生信息

④可以对教师信息查询、修改、删除以及添加。

⑤可对课程进行修改、删除、查询、以及添加。

2.教师

①可以查询管理员添加的课程信息,并选择自己需要教学的课程。

②选择自己教学课程后对该课程进行安排,包括上课时间、上课地点、学分、学时、总人数等。

③可以对自己已选教学课程的课程安排进行修改、删除等操作。

④可以查询自己教学课程的学生选课信息。

⑤查看自己信息,并可以修改密码。

3.学生

①可以查询全部管理员已添加的课程,并可以通过课程编号、课程名、课程所属专业、课程类型等条件查询。

②可以选择查询出来的课程进行选课,选择后进入确认界面,显示课程名,提示是否已有教师安排此课,若有则显示教师姓名,并有确认和取消两个按钮,确认则选课成功,取消则返回上一界面。

③查看选课结果,用表格形式显示出课程名、上课教室、上课地点、学分、学时以及代课教师。没有教师安排的课程无法查出,只能在退选中查看单独的课程名。

④退选已选课程,先查询出自己已选的所有课程,通过课程名选择退选。

⑤查看个人所有信息,只可以修改密码。

 

 

 

4.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)

外键

课程编号

 

其中设计了表与表之间的关联属性以及一些约束,例如删除学生信息时,该学生在选课表中的相应信息也会被删除。

 

4.4 界面设计

登录(以管理员为例)

管理员登录界面(以管理员为例),左侧栏可收缩

 

  1. 技术难点及实现
    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调用。

 

    1. 应用技术及实现

在网上选课系统中,用到基于注解的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日更新:

鉴于最近出现频繁的问题,今天稍微总结一下:

  • 版本问题(极为重要)
  1. JDK必须与我版本一直,JDK1.8及以上。
  2. TOMCAT必须在8及以上,本系统是tomcat 9.0,建议大家首先更换一下java build的servlet包为自己tomcat下lib中的servlet.jar(不管是8还是9都建议更换一下,本文中有更换说明,自行找一下)。
  3. MySQL。本系统源码为MySQL5.6,如果你用的5.5-5.7,不必改动。如果你想用MySQL8.0,请自行更换java build的driver驱动包为当前MySQL相对应的。mysql8.0可能出现时区或者ssl异常导致无法连接数据库,自行在url内添加就可以,详情专栏也有。
  4. 提示:我的jar全部放在web-inf下lib文件夹,更换jar包可先删除lib文件夹下,然后右键整个项目,properties——Java Build Path——Libraries:展开找原有的jar(servlet.jar或MySQL驱动jar),如果有,选中,remove,如果没有(在lib文件夹下已删除),然后add External JARs,选择自己的jar(本地tomcat—lib—servlet.jar或MySQL版本对应jar),最后apply。
  • 其他
  1. MySQL。mysql数据库的账号密码本系统为root和root,你可以根据自己的mysql账号密码做修改,在dbget.java中修改。必须要先创建一个数据库selc(当然,名字也可以取自己喜欢的,在dbget.java中修改url中的selc),最后一定要导入我的sql文件,请不要手写...
  2. 开发工具。强烈介意为eclipse4.8及以上,因为本系统便在eclipse中开发,如果你在myeclipse或idea中运行此项目,出错是必不可少的。(可以百度如果eclipse转myeclipse或者idea,不推荐
  3. src路径问题。我的java类并没有放在他默认的src中,而是在web-inf下src中。
  4. 待续...


如果部署运行测试中出现问题可以找我~,留言会在12小时内回复(前提:所有版本保持一致,严禁中文路径···)

 

 

本系统已停止更新,4月15日在博客新发一篇基于SSM的学生信息管理系统(选课),在该系统的基础上完成,新增一些功能并修复已知bug。

如果部署运行测试中出现问题可以找我~,留言会在12小时内回复

时间问题,不帮调试

 

 

 

  • 48
    点赞
  • 247
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 130
    评论
评论 130
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客时代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值