JavaWeb项目练习(学生选课管理系统)一
打算做一个选课管理系统,作为期末的复习。
上需求
2.1 页面要求
(1)系统可以通过浏览器直接访问;(1分)
(2)各个功能页面整体风格统一;(2分)
(3)首页为用户登录页面,管理员、教师、学生三种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块;(3分)

图1 学生选课系统功能结构图
(5)学生功能页:共包括查看个人信息、修改个人基本信息、修改个人密码、查询课程信息、自助选课、查询个人课表六项功能模块。
(6)教师功能页:包括查看教师个人信息、修改个人基本信息、修改个人密码、修改个人所教授课程部分信息,查询个人课表五项功能模块;
(7)管理员功能页:新添学生基本信息、修改学生基本信息、删除学生基本信息、新添教师基本信息,修改教师基本信息、删除教师基本信息、新添课程基本信息、修改教师基本信息、删除基本信息,密码重置十项功能模块。
2.2 功能要求
(1)新添学生基本信息:新添一名新学生基本个人信息,学生基本信息包括;学号(数据库中学号保持唯一、由系统自动生成、生成规则:学号由八位数字组成、开头以“2019XXXX”XXXX为四位依次递增的数字序号例如:“20190001、20190002……”)、姓名、性别(限定为“男”或“女”两个选项)、年龄、专业(要求限定在“计算机科学与技术”、“软件工程”、“网络工程”、“数字媒体技术”四个选项)、班级六项基本信息。(5分)
(2)修改学生基本信息(等同于学生功能页中修改个人信息):学号不允许修改,姓名、性别、年龄、专业、班级可以按照要求进行修改,不符合录入格式的,提交时不允许修改,并提示错误信息类型,返回修改界面。(2分)
(3)删除学生基本信息:管理员可以从系统中删除学生基本信息。(1分)
(4)新添教师基本信息:新增一名教师基本信息,教师基本信息包括:教师工号(唯一,六位数字组成,前两位表示学院代码“01表示信息、02表示土木、03表示机械、04、表示电气、05表示交通”,后四位为依次递增的数字序号,提交时应验证工号的正确性,如有误,则提示错误,反馈界面,不允许提交保存)、姓名、职称(职称限定在“助教”、“讲师”、“副教授”、“教授”四个选项)、所属学院(取值限定在“信息、土木、机械、电气、交通”五个选项,并与教师工号前两位形成校验关系);(5分)
(5)修改教师基本信息(等同于教师功能页中修改个人信息):可以修改教师工号,姓名、职称、所属学院,教师工号前两位与所属学院关联,修改任何一项,必须关联修改另外一项,修改提交时须验证是否符合录入格式的,不符合不允许修改,提示错误信息类型,返回修改界面。(2分)
(6)删除教师基本信息:管理员可以从系统中删除教师基本信息,但是如果教师已经承担相应课程,系统不允许删除。(1分)
(7)新添课程基本信息:管理员可以增加一门课程基本信息,课程基本信息包括:课程编号(唯一,六位数字序号,系统自动生成依次递增),课程名称、开课时间(取值限定在“星期一、星期二、星期三、星期四、星期五”),开课节次(取值限定在“1-2节、3-4节、5-6节、7-8节、9-10节”)所属学院(取值限定在“信息、土木、机械、电气、交通”五个选项),任课教师工号,任课教师名称,选课限制人数。(5分)
(8)修改课程基本信息:可以修改课程开课时间、开课节次、所属学院(取值限定在“信息、土木、机械、电气、交通”五个选项),任课教师工号,任课教师名称,选课限制人数六项基本信息,课程编号、课程名称不允许修改。(2分)
(9)删除课程基本信息:管理员可以删除课程基本信息,但如果该课程有学生已经选课,提示错误信息“该课程已经被选,不允许删除”,不允许删除该课程基本信息。(1分)
(10) 自助选课管理:学生登录后可以浏览相关的课程信息列表,并查看课程的详细信息,点击“选课”按钮操作,系统判断该课程是否已超过选课人数,如果超过选课人数限制提示“该课程已经超过选课人数限制,选课失败”,回到选课界面,如果成功,提示“选课成功”。(5分)
(11)查询课表:教师或学生登录系统后均可查询个人课表,学生按照选课结果显示开课时间、开课节次、课程名称,教师按照承担课程显示开课时间、开课节次、课程名称,选课人数;(3分)
(12)修改个人所教授课程部分信息:教师登录后,可以修改个人承担课程的选课人数一项基本信息,其余信息不允许修改;(2分)
(13)个人密码修改:教师或学生用户登录后,可以输入旧密码、新密码、新密码确认修改个人密码,需要判断旧密码是否正确,新密码和新密码确认是否一致;(2分)
(14)重置密码:管理员可以修改教师或学生的个人密码,先按照教师工号或学生学号查询,显示出基本信息后,点击密码重置,将教师或个人密码统一修改为“123456”。(2分)
(15)数据库评分标准:按照题目要求创建教师基本信息表、学生基本信息表、课程基本信息表,选课结果表(4分),实现数据库连接正常(2分)。
JavaWeb项目练习(学生选课管理系统)一的更多相关文章
- Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置
Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...
- Django 小实例S1 简易学生选课管理系统 1 项目流程梳理与数据库设计
Django 小实例S1 简易学生选课管理系统 第1章--项目流程梳理与数据库设计 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 项目流程梳理 ...
- Django 小实例S1 简易学生选课管理系统 12 CSS样式完善
Django 小实例S1 简易学生选课管理系统 第12节--CSS样式完善 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块的逻辑代码到这里 ...
- Django 小实例S1 简易学生选课管理系统 10 老师课程业务实现
Django 小实例S1 简易学生选课管理系统 第10节--老师课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,老师将要使 ...
- Django 小实例S1 简易学生选课管理系统 8 CSS样式优化
Django 小实例S1 简易学生选课管理系统 第8节--CSS样式优化 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 前面的几节下来,用户模块基 ...
- Django 小实例S1 简易学生选课管理系统 7 修改个人信息
Django 小实例S1 简易学生选课管理系统 第7节--修改个人信息 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 用户模块除了注册登录之外,还 ...
- Django 小实例S1 简易学生选课管理系统 3 创建用户模型(model)
Django 小实例S1 简易学生选课管理系统 第3节--创建用户模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新 ...
- Django 小实例S1 简易学生选课管理系统 4 实现登录页面
Django 小实例S1 简易学生选课管理系统 第4节--实现登录页面 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新的额外知识点: ...
- Django 小实例S1 简易学生选课管理系统 5 实现注册功能
Django 小实例S1 简易学生选课管理系统 第5节--实现注册功能 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新的额外知识点: ...
- Django 小实例S1 简易学生选课管理系统 0 初步介绍与演示
Django 小实例S1 简易学生选课管理系统 第0章--初步介绍与演示 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 初步介绍 先介绍下这个 ...
随机推荐
- 来会会babel这个重要且神奇的工具
babel 在前端工程化开发中发挥着至关重要的作用,它能将较高级的语法转成浏览器可识别的代码,无论中 es6 中 const .promise 还是 React.TypeScript. 以下babel ...
- SpringBoot3进阶用法
标签:切面.调度.邮件.监控: 一.简介 在上篇<SpringBoot3基础>中已经完成入门案例的开发和测试,在这篇内容中再来看看进阶功能的用法: 主要涉及如下几个功能点: 调度任务:在应 ...
- 记一次MySql灾难性事件
2023年8月8日,本来系一个风和日丽的夏天中的平凡一天,但这种平凡,注定住佢一定唔平凡,唉...现在回忆起都阵阵咁痛!!! 重要嘅事情讲三次,唔好手贱,唔好手贱,唔好手贱 事日,如常上班,本人系一名 ...
- shiro框架基本概念介绍
什么是Shiro: Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证.授权.加密和会话管理 Shiro的核心功能包括: 身份验证(Authentication):验证用户的身份,确保用户 ...
- LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<LeetCode952三部曲& ...
- Graphviz入门
Graphviz可以用于状态机图的绘制 要绘制一张状态图,我们需要两个图形元素 结点,边 结点和边都有自己的属性 结点可以是圆.矩形.填充 边有粗细
- LeetCode279:完全平方数,动态规划解法超过46%,作弊解法却超过97%
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇概览 这是道高频面试题,值得一看 首先, ...
- Pycharm远程连接到服务器运行错误can‘t open file ‘tmp
Pycharm远程连接到服务器运行错误can't open file '/tmp/.../a.py': [Errno 2] No such file or directory 问题描述 win11 P ...
- Vitess全局唯一ID生成的实现方案
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键. 但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足 ...
- 如何编写难以维护的 React 代码?耦合通用组件与业务逻辑
在众多项目中,React代码的维护经常变得棘手.其中一个常见问题是:将业务逻辑直接嵌入通用组件中,导致通用组件与业务逻辑紧密耦合,使其失去"通用性".这种做法使通用组件过于依赖具体 ...