基于Java( jsp+servlet+javabean)+SQL sever 2017实现(Web)高校选课管理系统【100010058】

news2024/11/24 5:56:15

一、需求分析

  • 开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求,需要借助计算机来进行现代化信息管理,从而提高管理的准确性与高效性。
  • 可行性: 传统人工管理成绩存在诸多弊病,比如准确性低、效率低等。计算机具有存储快、查找便利、准确性高的特点,能非常好的解决人工管理的弊病。
  • 应用环境:
    • Web服务器:tomcat8.5;
    • 编程工具Eclipse Java 2019-09;
    • 数据库:SQL sever 2017;
    • 技术路线: jsp+servlet+javabean;

1.1系统功能需求

系统功能框架介绍,处理模块描述。

  • 管理员:
  1. 查询教师名单;
  2. 添加教师信息;
  3. 修改教师信息;
  4. 删除教师信息;
  5. 查询学生名单;
  6. 添加学生信息;
  7. 修改学生信息;
  8. 删除学生信息;
  9. 查询课程信息;
  10. 添加课程信息;
  11. 修改课程信息;
  12. 删除课程信息;
  13. 修改登录密码;
  • 教师:
  1. 查看个人信息;
  2. 查看任课信息;
  3. 按照课程表信息开设课程;
  4. 取消个人已开课的课程;
  5. 按行政班级查看学生均绩及排名;
  6. 按任课课程查询学生单门成绩及排名;
  7. 按学年查询个人教授课程的平均成绩;
  8. 录入学生成绩, 自动更新该学生已修总学分;
  9. 修改登录密码;
  • 学生:
  1. 查看个人信息;
  2. 查看本人课程;
  3. 选课与退选;
  4. 按学年查询考试成绩;
  5. 修改登录密码;

图1.1.1 系统功能需求

1.2 其他性能需求

  1. 分管理员、教师、学生不同身份登录,并给予不同的权限,提高系统安全性;
  2. 使用前端验证保证用户的输入正确。
  3. 创建触发器及存储过程,保证完整性。
  4. 充分考虑系统报错情况,尽量防止系统崩溃。

二、概念结构设计

2.1实体关系分析

  1. 开设班级,每个班级包含若干学生;
  2. 课程由教师开设;
  3. 同一门课可能有多个教师开课,一个教师在一学期可能开多门课程;
  4. 需要考虑不同学年,并以学年制管理学籍;
  5. 不考虑按照班级直接开课的情况,即所有课程均由学生自由选择;
  6. 一个学生只能选择某位老师的开的某个课程,即学生不能同时选择同一门两个不同老师开的课程;
  7. 不存在两个及以上老师联合开课的情况,即不存在两个及以上教师负责同一教学班的情况。

2.2 E-R图

基于以上分析可得以下E-R 图:
在这里插入图片描述
在这里插入图片描述

三、逻辑结构设计

3.1关系模式设计

将E-R图转换为以下关系模式:(加粗代表主键,斜体内容表示外键)

  • 班级(班级编号, 班级名称)
  • 学生(学号, 姓名, 性别, 年龄, 生源所在地, 已修学分总数, 登录密码, 班级编号)
  • 课程(课程编号, 课程名称, 学时, 考试或考查, 学分)
  • 教师(教师编号, 姓名, 性别, 年龄, 职称, 电话, 登录密码)
  • 开课情况(开课编号课程编号, 任课教师编号,开课学年, 开课学期,学号,成绩)
  • 选课情况(开课编号学号,成绩)

3.2数据类型定义

对关系模式中的属性定义类型、长度和约束:

  1. 班级
数据项名数据类型长度完整性约束备注
班级编号nvarchar4主键,唯一,非空
班级名称nvarchar20非空
  1. 学生
数据项名数据类型长度完整性约束备注
学号nvarchar12主键,唯一,非空
姓名nvarchar5非空
性别nvarchar1非空
年龄int4非空
生源所在地nvarchar20非空
已修学分总数float4
登录密码nvarchar20非空
班级编号nvarchar4外键,非空
  1. 课程
数据项名数据类型长度完整性约束备注
课程编号nvarchar5主键,唯一,非空
课程名称nvarchar20非空
学时int4非空
考试或考查bit1非空
学分float4非空
  1. 教师
