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

2024-06-28 1659阅读

目录

  • 开发工具
  • 系统结构
  • 功能展示
    • 登录与注册界面(通用)
    • 主界面(通用)
    • 学生信息查询界面(学生用户)
    • 学生信息管理界面(教师用户 管理员用户)
    • 学生选课界面(学生用户)
    • 学生课程成绩查询界面(学生用户)
    • 学生课程成绩管理界面(教师用户 管理员用户)
    • 学生课程管理界面(管理员用户)
    • 修改密码界面(通用)
    • 数据库设置
      • 数据库E-R图
      • 创建和管理数据库的SQL命令
      • 源码及项目配置
      • 结尾

        开发工具

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

        系统结构

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

        功能展示

        登录与注册界面(通用)

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

        主界面(通用)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        修改密码界面(通用)

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

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

        数据库设置

        数据库E-R图

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

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

        -- 创建数据库并使用 utf8mb4 字符集和排序规则
        CREATE DATABASE studata CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
        USE studata;
        -- 创建 user_stu 表
        CREATE TABLE `user_stu` (
            `username` VARCHAR(30) PRIMARY KEY,
            `password` VARCHAR(30) NOT NULL
        ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        -- 创建 user_tch 表
        CREATE TABLE `user_tch` (
            `username` VARCHAR(30) PRIMARY KEY,
            `password` VARCHAR(30) NOT NULL
        ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        -- 创建 user_admin 表
        CREATE TABLE `user_admin` (
            `username` VARCHAR(30) PRIMARY KEY,
            `password` VARCHAR(30) NOT NULL
        ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        -- 创建 stu 表
        CREATE TABLE `stu` (
            `name` VARCHAR(20) NOT NULL,
            `gender` CHAR(2) NOT NULL,
            `sno` CHAR(12) NOT NULL UNIQUE PRIMARY KEY,
            `major` VARCHAR(12) DEFAULT NULL
        ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        -- 创建 course 表
        CREATE TABLE `course` (
            `cno` CHAR(4) NOT NULL,
            `cname` VARCHAR(20) DEFAULT NULL,
            `cteacher` VARCHAR(20) DEFAULT NULL,
            `credit` INT(11) DEFAULT NULL,
            PRIMARY KEY (`cno`) USING BTREE
        ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        -- 创建 sc 表
        CREATE TABLE `sc` (
            `sno` CHAR(12) NOT NULL,
            `cno` CHAR(4) NOT NULL,
            `score` INT(11) DEFAULT NULL,
            PRIMARY KEY (`sno`, `cno`),
            CONSTRAINT `fk_sc_cno` FOREIGN KEY (`cno`) REFERENCES `course` (`cno`) ON DELETE CASCADE,
            CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`) ON DELETE CASCADE
        ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        -- 插入 user_admin 表数据
        INSERT INTO `user_admin` (`username`, `password`) VALUES ('admin', '123');
        -- 插入 user_tch 表数据
        INSERT INTO `user_tch` (`username`, `password`) VALUES ('tch', '123');
        -- 插入 user_stu 表数据
        INSERT INTO `user_stu` (`username`, `password`) VALUES ('stu', '123');
        -- 插入 course 表数据
        INSERT INTO `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 表数据
        INSERT INTO `stu` (`name`, `gender`, `sno`, `major`) VALUES
        ('王大勇', '男', '202220010401', '计算机科学与技术'),
        ('李志成', '男', '202220010402', '软件工程'),
        ('赵小明', '男', '202220010403', '计算机科学与技术'),
        ('刘慧敏', '女', '202220010404', '物联网工程'),
        ('陈光明', '男', '202220010405', '智能科学与技术'),
        ('吴小丽', '女', '202220010406', '智能科学与技术'),
        ('林美玲', '女', '202220010407', '计算机科学与技术');
        -- 插入 sc 表数据
        INSERT INTO `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😇🙏。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]