0


基于Java + Swing + MySQL的学生选课及成绩管理系统(Java课程设计)

目录


开发工具

工具说明JDK 1.8Java环境IDEA编译器MySQL 8.0.36数据库Navicat 16数据库图形化管理工具

系统结构

在这里插入图片描述

功能展示

登录与注册界面(通用)

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

主界面(通用)

在这里插入图片描述

学生、教师和管理员的主界面相同,菜单栏里功能不同。

学生信息查询界面(学生用户)

在这里插入图片描述

采用数据库模糊搜索,支持关键词搜索。

选中表格中的一行数据后点击底部按钮,可以查看详细信息。

在这里插入图片描述

学生信息管理界面(教师用户 管理员用户)

在学生查询的基础上,增加了添加和删除的功能。由于学生的学号与选课联系的学号形成外键约束,当这里删除某个学生,对应该学生的所有课程成绩及选课都会删除。

在这里插入图片描述

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

学生选课界面(学生用户)

在这里插入图片描述

在表里选中对应课程行,再填入学号,点击添加按钮,即可添加课程,学生添加好的课程,显示是无分数的,需要教师或管理员进行成绩管理,就会有分数。

在这里插入图片描述

学生课程成绩查询界面(学生用户)

学生刚选课完,课程成绩为空,需要教师或管理员进行成绩管理,就会有分数。

在这里插入图片描述

学生课程成绩管理界面(教师用户 管理员用户)

在这里插入图片描述

老规矩选中对应的一行的课程成绩,就能进行修改和删除。

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

学生课程管理界面(管理员用户)

可将学生的课程增加与删除。由于课程的课程号与选课联系的课程号形成外键约束,当这里删除某个课程,对应该课程的所有课程成绩及该选课都会删除。

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

在这里插入图片描述

修改密码界面(通用)

在这里插入图片描述

在这里插入图片描述

数据库设置

数据库E-R图

在这里插入图片描述

创建和管理数据库的SQL命令

-- 创建数据库并使用 utf8mb4 字符集和排序规则CREATEDATABASE studata CHARACTERSET utf8mb4 COLLATE utf8mb4_unicode_ci;USE studata;-- 创建 user_stu 表CREATETABLE`user_stu`(`username`VARCHAR(30)PRIMARYKEY,`password`VARCHAR(30)NOTNULL)ENGINE=INNODBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;-- 创建 user_tch 表CREATETABLE`user_tch`(`username`VARCHAR(30)PRIMARYKEY,`password`VARCHAR(30)NOTNULL)ENGINE=INNODBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;-- 创建 user_admin 表CREATETABLE`user_admin`(`username`VARCHAR(30)PRIMARYKEY,`password`VARCHAR(30)NOTNULL)ENGINE=INNODBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;-- 创建 stu 表CREATETABLE`stu`(`name`VARCHAR(20)NOTNULL,`gender`CHAR(2)NOTNULL,`sno`CHAR(12)NOTNULLUNIQUEPRIMARYKEY,`major`VARCHAR(12)DEFAULTNULL)ENGINE=INNODBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;-- 创建 course 表CREATETABLE`course`(`cno`CHAR(4)NOTNULL,`cname`VARCHAR(20)DEFAULTNULL,`cteacher`VARCHAR(20)DEFAULTNULL,`credit`INT(11)DEFAULTNULL,PRIMARYKEY(`cno`)USINGBTREE)ENGINE=INNODBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;-- 创建 sc 表CREATETABLE`sc`(`sno`CHAR(12)NOTNULL,`cno`CHAR(4)NOTNULL,`score`INT(11)DEFAULTNULL,PRIMARYKEY(`sno`,`cno`),CONSTRAINT`fk_sc_cno`FOREIGNKEY(`cno`)REFERENCES`course`(`cno`)ONDELETECASCADE,CONSTRAINT`fk_sc_sno`FOREIGNKEY(`sno`)REFERENCES`stu`(`sno`)ONDELETECASCADE)ENGINE=INNODBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;-- 插入 user_admin 表数据INSERTINTO`user_admin`(`username`,`password`)VALUES('admin','123');-- 插入 user_tch 表数据INSERTINTO`user_tch`(`username`,`password`)VALUES('tch','123');-- 插入 user_stu 表数据INSERTINTO`user_stu`(`username`,`password`)VALUES('stu','123');-- 插入 course 表数据INSERTINTO`course`(`cno`,`cname`,`cteacher`,`credit`)VALUES('0001','计算机应用基础','张老师',1),('0002','C++程序设计','李老师',2),('0003','数据库','王老师',3),('0004','计算机操作系统','赵老师',2),('0005','英语','陈老师',2),('0006','高等数学','刘老师',1),('0007','软件工程','孙老师',2),('0008','算法导论','周老师',3),('0009','Java面向对象程序设计','吴老师',4);-- 插入 stu 表数据INSERTINTO`stu`(`name`,`gender`,`sno`,`major`)VALUES('王大勇','男','202220010401','计算机科学与技术'),('李志成','男','202220010402','软件工程'),('赵小明','男','202220010403','计算机科学与技术'),('刘慧敏','女','202220010404','物联网工程'),('陈光明','男','202220010405','智能科学与技术'),('吴小丽','女','202220010406','智能科学与技术'),('林美玲','女','202220010407','计算机科学与技术');-- 插入 sc 表数据INSERTINTO`sc`(`sno`,`cno`,`score`)VALUES('202220010401','0001',85),('202220010401','0002',78),('202220010401','0003',92),('202220010402','0001',79),('202220010402','0004',85),('202220010403','0002',88),('202220010403','0005',90),('202220010404','0003',87),('202220010404','0006',95),('202220010405','0002',82),('202220010405','0007',88),('202220010406','0003',90),('202220010406','0008',92),('202220010407','0003',85),('202220010407','0009',89);

源码及项目配置

源码已经上传到Github上,可以直接下载用IDEA打开项目。

Github项目链接: https://github.com/HongsCai/StuSystem

可在

src/com/service/JdbcConfig

中进行数据库账号配置,在项目中,我将数据库用户名设置为

root

,数据库密码设置为

123456

,可以根据需要自行修改。

另外数据库配置文件在

src/resources/sql/

下。

初始在数据库中记录的登录账号:

管理员: 账号:

admin

密码:

123

教师: 账号:

tch

密码:

123

学生: 账号:

stu

密码:

123

结尾

Java期末课程设计,用时两三天简单设计实现了下学生选课及成绩管理系统(一点都不简单,界面改来改去折磨得狠,还得另学数据库)(下学期才学数据库,这学期课程设计就必须得用😨),界面不美观、单调,系统功能较少,还请多多见谅😭。前几个月开始学算法想卷竞赛,但是做题做不动,而且提升也慢😭,感觉脑袋笨笨的,被灵神群里的算法巨佬们吓晕😨,侥幸混了个传智杯国一和蓝桥杯国二,至于XCPC不敢碰瓷。不仅菜而且摆,现在收收心开始好好学Java😇🙏。

标签: java mysql 课程设计

本文转载自: https://blog.csdn.net/qq947467490/article/details/139754868
版权归原作者 功德箱我每年都投 所有, 如有侵权,请联系我们删除。

“基于Java + Swing + MySQL的学生选课及成绩管理系统(Java课程设计)”的评论:

还没有评论