java学生信息管理系统_毕业设计项目实例(含源码毕业论文)

2023-11-02

一、面向人群

学校的学生信息管理人员以及老师和学生

二、总体功能描述

本系统利用Java Web技术实现了学生信息管理系统,具有简单的学生信息管理功能。

实现了以下功能模块:

院系信息管理模块,学生信息管理模块,课程信息管理模块,成绩管理模块

并能根据登入用户的权限自动展示相关操作。

三、运行环境

硬件环境:Windows 7 及以上,处理器:Intel Pentium及以上,内存:2G以上

浏览器:IE9 以上及Chrome,FireFox,Safari等现代浏览器

四、基本处理流程

1)用户登录流程图

2)子模块操作处理流程图

3)模块结构-系统结构图

五、算法描述

  1. 用户在前台操作,向后台发送带参数的GET请求

  1. AdminDao.java捕捉到请求,根据类型分发到不同处理方法中

  1. 处理方法中实例化XXXDao对象并调用DBUtils.java提供的方法连接和操作数据库

  1. 用ajax向前台user.jsp或者admin.jsp发送操作后的数据

六、数据库设计-概念结构设计

七、操作界面截图

八、登录注册模块

1public class LoginServlet extends HttpServlet {
2    private static final long serialVersionUID = 1L;
3    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
4        request.setCharacterEncoding("utf-8");
5        String username = request.getParameter("username");
6        String password = request.getParameter("password");
7        String level = null;
8        //实例化UserDao对象
9        UserDao userDao = new UserDao();
10        User user = userDao.login(username, password);
11        //判断是否登录成功
12        if(user != null){//成功
13            level = user.getLevel();
14            if(level.equals("用户")){
15    request.getSession().setAttribute("user", user);//将用户对象放到session中
16                //转发到user.jsp中
17                request.getRequestDispatcher("user.jsp").forward(request, response);
18            }
19            else{
20            request.getSession().setAttribute("admin", user);//将管理员对象放到session中
21                //转发到admin.jsp中
22                request.getRequestDispatcher("admin.jsp").forward(request, response);
23            }    
24        }else {//失败
25            request.setAttribute("info"," 错误:用户名或密码错误!");
26            request.getRequestDispatcher("message.jsp").forward(request, response);
27        }
28    }
}

九、增删改查模块