数据项名数据类型长度完整性约束备注
教师编号nvarchar5主键,唯一,非空
姓名nvarchar20非空
性别nvarchar1非空
年龄int4非空
职称nvarchar10非空
电话nvarchar20非空
登录密码nvarchar20非空
  1. 开课选课情况
数据项名数据类型长度完整性约束备注
开课编号nvarchar15主键,唯一,非空
课程编号nvarchar5外键,非空
任课教师编号nvarchar5外键,非空
开课学年nvarchar4非空
开课学期bit1非空
  1. 选课情况
数据项名数据类型长度完整性约束备注
开课编号nvarchar15联合主键,也均为外键
学号nvarchar12
成绩int4

♻️ 资源

在这里插入图片描述

大小: 3.02MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87248998

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

买不到的数目(蓝桥杯C/C++A组真题详解)

题目详细: 题目思路: 对于这个题有一个定理 如果 a,b 均是正整数且互质,那么由 axby,x≥0,y≥0 不能凑出的最大数是 : a*b-a-b 具体的证明过程这里就不赘述 感兴趣的同学可以自行查找 这里就提供一种思…

rk3568 | rk平台GPIO冲突检测小技巧

上一篇我们讲解了如何编写gpio驱动,但是实际操作中,经常发现gpio引脚被占用的情况发生,那么本篇文章就详细讲解rxw平台下如何快速定位gpio复用问题以及如何解决。 一、GPIO寄存器查找 要想查看某个GPIO引脚可以配置的功能以及地址信息&…

Http协议基础

Http 是什么? Http 作为 WWW 的重要组成部分被提出 (World Wide Web) 而当时的 WWW 是为了帮助研究者更好的进行知识共享 基本理念:文档之间的相互关联形成超文本,最终连成相互参阅的 WWW Http (Hyper Text Transfer Protocol) 用于定义文…

QUIC的优势与缺陷

被寄予厚望的下一代互联网传输协议,QUIC究竟有哪些优点呢? 总结如下: 多路复用:QUIC升华了HTTP/2中的多路复用技术,实现了基于互相独立的多流(多通道)数据传输,从根本上解决了TCP存在…

基于C语言学生信息教务管理系统编程设计

一.实现功能 1.从键盘添加学生信息 2.从文件添加学生信息 3.显示学生信息到屏幕 4.显示学生信息到文件 5.删除学生信息 6.插入学生信息 7.查找学生信息 8.成绩排名 二、相关代码 #include<stdio.h> #include<stdlib.h> //使用malloc函数以及exit函数 #include<…

力扣(LeetCode)1759. 统计同构子字符串的数目(C++)

题目描述 双指针数学 根据同构字符串的定义&#xff0c;还有示例&#xff0c;发现同构子字符串的数量&#xff0c;只和字母相同的区间有关。如abbcccaa&#xff0c;有 444 个影响答案的区间&#xff0c;直观切分为a bb ccc aa&#xff0c;用空格划分区间。遍历的任务就是维护这…

灵动岛前端Ui

一、前言 灵动岛&#xff08;Dynamic Island &#xff09;是什么&#xff1f; 灵动岛&#xff0c;是苹果公司iPhone 14 Pro系列 [2] 交互UI&#xff0c;让虚拟软件和硬件的交互变得更为流畅。当有来电、短信等通知时&#xff0c;灵动岛会变化它的形态&#xff0c;以便让用户能…

【大数据】M1 mac win docker安装kafka+mysql+canal

文章目录kafkadocker-compose创建kafka容器启动以后&#xff0c;访问容器&#xff0c;并且发送消息测试问题Exception in thread "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTINGmysqldocker…

LAPS本地管理员密码之使用PowerShell查看和重置密码

目录 一、PowerShell策略设置 二、引入AdmPwd.PS模块 三、查看密码 四、强制重置密码 文章主要介绍在部署了LAPS后&#xff0c;怎么使用PowerShell查看和管理域内本地管理员密码。需要注意的是被操作的电脑需要加域&#xff0c;所有操作都在域内环境下进行。 LAPS介绍 LAP…

