• java学生成绩管理信息系统


    一、 引言

    学生成绩管理信息系统是一个基于Java Swing的桌面应用程序,旨在方便学校、老师和学生对学生成绩进行管理和查询。本文档将提供系统的详细说明,包括系统特性、使用方法和技术实现。

    二、 系统特性

    2.1 学生管理

    添加学生信息:录入学生基本信息,包括学号、姓名、班级等。
    编辑学生信息:修改学生已有信息,确保数据的准确性。
    删除学生信息:从系统中移除不再需要的学生记录。

    2.2 成绩管理

    添加成绩记录:输入学生的考试成绩,包括科目和分数。
    编辑成绩记录:修改学生的考试成绩,确保数据的实时性。
    删除成绩记录:从系统中删除不正确或不需要的成绩数据。

    2.3 查询与统计

    查询学生成绩:通过学号或姓名查询学生的考试成绩。
    班级成绩统计:按照班级对成绩进行统计和分析。
    科目成绩排名:查看某一科目的成绩排名。

    2.4不一一列举

    三、 技术实现

    3.1 Java Swing GUI

    系统使用Java Swing作为图形用户界面(GUI)的开发工具,提供直观的操作界面,包括表格、按钮和文本框等组件。

    3.2 MVC 架构

    系统采用MVC(Model-View-Controller)架构,将数据逻辑、用户界面和用户输入分离,提高系统的可维护性和可扩展性。

    四、数据库

    这是一个简单的学生成绩管理系统的MySQL数据库表结构。以下是每个表的简要说明:

    1. course 表:

      • 存储课程信息。
      • 字段:
        • cno: 课程编号 (Primary Key)
        • cname: 课程名称
      • 记录:
        • 三个课程的信息。
    2. grade 表:

      • 存储学生成绩信息。
      • 字段:
        • cno: 课程编号 (Foreign Key)
        • sno: 学生编号 (Foreign Key)
        • core: 成绩
      • 记录:
        • 一个学生的一个课程的成绩记录。
    3. student 表:

      • 存储学生信息。
      • 字段:
        • sno: 学生编号 (Primary Key)
        • sname: 学生姓名
        • classes: 班级
      • 记录:
        • 一个学生的信息。
    4. user 表:

      • 存储系统用户信息,用于登录。
      • 字段:
        • username: 用户名 (Primary Key)
        • password: 密码
      • 记录:
        • 包含两个用户的登录信息,一个是学生,另一个是管理员。

    这些表之间通过外键关联,例如 course 表中的 cnograde 表中的外键,关联学生成绩和课程信息。在 grade 表中,snocno 共同构成主键,确保每个学生在每门课程上只有一条记录。

    如果有进一步的问题或需要特定信息,请提出。

    五、程序截图

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

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

    六、代码

    StudentUpdate.java

    package com.scm;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ResourceBundle;
    
    public class DBUtils {
    	private static String driverClass;
    	private static String url;
    	private static String username;
    	private static String password;
    	static{
    		ResourceBundle bundle = ResourceBundle.getBundle("dbinfo");
    		 driverClass = bundle.getString("driverClass");
    		 url=bundle.getString("url");
    		 username=bundle.getString("username");
    		 password=bundle.getString("password");
    		try {
    			
    			Class.forName(driverClass);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static Connection getConnection(){
    		try {
    			return DriverManager.getConnection(url, username, password);
    		} catch (SQLException e) {
    			e.printStackTrace();
    			return null;
    		}
    	}
    	//�ر���Դ
    	public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
    		if(rs!=null){
    			try {
    				rs.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    		if(stmt!=null){
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    		if(conn!=null){
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    User.java

    package com.scm;
    
    
    public class User {
    
    	private String username;
    	private String password;
    	public User(){}
    	public User(String username, String password) {
    		super();
    		this.username = username;
    		this.password = password;
    	}
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    七、联系与交流

    q:969060742 文档、完整代码、sql
    
    • 1
  • 相关阅读:
    昨天的面试官居然是位小姐姐,聊了半个多小时的异常处理
    Android Jni添加打印(C++打印)
    pandas数据离散化
    Selenium Web自动化测试 —— 高级控件交互方法!
    Vue3 - 组件通信(子传父)
    OSI网络分层模型
    SQL 宽字节注入详解
    SAP CO系统配置-物料分类帐
    代码随想录|583. 两个字符串的删除操作,72. 编辑距离(有进一步理解到)
    高通mm-camera_setting
  • 原文地址:https://blog.csdn.net/m0_58065010/article/details/133527692