1public class CourseDao {
2    // 获取所有课程的信息,用ArrayList返回
3    public ArrayList<Course> query_all_course() {
4        Connection conn = DBUtils.getConnection();
5        String sql = "select * from course order by cno;";
6        ArrayList<Course> results = new ArrayList<Course>();
7        try {
8            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
9            ResultSet rs = ps.executeQuery();
10            while (rs.next()) {
11                Course temp = new Course();
12                temp.setCno(rs.getString("Cno"));
13                temp.setCname(rs.getString("Cname"));
14                temp.setCteacher(rs.getString("Cteacher"));
15                temp.setCcredit(rs.getInt("Ccredit"));
16                results.add(temp);
17            }
18            // 关闭资源
19            rs.close();
20            ps.close();
21        } catch (SQLException e) {
22            e.printStackTrace();
23        } finally {
24            DBUtils.closeConnection(conn);
25        }
26        return results;
27    }
28    // 插入课程信息,返回一个int值表示状态,1:成功,0失败
29    public int insert_course(String Cno, String Cname, String Cteacher, double Ccredit) {
30        Connection conn = DBUtils.getConnection();
31        String sql = "insert into course values(?,?,?,?);";
32        int flag = 0;
33        try {
34            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
35            ps.setString(1, Cno);
36            ps.setString(2, Cname);
37            ps.setString(3, Cteacher);
38            ps.setDouble(4, Ccredit);
39            flag = ps.executeUpdate();
40            ps.close();
41        } catch (SQLException e) {
42            e.printStackTrace();
43        } finally {
44            DBUtils.closeConnection(conn);
45        }
46        return flag;
47    }
48    // 删除课程信息,返回一个int值表示状态,1:成功,0失败
49    public int delete_course(String Cno) {
50        Connection conn = DBUtils.getConnection();
51        String sql = "delete from course where Cno = ?;";
52        int flag = 0;
53        try {
54            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
55            ps.setString(1, Cno);
56            flag = ps.executeUpdate();
57            ps.close();
58        } catch (SQLException e) {
59            e.printStackTrace();
60        } finally {
61            DBUtils.closeConnection(conn);
62        }
63        return flag;
64    }
65    //修改课程信息,返回一个int值表示状态,1:成功,0失败
66    public int alter_course(String cno,String after_cno,String after_cname,String after_cteacher,double after_ccredit) {
67        Connection conn = DBUtils.getConnection();
68        String sql = "update course set cno = ?,cname = ?,cteacher = ?,ccredit = ? where cno = ?;";
69        int flag = 0;
70        try {
71            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
72            ps.setString(1, after_cno);
73            ps.setString(2, after_cname);
74            ps.setString(3, after_cteacher);
75            ps.setDouble(4, after_ccredit);
76            ps.setString(5, cno);
77            flag = ps.executeUpdate();
78            ps.close();
79        } catch (SQLException e) {
80            e.printStackTrace();
81        }finally {
82            DBUtils.closeConnection(conn);
83        }
84        return flag;
85    }
86    // 查询课程平均分信息,返回一个ArrayLst集合
87    public ArrayList<Course_avg> course_avg() {
88        Connection conn = DBUtils.getConnection();
89        String sql = "select sc.cno cno,cname,avg(grade) avg from course,sc where course.cno = sc.cno group by cno order by cno;";
90        ResultSet result = null;
91        ArrayList<Course_avg> course_avg = new ArrayList<Course_avg>();
92        try {
93            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
94            result = ps.executeQuery();
95            while(result.next()){
96                Course_avg temp = new Course_avg();
97                temp.setCno(result.getString("Cno"));
98                temp.setCname(result.getString("Cname"));
99                temp.setAvg(result.getDouble("avg"));
100                course_avg.add(temp);
101            }
102            ps.close();
103            result.close();
104        } catch (SQLException e) {
105            e.printStackTrace();
106        } finally {
107            DBUtils.closeConnection(conn);
108        }
109        return course_avg;
110    }
111    //查询课程不及格率,返回一个ArrayList集合
112    public ArrayList<Course_fail_rate> fail_rate(){
113        Connection conn = DBUtils.getConnection();
114        String sql = "select cno,(select cname from course where cno = x.cno) cname,cast(100.0*(select count(sno) from sc where grade < 60 and cno = x.cno)/(select count(sno) from sc where cno = x.cno) as decimal(18,2)) rate from sc x group by cno order by cno;";
115        ArrayList<Course_fail_rate> fail_rate = new ArrayList<Course_fail_rate>();
116        try {
117            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
118            ResultSet rs = ps.executeQuery();
119            while(rs.next()){
120                Course_fail_rate temp = new Course_fail_rate();
121                temp.setCno(rs.getString("cno"));
122                temp.setCname(rs.getString("cname"));
123                temp.setFail_rate(rs.getDouble("rate"));
124                fail_rate.add(temp);
125            }
126            rs.close();
127            ps.close();
128        } catch (SQLException e) {
129            e.printStackTrace();
130        } finally {
131            DBUtils.closeConnection(conn);
132        }
133        return fail_rate;
134    }
135    //查询课程排名情况,返回一个ArrayList集合
136    public ArrayList<Course_ranking> course_ranking(String cno){
137        Connection conn = DBUtils.getConnection();
138        String sql = "select student.Sno Sno,Dname,Clname,Sname,Ssex,Sage,Grade from department,class,student,sc where student.sno = sc.sno and class.Clno = student.Clno and department.Dno = class.Dno and cno = '"+cno+"' order by grade desc;";
139        ArrayList<Course_ranking> course_ranking = new ArrayList<Course_ranking>();
140        try {
141            PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
142            ResultSet rs = ps.executeQuery();
143            while(rs.next()){
144                Course_ranking temp = new Course_ranking();
145                temp.setSno(rs.getString("Sno"));
146                temp.setDname(rs.getString("Dname"));
147                temp.setClname(rs.getString("Clname"));
148                temp.setSname(rs.getString("Sname"));
149                temp.setSsex(rs.getString("Ssex"));
150                temp.setSage(rs.getInt("Sage"));
151                temp.setGrade(rs.getDouble("Grade"));
152                course_ranking.add(temp);
153            }
154            rs.close();
155            ps.close();
156        } catch (SQLException e) {
157            e.printStackTrace();
158        } finally {
159            DBUtils.closeConnection(conn);
160        }
161        return course_ranking;
162    }
}

