自己在课设上写的,基于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,学生和教师账号自行登录到管理员端查看。

给出教师、学生、管理员账号密码来体现功能

提示:用完数据尽量改回来=-=

最后放上源码

  • 1积分下载:https://download.csdn.net/download/qq_39329616/10833179
  • 百度网盘免费下载:点我下载     提取码:oyey

这个小项目里还是有的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小时内回复

时间问题,不帮调试

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

  1. 网上选课系统java工程_基于jsp的网上选课系统-JavaEE实现网上选课系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上选课系统, 该项目可用各类java课程设计大作业中, 网上选课系统的系统架构分为前后台两部分, 最终实现在线上 ...

  2. 基于JSP学生网上选课系统

    技术:Java.JSP等 摘要: 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生选课系统作为一种现代化的教学技术,以 ...

  3. php选课系统,GitHub - kidaze/CourseSelectionSystem: 基于PHP的简易网上选课系统,实现管理员、老师、学生三种身份不同需求的php简易网上选课系统。...

    CourseSelectionSystem 基于PHP的网上选课系统 针对选课系统,我主要使用了phpmyadmin + Dreamweaver完成了大部分工作 这是php老师发布的要求: " ...

  4. asp.net+sqlserver+C#网上选课系统

    系统中有3个用户分别为系统管理员,教师用户和学生用户. 管理员对系统中的所有信息进行管理包括账号管理,学生信息管理,教师信息管理,课程信息管理,学院信息管理,专业信息管理,公告信息管理等功能模块. 学 ...

  5. mysql -ss -e_课内资源 - 基于ssm框架和mysql的网上选课系统

    一.需求分析 1.1 业务需求 随着社会的发展,学生的人数和课程种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,为此我们开发了学生选课管理系统.本人结合学生选课管理的实际需要,完成了对学生 ...

  6. 基于asp.net的网上选课系统的设计与实现

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 网上选课系统的设计与实现 摘  要 随着教育改革的力度的加大,能够使用信息化手段来处理日常工作显 ...

  7. 基于JSP技术的学生网上选课系统的设计与实现

    摘   要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生选课系统作为一种现代化的教学技术,已越来越受到人们的重视, ...

  8. asp毕业设计——基于asp+sqlserver的网上选课系统设计与实现(毕业论文+程序源码)——网上选课系统

    基于asp+sqlserver的网上选课系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的网上选课系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  9. C#毕业设计——基于C#+asp.net+SQL Server的动态口令认证网上选课系统设计与实现(毕业论文+程序源码)——网上选课系统

    基于C#+asp.net+SQL Server的动态口令认证网上选课系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+SQL Server的动态口令认证网上选课系统 ...

最新文章

  1. pycharm中显示额外的“figure”窗口
  2. oracle执行计划走索引类型,SQL执行计划问题:where条件是主键(NUMBER类型字段)LIKE  :VAR,为什么执行计划不走索引?...
  3. 阿里巴巴集团CTO王坚:互联网、数据和计算
  4. arp的***和防御
  5. Codeforces Round #736 (Div. 2)(B-C)
  6. 若依如何配置允许跨域访问?
  7. 硬盘格式化了的数据找到办法
  8. java 自动化运维工具_自动化运维工具 - 巴伐利亚的风的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. Lodop+html+pdf.js 实现web客户端连接的本地打印机直接打印,无需预览
  10. Oracle备份的几种方式
  11. NPN型三极管基础知识解析
  12. 自动驾驶上的三种感知传感器(激光、毫米波雷达和摄像头)优缺点比较
  13. Linux的sh脚本编写基础知识
  14. python chr黑方格_Python中的chr()
  15. C++语言风格流变史
  16. OpenCV的配置过程和可能遇到的问题
  17. 异常(Exception)
  18. 保留三位有效数字,四舍六入五成双
  19. 开店经验|如何开一家精品咖啡馆
  20. 同步,异步,全双工,半双工区别!

热门文章

  1. 动态复权(真实价格)模式原理详解!
  2. 双十一来临,电商舆情风险如何处理?
  3. dell主板恢复出厂设置_如何进入戴尔笔记本bios及恢复bios出厂设置
  4. centos镜像下载网址
  5. JavaScript面试精讲(七)——谈谈深拷贝和浅拷贝
  6. leetcode_59. 螺旋矩阵 II
  7. Python字符串与bytes的转换
  8. 计算机专业答辩需要演示系统么,计算机专业如何顺利通过论文答辩
  9. css如何绘制内凹的弧线
  10. 用Python做的大航海时代ol划船按键器