Java实现简单学生信息管理系统

目录

一、项目介绍

二、系统架构

三、运行环境

四、安装与配置

1. 安装MySQL

2. 导入数据脚本

3. 配置数据库连接

4. 编译与运行

五、系统功能

1. 用户登录

管理员登录

六、系统截图


一、项目介绍

在当今信息化社会,学生信息管理变得越来越重要。为了提高工作效率,我们设计了一个简单易用的学生信息管理系统。本系统采用Java语言编写,利用MySQL作为后端数据库存储学生信息。本文档将详细介绍如何运行和使用该系统。

二、系统架构

本系统主要由以下几个模块组成:

  • DAO层:负责与数据库交互,处理增删改查操作。

  • 实体层:封装学生、课程和成绩等实体对象。

  • 工具类:提供一些通用的功能,如数据库连接池等。

  • 视图层:展示给用户的界面,包括登录页面和其他功能页面。

图片

三、运行环境

  • 操作系统:Windows/Linux/Mac OS X

  • 开发工具:Eclipse/IntelliJ IDEA

  • 数据库:MySQL 8.x

  • Java版本:Java 8及以上

四、安装与配置

1. 安装MySQL

首先需要安装MySQL数据库服务器,并创建一个新的数据库student

create database student;
use student;

2. 导入数据脚本

