基于Java和Mysql的学生成绩管理系统

Change

发布日期: 2019-06-16 12:48:24 浏览量: 2548
评分:
star star star star star star star_border star_border star_border star_border
*转载请注明来自write-bug.com

一、相关技术介绍

  • 开发环境:Windows 10

  • 数据库管理系统:Mysql

  • 开发工具:Intel IDEA

  • 运行环境:Windows 10以及更高版本

  • 系统结构:C/S

二、系统需求分析

2.1 业务流程

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

2.2 功能需求

  • 用户能够登入本系统

  • 用户可以在系统中录入考试成绩

  • 用户可以在系统中录入补考成绩

  • 用户可以在系统中录入重修成绩

  • 用户可以在系统中查看总评成绩单

  • 用户可以在系统中查看补考通知单

  • 用户可以在系统中查看补考成绩单

  • 用户可以在系统中查看重修通知单

  • 用户可以在系统中查看重修成绩单

  • 用户可以在系统中查看优秀学生名单

2.3 信息需求

  • 进行成绩录入时不允许存在列值为空

  • 进行成绩录入时需保证学生学号、姓名、选课的一致性

2.4 安全性与完整性需求

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

2.5 数据字典

数据项名称 别名 类型 含义说明
学号 s_no Char(8) 学生的唯一标识
姓名 s_name Char(8) 学生的姓名
性别 s_sex Char(2) 学生的性别
班级 s_class Char(8) 学生的专业
专业 s_spec Char(8) 学生的专业
课程号 c_no Char(8) 课程的唯一标识
课程名 c_name Char(8) 课程的名字
课程学分 c_point Smallint 课程的学分
上课时间 c_time Smallint 上课时间
平时成绩 ord_score Int 学生某课程的平时成绩
考试成绩 exam_score Int 学生某课程的考试成绩
补考成绩 makeup_score Int 学生某课程的补考成绩
重修成绩 renovate_score Int 学生某课程的重修成绩
总评成绩 final_score Int 学生某课程的总评成绩

2.6 系统结构

各模块功能说明:

  • 系统登录:该系统使用时需登录

  • 成绩录入:用于录入各类成绩

  • 考试成绩录入:用于登录入考试成绩及平时成绩

  • 补考成绩录入:用于录入补考成绩

  • 重修成绩录入:用于录入重修成绩

  • 信息查询:用于查询各种信息

  • 总评成绩:用于输出总评成绩。其中:总评成绩=30%*平时成绩+70*考试成绩

  • 补考通知单:用于输出补考名单,即总评成绩不到60分的学生

  • 补考成绩单:用于输出补考学生的成绩

  • 重修通知单:用于输出重修名单,及总评成绩 < 60且补考成绩也 < 60的学生

  • 重修成绩单:用于输出重修学生的成绩

  • 优秀学生名单:用于输出优秀学生。及该学生每科总评成绩均大于60

  • 退出系统:退出系统

三、概念模型设计

E-R图

四、逻辑结构设计

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

  • 主键:学号

  • 外键:无

  • 非空:学号、姓名

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

  • 主键:无

  • 外键:学号、课程号

  • 非空:学号、课程号

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

  • 主键:课程号

  • 外键:无

  • 非空:课程号,课程名

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

  • 主键:无

  • 外键:学号、课程号

  • 非空:无

五、物理结构设计

建立数据库表

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

六、数据库连接与应用

6.1 Java中通过JDBC连接数据库

关键代码如下:

  1. static {
  2. try {
  3. if (conn == null) {
  4. Class.forName(driver).newInstance();
  5. conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
  6. }
  7. } catch (ClassNotFoundException e) {
  8. e.printStackTrace();
  9. JOptionPane.showMessageDialog(null,
  10. "数据库连接异常!");
  11. System.exit(0);
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. }
  15. }

6.2 数据库的运行与维护

登录界面

主界面

选择界面

信息查询界面

查询的SQL语句如下:

  1. String sql = "select student.s_no,student.s_name,score.c_name " +
  2. "from student,score " +
  3. "where student.s_no=score.s_no and score.final_score<60";

考试成绩录入

录入的SQL语句如下:

  1. String sql = "Insert " +
  2. "into score(s_no, c_no, c_name, ord_score, exam_score, final_score) " +
  3. "values(?, ?, ?, ?, ?, ?)";

七、收获与体会

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

上传的附件 cloud_download 基于Java和Mysql的学生成绩管理系统.7z ( 648.06kb, 76次下载 )
error_outline 下载需要13点积分

keyboard_arrow_left上一篇 : 基于C语言的外卖派单模拟系统 C++实现的基于α-β剪枝算法的井字棋游戏 : 下一篇keyboard_arrow_right



Change
2019-06-16 12:48:13
基于Java和Mysql的学生成绩管理系统
小凌少
2020-06-10 21:25:14
请问有sql脚本么,急急急!!!
Hubba
2020-07-04 10:21:53
请问怎么连接数据库 没太看明白

发送私信

如果哪天我们真的久别重逢,我希望你别来无恙

12
文章数
14
评论数
最近文章
eject