当前位置: 首页 > news >正文

基于bootstrap+Java+MySQL的高校成绩管理系统

目录
系统功能需求 11
2、概念结构设计 14
全局 E-R 图 16
3、逻辑结构设计 18
数据类型定义 19
4、物理结构设计 21
索引设计 21
5、数据库实施 21
视图的建立 29
触发器建立 34
6、应用系统开发与试运行 37
前台界面与后台数据库连接说明,代码实现。 37
7、实验总结 77
系统设计的不足 78
1.2系统功能需求
图 1.5 成绩管理系统 UML 图
成绩管理主要是教务处对教师、对课程、对学生成绩管理,以便于教师,学生能够随时对学生成绩进行各种查询。
他服务的对象不同,提供的功能也不同。
(1)高权限教师(系统管理员)
图 1.6 系统管理员功能模块图

1.学生信息管理:按学好可以查找到学生的详细信息,并可以添加、删除、修改学生信息
2.教师信息管理:教师以学院为单位划分,可按学院,按教师名,教师号等方式查看教师信息,并由添加,删除、修改教师信息的功能。
3.课程管理:可以按课程编号查看课程的详细信息,可以添加,删除修改开课记录。
4.班级开课管理,以班级为单位,根据班级进行开课管理
5.成绩管理:按学号可以查找学生的全部成绩信息。可以查看该学生的成绩但没有修改成绩功能。成绩录入应由相应老师完成。
6.学院信息管理,查看,添加,修改,删除学院信息。
7.专业信息管理,查看,添加,修改,删除专业信息。
8.班级信息管理,查看,添加,修改,删除班级信息。
(2)普通教师
教师登录后可以修改自己的教师信息,可以修改登录密码,以班级为单位查询学生的课程信息,以班级为单位录入成绩。可以查看任课情况。
图 1.7 教师功能模块图
1.成绩录入模块:根据教师编号,上课学期,查询所有开课记录,以及开课记录对应班级的所有学生,对每个学生的该科成绩进行录入修改。
2.成绩查询模块:教师只能查询自己教授的课程的所有同学的成绩。可获得不及格学生名单。课程的平均成绩。
3.教师任课情况查询:自动获得教师的所有任课情况, 包括课程名称, 班级名称,平均成绩。
(3)学生
学生登陆后可以修改自己的信息,可以修改登陆密码;查看全部已考科目的成绩,查看本学期成绩以及不及格科目成绩,查看本学期或学年的班级以及年级名次,以及班级课表、已修学分、总平均绩点、专业教学计划查询等查询。
图 1.8 学生功能模块图
1.成绩查询:
a)学生成绩查询:按学期(学年)查询,获得该学期(学年)成绩单, 平均绩点,不及格科目,班级排名,年级排名。
b)课程平均成绩查询:按班级、学期(学年)查询,获得该学期(学年) 各个课程的平均成绩。
2. 课程查询:
a)班级课程开课查询:根据学期查询,上课科目,任课教师
b)学生教学计划查询:专业教学计划,已修学分,平均绩点。(毕业最低学分,毕业最低绩点)已修科目各科成绩。
1.3其他性能需求
该系统应支持多用户同时对数据库进行访问,即支持并发。
实现方法主要是通过 java 数据源进行数据库连接,并且 Servlet 编程自带多线程可以支持并发,以此来提升响应速度。
当然响应时间越短越好,但考虑到服务器成本问题,实际响应时间不需要很段,因为也没有必要,在数据访问高峰期,如期末考后,则应该增强服务器的性能。本文转载自http://www.biyezuopin.vip/onews.asp?id=15597
因此,数据库服务器性能最好能动态变化。因此需要在统计高峰期后做好高并发准备。

package com.example.final_database.controller;

import com.example.final_database.dao.loginDao;
import com.example.final_database.model.Student;
import com.example.final_database.model.Teacher;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "loginServlet", value = "/loginServlet")
public class loginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8"); //1
        response.setContentType("text/html;charset=utf-8");  //2
        response.setCharacterEncoding("utf-8");  //3
        String kind =request.getParameter("kind");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        HttpSession session=request.getSession();
        String message=null;
        RequestDispatcher dispatcher=null;
        loginDao userdao=new loginDao();
        if(kind.equals("student")){

            Student user=userdao.StudentLogin(username,password);
            if(user==null){
                message="用户名或密码错误";
                dispatcher=request.getRequestDispatcher("./VIEW/index.jsp");
            }
            else{
                message="登录成功!欢迎!";
                session.setAttribute("user",user);
                dispatcher=request.getRequestDispatcher("./VIEW/student.jsp");
            }
            session.setAttribute("message",message);
            session.setAttribute("kind","学生");
            dispatcher.forward(request,response);
        }
        else if(kind.equals("teacher")){
            Teacher user=userdao.TeacherLogin(username,password);
            if(user==null){
                message="用户名或密码错误";
                dispatcher=request.getRequestDispatcher("./VIEW/index.jsp");
            }
            else{
                message="登录成功!欢迎!";
                session.setAttribute("user",user);
                if(user.getTauthority()<2) {
                    dispatcher = request.getRequestDispatcher("./VIEW/teacher.jsp");
                }
                else{
                    dispatcher = request.getRequestDispatcher("./VIEW/admin.jsp");
                }
            }
            session.setAttribute("message",message);
            session.setAttribute("kind","老师");
            dispatcher.forward(request,response);
        }
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • java基于ssm+vue+elementui的旅游线路分享管理系统
  • 最近公共祖先 LCA
  • Deterministic Policy Gradient Algorithms
  • Java8时间日期库DateTime API及示例
  • np.random.seed(), torch.manual_seed(args.seed)
  • 真真正正的九面阿里才定级 P6+ 支持背调,还不来看?(建议收藏)
  • Fedora 24 Beta 版发布下载!
  • k-NN分类算法详解与分析(k近邻分类算法)
  • 03-数据链路层
  • Maven进阶实战
  • C++引用用法学习笔记
  • linux下的动态静态库
  • [GXYCTF2019]禁止套娃
  • STM32CubeIDE实现基于STM32的LoRa通信程序移植(SPI接口)
  • JQuery系列之元素操作
  • 【刷算法】从上往下打印二叉树
  • avalon2.2的VM生成过程
  • Effective Java 笔记(一)
  • JavaScript类型识别
  • Java-详解HashMap
  • Js基础知识(一) - 变量
  • Laravel核心解读--Facades
  • Linux gpio口使用方法
  • Making An Indicator With Pure CSS
  • RxJS: 简单入门
  • Spark学习笔记之相关记录
  • Sublime text 3 3103 注册码
  • Vue 2.3、2.4 知识点小结
  • windows下如何用phpstorm同步测试服务器
  • 程序员该如何有效的找工作?
  • 翻译:Hystrix - How To Use
  • 如何使用 JavaScript 解析 URL
  • 实习面试笔记
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 说说我为什么看好Spring Cloud Alibaba
  • #162 (Div. 2)
  • #Java第九次作业--输入输出流和文件操作
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (3)nginx 配置(nginx.conf)
  • (C)一些题4
  • (C++)八皇后问题
  • (function(){})()的分步解析
  • (搬运以学习)flask 上下文的实现
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)linux使用docker容器运行mysql
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)关于多人操作数据的处理策略
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 8.0 中有哪些新的变化?
  • .NET Core 项目指定SDK版本