将附带的student.sql文件导入到新创建的数据库中,初始化表结构和初始数据。

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
                         `Aid` int NOT NULL,
                         `Aname` varchar(30) NOT NULL,
                         `Apwd` varchar(10) NOT NULL,
                         PRIMARY KEY (`Aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO `admin` VALUES ('123456', '管理员', '123456');

DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
                          `Cnum` int NOT NULL AUTO_INCREMENT,
                          `Cno` int NOT NULL,
                          `Cname` varchar(20) NOT NULL,
                          `Ctime` int NOT NULL,
                          `Ccredit` int NOT NULL,
                          PRIMARY KEY (`Cnum`,`Cno`),
                          KEY `Cname` (`Cname`),
                          KEY `Cno` (`Cno`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3;

INSERT INTO `course` VALUES ('1', '1001', '数据库原理', '48', '3');
INSERT INTO `course` VALUES ('2', '1002', '操作系统', '64', '4');
INSERT INTO `course` VALUES ('3', '1003', '计算机网络', '64', '4');
INSERT INTO `course` VALUES ('4', '1004', 'java', '64', '4');
INSERT INTO `course` VALUES ('6', '1005', 'python', '48', '3');
INSERT INTO `course` VALUES ('7', '1006', '软件工程', '48', '3');


DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
                         `Sno` int NOT NULL,
                         `Sname` varchar(20) NOT NULL,
                         `Cno` int NOT NULL,
                         `Cname` varchar(20) DEFAULT NULL,
                         `Sscore` decimal(10,0) DEFAULT '0',
                         `Rescore` decimal(10,0) DEFAULT '0',
                         PRIMARY KEY (`Sno`,`Cno`),
                         KEY `Cname` (`Cname`),
                         KEY `Cno` (`Cno`),
                         KEY `Sname` (`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO `score` VALUES ('20210601', '李伟', '1001', '数据库原理', '100', '0');
INSERT INTO `score` VALUES ('20210601', '李伟', '1002', '操作系统', '100', '0');
INSERT INTO `score` VALUES ('20210601', '李伟', '1003', '计算机网络', '100', '0');
INSERT INTO `score` VALUES ('20210601', '李伟', '1004', 'java', '100', '0');
INSERT INTO `score` VALUES ('20210602', '王伟', '1001', '数据库原理', '100', '0');
INSERT INTO `score` VALUES ('20210602', '王伟', '1004', 'java', '100', '0');
INSERT INTO `score` VALUES ('20210603', '刘伟', '1004', 'java', '100', '0');
INSERT INTO `score` VALUES ('20210604', '刘伟', '1001', '数据库原理', '100', '0');


DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
                           `Sno` int NOT NULL,
                           `Sname` varchar(30) NOT NULL,
                           `Sgender` char(2) NOT NULL,
                           `Sage` int NOT NULL,
                           `Sbirthday` datetime DEFAULT '1999-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
                           `Sclass` varchar(10) NOT NULL,
                           `Smajor` varchar(20) NOT NULL,
                           `Sdept` varchar(20) NOT NULL,
                           `Spwd` varchar(10) NOT NULL DEFAULT '123',
                           PRIMARY KEY (`Sno`),
                           KEY `Sname` (`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO `student` VALUES ('20210601', '李伟', '男', '20', '1999-01-01 00:00:00', '2021061', '软件工程', '计算机学院', '123');
INSERT INTO `student` VALUES ('20210602', '王伟', '女', '20', '2021-06-26 21:29:26', '2021061', '软件工程', '计算机学院', '123');
INSERT INTO `student` VALUES ('20210603', '刘伟', '男', '20', '2021-06-26 21:29:30', '2021062', '软件工程', '计算机学院', '123');
INSERT INTO `student` VALUES ('20210604', '赵伟', '男', '20', '2021-06-26 21:29:32', '2021062', '软件工程', '计算机学院', '123');

3. 配置数据库连接

打开src/com/utils/DB.java文件,在其中配置你的MySQL数据库连接参数:

public static String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8";
public static String user = "root"; // 更改为你的MySQL用户名
public static String password = "password"; // 更改为你的MySQL密码

4. 编译与运行

在IDE中编译整个项目,然后找到src/com/view/Login.java文件,点击运行按钮即可启动系统。

图片

五、系统功能

1. 用户登录

系统支持两种身份登录:管理员和普通学生。管理员拥有全部权限,可以查看、编辑和删除所有学生的信息;而学生只能查看自己的信息。

管理员登录

图片

学生登录

图片

2. 功能菜单

系统提供了以下功能:

  • 添加学生信息

  • 修改学生信息

  • 删除学生信息

  • 查看学生列表

  • 添加课程信息

  • 修改课程信息

  • 删除课程信息

  • 查看课程列表

  • 添加成绩记录

  • 修改成绩记录

  • 删除成绩记录

  • 查看成绩列表

六、系统截图

图片

 

图片

图片

图片

图片

图片

图片

图片

图片

七、部分代码示例

  • 管理员类(Admin)

    package com.system.entity;
    
    public class Admin {
    
       private int aId;
       private String aName;
       private String aPwd;
    
       public Admin() {
          super();
       }
    
       public Admin(int aId, String aName, String aPwd) {
          super();
          this.aId = aId;
          this.aName = aName;
          this.aPwd = aPwd;
       }
    
       public int getaId() {
          return aId;
       }
    
       public void setaId(int aId) {
          this.aId = aId;
       }
    
       public String getaName() {
          return aName;
       }
    
       public void setaName(String aName) {
          this.aName = aName;
       }
    
       public String getaPwd() {
          return aPwd;
       }
    
       public void setaPwd(String aPwd) {
          this.aPwd = aPwd;
       }
    
       @Override
       public String toString() {
          return "Admin [aId=" + aId + ", aName=" + aName + ", aPwd=" + aPwd + "]";
       }
    
    }

  • 课程类(Course)

    package com.system.entity;
    
    public class Course {
    
       private String cnum;
       private String cno;
       private String cname;
       private String ccredit;
       private String ctime;
    
       public Course() {
          super();
       }
    
       public Course(String cnum, String cno, String cname, String ccredit, String ctime) {
          super();
          this.cnum = cnum;
          this.cno = cno;
          this.cname = cname;
          this.ccredit = ccredit;
          this.ctime = ctime;
       }
    
       public String getCnum() {
          return cnum;
       }
    
       public void setCnum(String cnum) {
          this.cnum = cnum;
       }
    
       public String getCno() {
          return cno;
       }
    
       public void setCno(String cno) {
          this.cno = cno;
       }
    
       public String getCname() {
          return cname;
       }
    
       public void setCname(String cname) {
          this.cname = cname;
       }
    
       public String getCcredit() {
          return ccredit;
       }
    
       public void setCcredit(String ccredit) {
          this.ccredit = ccredit;
       }
    
       public String getCtime() {
          return ctime;
       }
    
       public void setCtime(String ctime) {
          this.ctime = ctime;
       }
    
       @Override
       public String toString() {
          return "Course [cnum=" + cnum + ", cno=" + cno + ", cname=" + cname + ", ccredit=" + ccredit + ", ctime="
                + ctime + "]";
       }
    }
  • 成绩类(Score)

    package com.system.entity;
    public class Score {
    
       private String Sno;
       private String Sname;
       private String Cno;
       private String Cname;
       private String Sscore;
       private String Rescore;
    
       public Score() {
          super();
       }
    
       public Score(String sno, String sname, String cno, String cname, String sscore, String rescore) {
          super();
          Sno = sno;
          Sname = sname;
          Cno = cno;
          Cname = cname;
          Sscore = sscore;
          Rescore = rescore;
       }
    
       public String getSno() {
          return Sno;
       }
    
       public void setSno(String sno) {
          Sno = sno;
       }
    
       public String getSname() {
          return Sname;
       }
    
       public void setSname(String sname) {
          Sname = sname;
       }
    
       public String getCno() {
          return Cno;
       }
    
       public void setCno(String cno) {
          Cno = cno;
       }
    
       public String getCname() {
          return Cname;
       }
    
       public void setCname(String cname) {
          Cname = cname;
       }
    
       public String getSscore() {
          return Sscore;
       }
    
       public void setSscore(String sscore) {
          Sscore = sscore;
       }
    
       public String getRescore() {
          return Rescore;
       }
    
       public void setRescore(String rescore) {
          Rescore = rescore;
       }
    
       @Override
       public String toString() {
          return "Score [Sno=" + Sno + ", Sname=" + Sname + ", Cno=" + Cno + ", Cname=" + Cname + ", Sscore=" + Sscore
                + ", Rescore=" + Rescore + "]";
       }
    
    }

八、结语

通过以上步骤,您已经成功搭建起了学生信息管理系统。希望这个简单的系统能够帮助您更有效地管理学生信息。如果在使用过程中有任何疑问或建议,请随时联系我们。

源码获取

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值