十、项目链接

https://download.csdn.net/download/suli77/87398718

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java学生信息管理系统_毕业设计项目实例(含源码毕业论文) 的相关文章

  • Netbeans 8.1 Gnome 3 GTK+ UI 字体和选项卡高度

    我刚刚在运行 GNOME 3 桌面的 Ubuntu 16 04 上安装了 NetBeans 8 1 如果可能的话 我想继续使用 IDE 的 GTK 外观和感觉 但 UI 上的字体 尤其是选项卡中的字体 太小且重叠 我尝试添加 fontsiz
  • java.lang.ClassNotFoundException:javax.mail.MessagingException

    我想使用 eclipse 将电子邮件从我的 gmail 帐户发送到另一个邮件帐户 我使用 apache tomcat 7 0 34 作为我的 Web 服务器 并使用端口 8080 作为 apache 服务器 HTTP 1 1 并使用 JRE
  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件
  • 如何在 Java 中向时间戳添加/减去时区偏移量?

    我正在使用 JDK 8 并且玩过ZonedDateTime and Timestamp很多 但我仍然无法解决我面临的问题 假设我得到了格式化的Timestamp在格林威治标准时间 UTC 我的服务器位于某处 假设它设置为Asia Calcu
  • Android中如何使用JNI获取设备ID?

    我想从 c 获取 IMEIJNI 我使用下面的代码 但是遇到了未能获取的错误cls 它总是返回NULL 我检查了环境和上下文 它们都没有问题 为什么我不能得到Context班级 我在网上搜索了一下 有人说我们应该使用java lang Ob
  • 在 Java 中如何找出哪个对象打开了文件?

    我需要找出答案哪个对象在我的 Java 应用程序中打开了一个文件 这是为了调试 因此欢迎使用工具或实用程序 如果发现哪个对象太具体了 这class也会很有帮助 这可能很棘手 您可以从使用分析器开始 例如VisualVM http visua
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 将 JavaFX FXML 对象分组在一起

    非常具有描述性和信息性的答案将从我这里获得价值 50 声望的赏金 我正在 JavaFX 中开发一个应用程序 对于视图 我使用 FXML
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    做时 new MiniDFSCluster Builder config build 我得到这个异常 java lang UnsatisfiedLinkError org apache hadoop io nativeio NativeIO
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • cmd命令查询硬盘序列号,磁盘ID,MAC地址

    查询单位计算机基础信息 需要查询 硬盘序列号 磁盘ID MAC地址等计算机相关信息 不需要专业的软件如AIDA 用cmd命令行就可以实现这些信息的查询 之前就经常把硬盘序列号和磁盘ID搞混乱 win r 输入cmd 打开cmd命令 1 硬盘
  • ABAP 访问REST服务设置Auth2的Token

    DATA json ser TYPE REF TO cl trex json serializer json des TYPE REF TO cl trex json deserializer DATA lv url TYPE string
  • Latex 希腊字母大写

    大写 小写 LaTeX 大写 大写 LaTeX A A quad alpha A A alpha N
  • 程序访问的局部性原理

    程序访问的局部性原理 程序访问的局部性原理包括时间局部性和空间局部性 时间局部性是指在最近的未来要用到的信息 很可能是现在正在使用的信息 因为程序中存在循环 空间局部性是指在最近的未来要用到的信息 很可能与现在正在使用的信息在存储空间上是连
  • OD华为机试 32

    组成最大数 描述 小组中每位都有一张卡片 卡片上是6位内的正整数 将卡片连起来可以组成多种数字 计算组成的最大数字 输入描述 号分割的多个正整数字符串 不需要考虑非数字异常情况 小组最多25个人 输出描述 最大的数字字符串 示例一 输入 2
  • elk 笔记15--mapping

    elk 笔记15 mapping 1 mapping 简介 1 1 什么是mapping 1 2 为何移除多type 2 mapping 数据类型 3 mapping 元字段 4 mapping 参数 5 动态 mapping 6 常见 m
  • 3.Unity Shader 基础

    目录 一对好兄弟 材质和Unity Shader Unity中shader ShaerLab Unity Shader 的结构 1 创建 2 Properties 3 SubShader 状态设置 RenderSetup SubShader
  • hive永久注册udf函数小例子

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 1217 注册UDF函数 1 helloUDF java中package信息需要修改 代码如下 package com maven udf p
  • ChatGLM2_6b安装

    Chatglm2 6b安装 一 安装要求 1 硬件 能否使用 或者以什么模式使用主要取决于显卡的显存 2 能否使用AMD显卡 可以 甚至可以使用CPU 但是需要降低精度 以CPU模式运行大概需要32GB 内存 二 工程与下载 官方路径 工程
  • 遇到问题之-yum update无法连接镜像问题解决

    yumupdate出现无法解析的错误 查看yum源设置也正确 然后查看本机DNS无法解析 通过防火墙开放DNS端口解决 然后还是无法yum安装 查看另外一台服务器和故障机配置都相同 但是yum正常 发现两者不同的是load的mirror是不
  • 物联网mqtt消息格式定义示例

    物联网mqtt消息格式定义示例 物联网mqtt通信流程 消息定义 应用下发到云 POST https 云服务器ip iot product id device id cmd Content Type application json X A
  • Spring MVC应用的开发步骤

    Spring MVC应用的开发步骤 Spring MVC应用的开发步骤 如果以异步方式提交请求 利用XML配置文件 配置控制器类 Spring MVC应用的开发步骤 下面简单介绍Spring MVC应用的开发步骤 在web xml文件中配置
  • Frida hook Java层

    往期推荐 frida环境安装 Xposed框架安装 使用及插件开发 HOOK startActivity HOOK框架 动态代理 需要相关资料的朋友 可以 加入此处即可打包获取 需要对在进程外传递的消息进行拦截处理就必须采取一种称为HOOK
  • Hexo博客开发之——七牛云图片批量下载

    一 前言 基于hexo Github搭建的静态博客 图片等资源的存储是一个问题 之前考虑过图片保存本地文件夹 图床 qiniu 微博 等 但是七牛存储的图片会有一些问题 使得我不得不考虑领寻图片等资源的存储问题 1 1 七牛图片存储的问题
  • UE4 加载流关卡(StreamingLevel)

    主要内容 本文主要讲解流关卡的加载卸载以及使用流关卡的好处 使用流关卡的好处在于利于多人协同合作 例如使用SVN进行项目开发时 各自上传或修改各自负责的关卡可以互不干扰 实现步骤 1 新建一个默认的主关卡和两个空的关卡 2 在主关卡里把两个
  • 解决 Ubuntu18.10 无法安装 Nvidia-docker2

    2023年5月18日更新 nvidia 原 github io 网页已废弃 更新了新的主页链接 2022年8月10日更新 很高兴看到这篇文章能够帮助一些同仁 在此更新一下 根据 https nvidia github io nvidia d
  • iOS核心动画CoreAnimation系统进阶(赛贝尔曲线-菜单侧滑动画拆分动画详解)

    我们知道动画是基于绘制的 多次绘制贝塞尔的过程就会形成动画 流畅的动画效果会给用户带来不一样的使用体验 下面我们就让App开发中经常使用到的侧滑动画进行拆分详解 效果图如下 为侧滑动画封装一个slideMenuView 绘制侧滑动画需要下面
  • Raft协议处理各种failover情况

    Raft协议处理各种failover情况 Raft 协议的易理解性描述 虽然 Raft 的论文比 Paxos 简单版论文还容易读了 但论文依然发散的比较多 相对冗长 读完后掩卷沉思觉得还是整理一下才会更牢靠 变成真正属于自己的 这里我就借助
  • MYSQL数据库服务磁盘IO高问题分析与优化

    压力测试过程中 如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大 TPS逐渐降低等 而问题定位分析通常情况下 最优先排查的是监控服务器资源利用率 例如先用TOP 或者nmon等查看CPU 内存使用情况 然后在排查IO问题
  • java学生信息管理系统_毕业设计项目实例(含源码毕业论文)

    一 面向人群 学校的学生信息管理人员以及老师和学生 二 总体功能描述 本系统利用Java Web技术实现了学生信息管理系统 具有简单的学生信息管理功能 实现了以下功能模块 院系信息管理模块 学生信息管理模块 课程信息管理模块 成绩管理模块