基于Jsp和MySQL实现的简单选课系统
一、需求说明
-
网站的使用者 :某学校的学生,老师和管理员使用
-
网站的主要目的 : 用于学生选课,以及老师和学生之间的交流
-
网站的功能 (根据不同的使用者设定的权限):如下表所示
使用者 | 权限 |
---|---|
学生 | 选择课程;退出课程(在有效的退出时间内);修改个人信息(除学号);查看个人成绩 |
老师 | 创建,查看和修改课程信息;删除课程;从课程里增加和删除学生;给选课的学生成绩 |
管理员 | 创建用户(学生,老师,管理员);查看,修改用户个人信息;删除用户;删除留言簿的信息 |
学生,老师,管理员 | 改变自己的登陆密码,查看个人信息;进入留言簿 |
- 网站创建内容 :
- 设计,创建关系数据库
- 根据管理员的权限完成网站功能
- 根据老师的权限完成网站功能
- 根据学生的权限完成网站功能
- 设计网页
- 整合各部分功能成一完整网站
二、系统实现说明
2.1 数据库说明
数据库表的ER图
数据库名是:JoyStudy。
userTB 是存放用户信息的
-
uID :该表的主键。是一个自动增加的int 型数据
-
userName :是用户名。就是登录,标示用户一个标示(其实这样说,别不准确,里面大多数是靠主键 uID 来唯一标示的)
-
password :是存储用户的密码(不过没有经过处理的原始数据,很不符号实际应用)
-
realName : 是存储用户的实际姓名。这个只是我模仿其他的一个属性
-
Email、sex :就是存储的用户Email 和 sex
-
属性: type 是代表用户的类型
- 1 代表管理员
- 2 代表老师
- 3 代表学生
courseTB 存放课程信息
-
csID 是主键, 是一个自动增加的int 型数据
-
csTeacher 是引用userTB主键uID的外键
messageTB 存放留言信息
-
mgID 是主键, 是一个自动增加的int 型数据
-
userID 是引用userTB主键uID的外键
-
courseID 是引用courseTB主键csID的外键
-
mgTitle、mgContent 分别存放留言的标题和内容
注:这里需要说明一下,这里的逻辑:userID 是存放的留言者的uID,courseID是存放的本条留言所针对的课程。就是说一条留言针对一个课程!或者说,只能针对某科课程发布留言!
enrollmentTB 是存放选课信息的表
-
enID 是主键, 是一个自动增加的int 型数据
-
enUserID 是引用userTB主键uID的外键。即选课的学生
-
enCourseID 是引用至courseTB主键csID的外键
-
enGrade 存放成绩
注:JoyStudy文件夹下面的“joystudy.mer”是从MyEclipse里面导出来的数据库ER视图。但是在Eclipse中不能正常显示。
2.2 网页文件说明
-
网站的唯一入口 :index.jsp
-
所有用户的密码是 :123
-
三类典型用户的用户名分别是 :
- 管理员 :adai
- 老师 : teacher
- 学生 :student
网页文件的命名都是“见文知意”。另外,文件我是按“权限”分类的,(公共的就放到顶层文件夹下。管理员用到的就放到“admin”文件夹下。依次类推。)就不过多解释了!
2.3 查询使用的SQL语句
这个作业,我做了四天。前两天是边学边做,就是把自己的理论实践一下!后两天,有前两天的感触和体会,所以实现了模型、视图、控制器的分离,感觉做的快多了!除了编程思路的提升之外,并没有学到什么东西!
但是感觉这几个SQL查询语句很经典!可以说是后两天工作的精华,所以也贴出来“显摆”一下。(我仔细排了一下序列,个人认为前三个做经典!)
查询没有选过的课程。选过之后的就不在这里显示了!(这个应该是最耗脑筋的一个查询语句了!)
sql
Select csName, realName, csID From courseTB, userTB Where csTeacher=uID And csID Not In (Select enCourseID From enrollmentTB Where enUserID=? )
查询自己选课的信息(所选课程,以及本课程相关的信息)(这个应该是最麻烦的SQL查询语句!我曾经在工具里测试了很多次才成功!)
sql
Select csName, teachTB.realName As tRealName, csID, enID From userTB usTB, userTB teachTB, courseTB, enrollmentTB Where usTB.uID=enUserID And encourseID=csID And csTeacher=teachTB.uID And usTB.uID=?
根据老师uID的查询选这个老师课程的学生信息(个人感觉这个也不错,用到了嵌套查询。)
sql
Select userName, realName, csName, enGrade, enID From enrollmentTB, userTB, courseTB Where enCourseID=csID And enUserID=uID And csID in (Select csID From courseTB Where csTeacher=?)
查询学生课程成绩
sql
Select realName, csName, enGrade, enID From enrollmentTB, userTB, courseTB Where enCourseID=csID And enUserID=uID And enUserID=?
查询某老师所讲授的课程
sql
select * from coursetb where csTeacher=?
查询所有信息
sql
Select csName, userName, mgTitle, mgContent, mgID From userTB, courseTB, messageTB Where uID=userID And csID=courseID
获取所有留言
sql
Select csName, userName, mgTitle, mgContent, mgID From userTB, courseTB, messageTB Where uID=userID And csID=courseID
获取关于某个课程的留言
sql
Select csName, realName, mgTitle, mgContent From userTB, courseTB, messageTB Where csID=courseID And userID=uID And csID=?
三、程序截图
3.1 数据库
3.2 公共界面
修改个人信息
针对课程添加留言
查看课程留言
3.3 学生界面
去选课
查看成绩
3.4 老师界面
创建课程
老师本人讲授课程
打分
3.5 管理员界面
用户信息
所有课程信息
所有留言信息
参考文献
- 基于WEB的网络教学系统的设计与实现(东北大学·周海斌)
- 基于web的高职院校学生综合管理系统设计与开发(电子科技大学·杨轩)
- 基于SSH架构的高校选课系统的设计与实现(黑龙江大学·于虹博)
- 基于J2EE的高校学生选课管理系统的设计与实现(电子科技大学·刘雯)
- 基于Web的高校选课系统的设计与实现(电子科技大学·谢慧萍)
- 基于J2EE与组件技术的WEB应用研究(哈尔滨理工大学·杭瑛)
- 基于JSP技术动态教学管理系统设计与实现(电子科技大学·董豪)
- 基于Internet的学生选课信息管理系统的设计与实现(电子科技大学·李智)
- 基于J2EE的网上选课系统的研究与实现(华东师范大学·罗海勇)
- 基于J2EE的高校学生选课管理系统的设计与实现(电子科技大学·刘雯)
- 基于SSH架构的高校选课系统的设计与实现(黑龙江大学·于虹博)
- 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
- 高校网上选课系统的设计与实现(河北科技大学·马乾乾)
- 少年宫课外学习选课系统软件的设计与实现(电子科技大学·黄涛)
- 基于B/S模式的高职院校选课系统的设计与实现(电子科技大学·左炳才)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计工坊 ,原文地址:https://m.bishedaima.com/yuanma/35405.html