基于Java和Mysql的学生成绩管理系统(毕业设计 附完整代码)

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 基于Java和Mysql的学生成绩管理系统(毕业设计 附完整代码)

相关技术介绍


  • 开发环境:Windows 10
  • 数据库管理系统:Mysql
  • 开发工具:Intel IDEA
  • 运行环境:Windows 10以及更高版本

二、系统需求分析


2.1 业务流程


用户登陆到系统后,在本系统中可以选择进行考试成绩录入、补考成绩录入、重修成绩录入,或查看总评成绩单、补考通知单、补考成绩单、重修通知单、重修成绩单、优秀学生名单等…

2.2 功能需求


  • 用户能够登入本系统
  • 用户可以在系统中录入考试成绩
  • 用户可以在系统中录入补考成绩
  • 用户可以在系统中录入重修成绩
  • 用户可以在系统中查看总评成绩单
  • 用户可以在系统中查看补考通知单
  • 用户可以在系统中查看补考成绩单
  • 用户可以在系统中查看重修通知单
  • 用户可以在系统中查看重修成绩单
  • 用户可以在系统中查看优秀学生名单


2.3 信息需求


  • 进行成绩录入时不允许存在列值为空
  • 进行成绩录入时需保证学生学号、姓名、选课的一致性


2.4 安全性与完整性需求


数据库上信息的安全性由数据库管理系统进行保证,完整性则主要由编程语句来体现。


2.5 数据字典


image.png

image.png


2.6 系统结构



7c94add00394f5768aee1df84ba6bf03.png


各模块功能说明:

  • 系统登录:该系统使用时需登录
  • 成绩录入:用于录入各类成绩
  • 考试成绩录入:用于登录入考试成绩及平时成绩
  • 补考成绩录入:用于录入补考成绩
  • 重修成绩录入:用于录入重修成绩
  • 信息查询:用于查询各种信息
  • 总评成绩:用于输出总评成绩。其中:总评成绩=30%*平时成绩+70*考试成绩
  • 补考通知单:用于输出补考名单,即总评成绩不到60分的学生
  • 补考成绩单:用于输出补考学生的成绩
  • 重修通知单:用于输出重修名单,及总评成绩 < 60且补考成绩也 < 60的学生
  • 重修成绩单:用于输出重修学生的成绩
  • 优秀学生名单:用于输出优秀学生。及该学生每科总评成绩均大于60
  • 退出系统:退出系统

三、概念模型设计


E-R图



961c1446437beb83c71c0a5d938b4b23.png



四、逻辑结构设计


学生信息表(学号,姓名,性别,班级,专业)

  • 主键:学号
  • 外键:无
  • 非空:学号、姓名


选课表(学号,课程号,课程名)

  • 主键:无
  • 外键:学号、课程号
  • 非空:学号、课程号


课程表(课程号,课程名,课程学分,上课时间)

  • 主键:课程号
  • 外键:无
  • 非空:课程号,课程名


成绩表(学号,课程号,课程名,平时成绩,考试成绩,补考成绩,重修成绩,总评成绩)

  • 主键:无
  • 外键:学号、课程号
  • 非空:无

五、物理结构设计


建立数据库表

下面使用Mysql可视化工具Navicate进行建库、建表操作。



14eeb8026ddbb4189701d0b776d011f0.png


六、数据库连接与应用


6.1 Java中通过JDBC连接数据库


关键代码如下:

static{try{if(conn==null){Class.forName(driver).newInstance();conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);}}catch(ClassNotFoundExceptione){e.printStackTrace();JOptionPane.showMessageDialog(null,"数据库连接异常!");System.exit(0);}catch(Exceptione){e.printStackTrace();}}

6.2 数据库的运行与维护


登录界面

8ef840bcc3f3c0e8685bfbb8d28a9637.png

主界面


52a3329d9855ccc1b2915c0775edbe5e.png


选择界面


0bcf291e34b14bf33cb2e08d524316b3.png


信息查询界面


f5e37bca7aa12817bf81e2dc48fe1b53.png


查询的SQL语句如下:

Stringsql="select student.s_no,student.s_name,score.c_name "+"from student,score "+"where student.s_no=score.s_no and score.final_score<60";


考试成绩录入


afbde31d3f2024cd7e280b7d0b99b50a.png

录入的SQL语句如下:

Stringsql="Insert "+"into score(s_no, c_no, c_name, ord_score, exam_score, final_score) "+"values(?, ?, ?, ?, ?, ?)";


七、收获与体会


通过本次的数据库课程设计,我进一步的了解了数据库的开发和使用,与看课本学习不同的是,这次是动手实践去做,而不仅仅局限于课本上的理论知识,更加进一步加深了对数据库的理解,同时也对Java语法、JDBC使用更加熟练。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
443 13
|
11月前
|
人工智能 Java 关系型数据库
Java的时间处理与Mysql的时间查询
本文总结了Java中时间与日历的常用操作,包括时间的转换、格式化、日期加减及比较,并介绍了MySQL中按天、周、月、季度和年进行时间范围查询的方法,适用于日常开发中的时间处理需求。
213 0
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
832 17
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3316 26
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
1395 12
|
JavaScript Java 测试技术
基于Java的通讯录管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的通讯录管理系统的设计与实现(源码+lw+部署文档+讲解等)
424 5
|
存储 Java 关系型数据库
Java+Swing实现通讯录管理系统
Java+Swing实现通讯录管理系统
528 0
Java+Swing实现通讯录管理系统
|
Java
【Java】通讯录管理系统小项目
【Java】通讯录管理系统小项目
381 0
【Java】通讯录管理系统小项目

推荐镜像

更多