Spring Boot 知识总结

Spring Boot 知识总结 一、Spring Boot基础 1.1 什么是Spring Spring是一个开源框架&#xff0c;2003年兴起的一个Java轻量级开发框架&#xff0c;作者&#xff1a;Rod Johnson。 Spring是为了解决企业级应用开发的复杂性而创建的&#xff0c;简化开发。 Spring是如何简化…

LeetCode 每日一题——1759. 统计同构子字符串的数目

1.题目描述 1759. 统计同构子字符串的数目 难度中等43 给你一个字符串 s &#xff0c;返回 s 中 同构子字符串 的数目。由于答案可能很大&#xff0c;只需返回对 109 7 取余 后的结果。 同构字符串 的定义为&#xff1a;如果一个字符串中的所有字符都相同&#xff0c;那么…

Rancher RFO 正式 GA

Rancher RFO GA RFO 是 Rancher For openEuler 的缩写&#xff0c;旨在面向 openEuler 打造 Rancher 基础平台。其中最核心的工作是打造一款面向 openEuler 生态的 Kubernetes 发行版。它基于上游 RKE2 的技术栈&#xff0c;构建物采用 openEuler base image&#xff0c;致力于…

C语言及算法设计课程实验一:C程序的运行环境和运行C程序的方法

C语言及算法设计课程实验一&#xff1a;C程序的运行环境和运行C程序的方法一、实验目的二、实验内容2.1、输人并运行一个简单的正确的程序2.2、输人并编辑一个有错误的C程序2.3、输入并运行一个需要在运行时输入数据的程序2.4、运行一个自己编写的程序三、实验步骤3.1、输人并运…

Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效

OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投影 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用…

基于MWORKS.Sysplorer的电子控制器应用案例——永磁同步电机FOC算法建模

1 前言 MWORKS是面向数字工程的新一代科学计算与系统建模仿真平台&#xff0c;可提供机械、电子、液压、控制、热、信息等多领域统一建模仿真环境。经过同元持续攻关&#xff0c;全新推出的MWORKS.Sysplorer嵌入式代码生成器&#xff0c;现已支持面向电子控制器的产品级的嵌入…

循环神经网络的简洁实现

参考8.6. 循环神经网络的简洁实现 — 动手学深度学习 2.0.0 documentation 本节将展示如何使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型。 我们仍然从读取时光机器数据集开始。 pip install mxnet1.7.0.post1 pip install d2l0.15.0 from mxnet import n…

ubuntu18.04下用Fiddler抓取curl库网络数据包总结

本人在ubuntu18.04下进行开发&#xff0c;需要使用http和服务端进行通信&#xff0c;为了确认自己发送给服务端和服务端返回数据字段&#xff0c;所以需要进行抓包分析参数。本文就说明一下如何在ubuntu18.04使用fidder对自己编写的应用程序进行http协议数据包抓取。 目录 1.…

无线网络渗透测试清单

©网络研究院 无线渗透测试积极检查 WiFi 网络中的信息安全措施的过程&#xff0c;并分析弱点、技术流程和关键无线漏洞。 我们应该关注的最重要的对策是威胁评估、数据盗窃检测、安全控制审计、风险预防和检测、信息系统管理和升级基础设施&#xff0c;并且应该准备一份…

13-14-15-RabbitMq工作模式深度剖析与Spring整合MQ以及RabbitMq高级特性

RabbitMQ消息传递流程 连接( Connection) 在RabbitMQ中&#xff0c;生产者和消费者与RabbitMQ的通信就是基于TCP连接的。不过呢我们知道TCP连接的创建和销毁在高并发场景下对于操作系统来说都是特别昂贵的开销&#xff0c;所以RabbitMQ又引入了信道的概念 信道&#xff08;Chan…

云原生之使用Docker部署轻量级web服务器lighthttpd

云原生之使用Docker部署轻量级web服务器lighthttpd一、Lighthttpd介绍二、检查系统版本三、检查docker状态四、下载lighthttpd镜像五、部署lighthttpd1.创建数据目录2.创建lighthttpd容器3.查看容器状态六、访问lighthttpd服务七、编辑index.html1.编辑index.html文件2.重新访问…