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

news/2025/1/11 7:01:13/

一、需求分析

  • 开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求,需要借助计算机来进行现代化信息管理,从而提高管理的准确性与高效性。
  • 可行性: 传统人工管理成绩存在诸多弊病,比如准确性低、效率低等。计算机具有存储快、查找便利、准确性高的特点,能非常好的解决人工管理的弊病。
  • 应用环境:
    • 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.ppmy.cn/news/6952.html

相关文章

水文监测系统-水文监测站构成 设备 功能 特点介绍以及案例分享

平升电子水文监测系统实现对江河流域水位、降水量、流量、流速、水质、闸门开启度、墒情等数据的实时采集、报送和处理。为防汛抗旱减灾提供科学依据和有效信息共享,保障人民群众生命财产安全,满足水利和经济社会发展对水文服务的需求。 2022年1月&#…

ATAC-seq分析:教程简介(1)

简介 本课程[1]介绍 Bioconductor 中的 ATACseq 分析。 该课程由 2 个部分组成。这将引导您完成正常 ATACseq 分析工作流程的每个步骤。它涵盖比对、QC、peak calling、基因组富集测试、基序富集和差异可及性测试。 环境准备 IGV IGV 可以从 BROAD 网站安装。 》 https://www.b…

C++/Java调用C++动态链接库————附带示例和详细讲解

文章目录0 准备1 C调用动态链接库2 Java调用C动态链接库3 运行0 准备 在CMake中,使用如下的方法把代码编译成动态/静态链接库: # 设置项目名 project(getMatInfo)# 设置c版本 set(CMAKE_CXX_STANDARD 11)# 如果不填写SHARE,默认为静态链接…

Learning to Segment Every Thing

摘要 现有的目标实例分割方法要求所有训练样本都具有分割mask标注。然而,标注新的类别是非常费劲的,因此这将实例分割模型的应用范围限制在100个左右的有标注的类。本文的目的是提出一种新的部分监督的训练模型,以及一种新的权重传递函数&am…

TensorRt(3)mnist示例中的C++ API

目前sample中mnist提供了至少caffe、onnx的预训练模型,在TensorRT经过优化生成engine后再进行infer,两种模型的加载处理略有不同,做出简单api处理说明。 最后尝试使用最少的代码来实现整个流程。 文章目录1、主要的C API 定义2、minst示例2.1…

第二十六章 数论——欧拉函数(详解与证明)

第二十六章 数论——欧拉函数(详解与证明)欧拉函数1、互质2、欧拉函数的定义3、欧拉函数的公式4、欧拉函数的证明5、欧拉函数的使用(1)问题一:思路代码(2)问题二:思路case1case1case…

边缘AI概述

随着移动计算和物联网(IoT)应用程序的爆炸性增长,数十亿移动和物联网设备正在连接到互联网,在网络边缘生成大量数据。因此,在云数据中心收集大量数据会产生极高的延迟和网络带宽使用。 因此,迫切需要将人工…

USB TYPE C为什么能实现正反插

USB TYPE C接口在手机,电脑等移动终端中使用的非常多,它可以分为插头和插座,放在PCB板上一般是插座。 USB TYPE C的插座和插头引脚信号定义大家可以看下。引脚分为两排,上面一排是A,下面一排是B。标准的USB TYPE C总共…