100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 数据库课程设计——学生信息管理系统

数据库课程设计——学生信息管理系统

时间:2023-01-09 06:56:25

相关推荐

数据库课程设计——学生信息管理系统

学生信息管理系统

0 前言0.1效果演示0.2 开发工具0.3 创新点1.系统需求分析1.1 系统功能分析1.2 系统功能模块设计(划分)1.3 与其它系统的关系1.4 数据流程图2.数据库设计2.1 数据库需求分析2.2 数据库概念结构设计2.3数据库逻辑结构设计2.4 数据库的建立3.各功能模块的设计与实现3.1 功能说明3.2 用户界面设计3.3 各功能模块的实现4.系统实现4.0 数据库表的建立4.1数据库连接池和数据操作模块4.2 MD5加密模块4.3 登录模块4.4 验证模块4.5 学生个人信息输入模块4.6学籍变更情况输入4.7 奖励情况输入4.8 处罚情况输入4.9 学生个人情况查询和修改5.0 后序

0 前言

需要完整代码请点赞,并评论区留言

0.1效果演示

演示视频

0.2 开发工具

开发语言:Java 、Java GUI、MySQL开发工具:IDEA、Navicat

0.3 创新点

采用MD5文本摘要算法对用户账号和密码进行加密存储使用exe4j对系统代码进行打包成exe可执行文件

1.系统需求分析

学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。

1.1 系统功能分析

本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。系统的主要功能有:学生个人信息输入,包括:姓名、性别、院系、生日、籍贯、生源所在地等。学生流动情况的输入,包括:转系、休学、复学、退学、毕业。奖惩情况的输入。学生个人情况查询和修改,包括流动情况和奖罚情况。

1.2 系统功能模块设计(划分)

根据系统功能要求可以将系统分解成几个模块来分别设计应用程序界面,如图1 所示。

1.3 与其它系统的关系

学生信息管理系统是校园信息管理系统的一个组成部分。它为其它系统,如班级信息管理系统、

教学管理系统、成绩单系统、宿舍分配系统等,提供学生的基本情况。同时需要其他系统提供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数据。

1.4 数据流程图

学生信息管理系统的数据流程如图 2 所示。

2.数据库设计

2.1 数据库需求分析

根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效。奖励记录:记录号、级别、奖励对象、记录时间、详细描述。学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。

所需的外部数据支持:

班级:班级编号、班级名称、所属院系。院系:代码、名称。

2.2 数据库概念结构设计

图 3 是本系统所需数据的E-R 模型图。

2.3数据库逻辑结构设计

根据系统 E-R 图,需要设计 4 个数据表来存放学生的信息。为了系统的完整,系统中包括了应用程序设计中所需的 2 个外部数据表。为了优化数据表结构,部分字段采用代码形

式,因此需要附加 3 个代码表。这 9 个数据表的结构如表 1 到表 9 所示。

表 1 STUDENT 学生个人信息表

表 2 CHANGE 学籍变更信息表

表 3 REWARD 奖励记录信息表

表 4 PUNISHMENT 处罚记录信息表

表 5 DEPARTMENT 院系信息表

表 6 CLASS 班级信息表

表 7 CHANGE_CODE 学籍变动代码表

表 8 REWARD_LEVELS 奖励等级代码表

表 9 PUNISH_LEVELS 处罚等级代码表

2.4 数据库的建立

2.4.1 数据库的建立(请设计者完成)

2.4.2 初始数据的输入

数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等。

学籍变更代码和奖惩级别的主关键字 CODE 从 0 开始用阿拉伯数字依次编号,便于程序设计时,采用单选按钮来选择。

本系统中所用到的学籍变更和奖惩级别代码如表 10 至表 12 所示(请设计者完成这些数据表的逻辑结构)。

表10 学籍变更代码表

表11 奖励级别代码

表12 处罚级别代码

(以下各部分请设计者完成)。

3.各功能模块的设计与实现

3.1 功能说明

1、学生个人信息输入

2、学籍变更情况的输入

3、奖励情况的输入

4、处罚情况的输入

5、学生个人情况查询和修改

3.2 用户界面设计

完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。由于本系统管理内容比较简单,且为校园管理信息系统的一部分,因此使用一个窗体不同的标签页来完成系统要求的 5 项功能。

我们把学生信息管理系统的窗体分成____个主要部分,如图____所示。

1、应用程序主窗体的创建

2、学生个人信息输入界面

3、学籍变更情况输入界面

4、奖励情况输入界面

5、处罚情况输入界面

6、学生个人情况查询和修改界面

3.3 各功能模块的实现

1、学生个人信息输入

2、学籍变更情况输入

3、奖励情况输入

4、处罚情况输入

5、学生个人情况查询和修改

4.系统实现

4.0 数据库表的建立

/*Navicat Premium Data TransferSource Server : conn-localSource Server Type : MySQLSource Server Version : 80025Source Host : localhost:3306Source Schema : mydb7Target Server Type : MySQLTarget Server Version : 80025File Encoding : 65001Date: 02/12/ 17:45:57*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for change_code-- ----------------------------DROP TABLE IF EXISTS `change_code`;CREATE TABLE `change_code` (`code` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '学籍变动代码(主键)',`desc` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',PRIMARY KEY (`code`) USING BTREE,INDEX `desc`(`desc`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of change_code-- ----------------------------INSERT INTO `change_code` VALUES ('1', '休学');INSERT INTO `change_code` VALUES ('2', '复学');INSERT INTO `change_code` VALUES ('4', '毕业');INSERT INTO `change_code` VALUES ('0', '转系');INSERT INTO `change_code` VALUES ('3', '退学');-- ------------------------------ Table structure for class-- ----------------------------DROP TABLE IF EXISTS `class`;CREATE TABLE `class` (`class_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '编号(主关键字)',`class_name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级名称',`monitor_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班长学号',PRIMARY KEY (`class_id`) USING BTREE,INDEX `class_ibfk_1`(`monitor_id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of class-- ----------------------------INSERT INTO `class` VALUES ('11', '计科一班', '');INSERT INTO `class` VALUES ('12', '计科二班', NULL);INSERT INTO `class` VALUES ('21', '计科三班', NULL);INSERT INTO `class` VALUES ('22', '计科四班', '');INSERT INTO `class` VALUES ('31', '计科五班', NULL);INSERT INTO `class` VALUES ('32', '计科智能一班', '');INSERT INTO `class` VALUES ('41', '计科智能二班', NULL);INSERT INTO `class` VALUES ('42', '计科智能三班', NULL);INSERT INTO `class` VALUES ('43', '大数据一班', '');INSERT INTO `class` VALUES ('51', '大数据二班', '');INSERT INTO `class` VALUES ('52', '大数据三班', NULL);INSERT INTO `class` VALUES ('53', '软件一班', NULL);-- ------------------------------ Table structure for dept-- ----------------------------DROP TABLE IF EXISTS `dept`;CREATE TABLE `dept` (`dept_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '编号(主关键字)',`dept_name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业名称',PRIMARY KEY (`dept_id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of dept-- ----------------------------INSERT INTO `dept` VALUES ('1', '计科');INSERT INTO `dept` VALUES ('2', '软件');INSERT INTO `dept` VALUES ('3', '信安');INSERT INTO `dept` VALUES ('4', '物联网');INSERT INTO `dept` VALUES ('5', '大数据');-- ------------------------------ Table structure for punish-- ----------------------------DROP TABLE IF EXISTS `punish`;CREATE TABLE `punish` (`rec_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '记录号(主关键字)',`stu_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学号(外部关键字)',`levels` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '级别代码(外部关键字)',`rec_time` datetime(6) NULL DEFAULT NULL COMMENT '记录时间',`enable` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否生效(T、F)',`desc` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',PRIMARY KEY (`rec_id`) USING BTREE,INDEX `punish_ibfk_1`(`stu_id`) USING BTREE,INDEX `punish_ibfk_2`(`levels`) USING BTREE,CONSTRAINT `punish_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `punish_ibfk_2` FOREIGN KEY (`levels`) REFERENCES `punish_levels` (`punish_code`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of punish-- ----------------------------INSERT INTO `punish` VALUES ('1', '44201', '0', '-06-01 00:00:00.000000', 'T', NULL);INSERT INTO `punish` VALUES ('2', '55101', '1', '-06-01 00:00:00.000000', 'T', NULL);-- ------------------------------ Table structure for punish_levels-- ----------------------------DROP TABLE IF EXISTS `punish_levels`;CREATE TABLE `punish_levels` (`punish_code` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`desc` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`punish_code`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of punish_levels-- ----------------------------INSERT INTO `punish_levels` VALUES ('0', '警告');INSERT INTO `punish_levels` VALUES ('1', '严重警告');INSERT INTO `punish_levels` VALUES ('2', '记过');INSERT INTO `punish_levels` VALUES ('3', '记大过');INSERT INTO `punish_levels` VALUES ('4', '开除');-- ------------------------------ Table structure for reward-- ----------------------------DROP TABLE IF EXISTS `reward`;CREATE TABLE `reward` (`rec_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '记录号(主关键字)',`stu_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学号(外部关键字)',`levels` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '级别代码(外部关键字)',`rec_time` datetime(6) NULL DEFAULT NULL COMMENT '记录时间',`enable` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否生效(T、F)',`desc` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',PRIMARY KEY (`rec_id`) USING BTREE,INDEX `reward_ibfk_1`(`stu_id`) USING BTREE,INDEX `reward_ibfk_2`(`levels`) USING BTREE,CONSTRAINT `reward_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `reward_ibfk_2` FOREIGN KEY (`levels`) REFERENCES `reward_levels` (`reward_code`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of reward-- ----------------------------INSERT INTO `reward` VALUES ('1', '11101', '0', '-05-13 00:00:00.000000', 'T', NULL);INSERT INTO `reward` VALUES ('2', '33201', '6', '-05-13 00:00:00.000000', 'T', NULL);-- ------------------------------ Table structure for reward_levels-- ----------------------------DROP TABLE IF EXISTS `reward_levels`;CREATE TABLE `reward_levels` (`reward_code` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`desc` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (`reward_code`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of reward_levels-- ----------------------------INSERT INTO `reward_levels` VALUES ('0', '校特等奖学金');INSERT INTO `reward_levels` VALUES ('1', '校一等奖学金');INSERT INTO `reward_levels` VALUES ('2', '校二等奖学金');INSERT INTO `reward_levels` VALUES ('3', '校三等奖学金');INSERT INTO `reward_levels` VALUES ('4', '系一等奖学金');INSERT INTO `reward_levels` VALUES ('5', '系二等奖学金');INSERT INTO `reward_levels` VALUES ('6', '系三等奖学金');-- ------------------------------ Table structure for stu_change-- ----------------------------DROP TABLE IF EXISTS `stu_change`;CREATE TABLE `stu_change` (`rec_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '记录号(主关键字)',`stu_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '学号(外部关键字)',`achange` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '变更代码(外部关键字)',`rec_time` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '记录时间',`desc` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',PRIMARY KEY (`rec_id`) USING BTREE,INDEX `stu_id`(`stu_id`) USING BTREE,INDEX `change`(`achange`) USING BTREE,CONSTRAINT `stu_change_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `stu_change_ibfk_2` FOREIGN KEY (`achange`) REFERENCES `change_code` (`code`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of stu_change-- ----------------------------INSERT INTO `stu_change` VALUES ('1', '33201', '1', '2002-5-24', '');INSERT INTO `stu_change` VALUES ('2', '55101', '3', '2002-7-9', '');INSERT INTO `stu_change` VALUES ('3', '11101', '2', '-6-19', '');-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`stu_id` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '学号(主键)',`name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',`sex` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',`class` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级编号(外键)',`dept` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '系部编号(外键)',`birth` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生日',`home_place` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '籍贯',PRIMARY KEY (`stu_id`) USING BTREE,INDEX `student_ibfk_1`(`class`) USING BTREE,INDEX `student_ibfk_2`(`dept`) USING BTREE,CONSTRAINT `student_ibfk_1` FOREIGN KEY (`class`) REFERENCES `class` (`class_id`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `student_ibfk_2` FOREIGN KEY (`dept`) REFERENCES `dept` (`dept_id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of student-- ----------------------------INSERT INTO `student` VALUES ('11101', '鲁班', '男', '11', '1', '2001-1-14', '湖南衡阳');INSERT INTO `student` VALUES ('33201', '王昭君', '女', '32', '3', '2001-1-3', '湖南长沙');INSERT INTO `student` VALUES ('44201', '马超', '男', '42', '4', '2001-1-9', '湖南湘西');INSERT INTO `student` VALUES ('55101', '花木兰', '女', '51', '5', '-2-2', '湖南怀化');INSERT INTO `student` VALUES ('55102', '镜', '女', '51', '5', '2001-1-2', '湖北武汉');INSERT INTO `student` VALUES ('55103', '凯', '男', '51', '5', '2001-5-9', '湖北武昌');INSERT INTO `student` VALUES ('55104', '关羽', '男', '51', '5', '1000-5-9', '湖北襄阳');-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`username`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('3da0b84a100c87800f4a19f305df23cd', 'e10adc3949ba59abbe56e057f20f883e');SET FOREIGN_KEY_CHECKS = 1;

4.1数据库连接池和数据操作模块

package com.exception.demo.DB;import java.sql.*;public class DbProcess{Connection connection = null;ResultSet rs = null;Statement statement = null;//mysql数据库urlString urlMySql ="jdbc:mysql://localhost:3306/mydb7?useSSL=false&serverTimezone=UTC";public DbProcess() {try {Class.forName("com.mysql.cj.jdbc.Driver");System.out.println("mysql数据库驱动加载成功");}catch(java.lang.ClassNotFoundException e) {e.printStackTrace();}}public void connect(){try{//mysql数据库connection = DriverManager.getConnection(urlMySql,"root","123456");//sqlserver数据库//connection = DriverManager.getConnection(urlSqlServer);if(connection!=null){System.out.println("数据库连接成功");}}catch(Exception e){e.printStackTrace();}}public void disconnect(){try{if(connection != null){connection.close();connection = null;}}catch(Exception e){e.printStackTrace();}}public ResultSet executeQuery(String sql) {try {System.out.println("executeQuery(). sql = " + sql);PreparedStatement pstm = connection.prepareStatement(sql);// 执行查询rs = pstm.executeQuery();}catch(SQLException ex) {ex.printStackTrace();}return rs;}//插入//executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。//executeUpdate用于执行 INSERT、UPDATE 或 DELETE 语句//以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。//执行增、删、改语句的方法public int executeUpdate(String sql) {int count = 0;connect();try {Statement stmt = connection.createStatement();count = stmt.executeUpdate(sql);}catch(SQLException ex) {System.err.println(ex.getMessage());}disconnect();return count;}}

4.2 MD5加密模块

package com.exception.demo.utils;//import org.springframework.util.DigestUtils;import java.security.MessageDigest;public class MD5Util {/**** MD5加码 生成32位md5码*/public static String getMD5Code(String message) {String md5Str = "";try {//创建MD5算法消息摘要MessageDigest md = MessageDigest.getInstance("MD5");//生成的哈希值的字节数组byte[] md5Bytes = md.digest(message.getBytes());md5Str = bytes2Hex(md5Bytes);}catch(Exception e) {e.printStackTrace();}return md5Str;}// 2进制转16进制public static String bytes2Hex(byte[] bytes) {StringBuffer result = new StringBuffer();int temp;try {for (int i = 0; i < bytes.length; i++) {temp = bytes[i];if(temp < 0) {temp += 256;}if (temp < 16) {result.append("0");}result.append(Integer.toHexString(temp));}} catch (Exception e) {e.printStackTrace();}return result.toString();}/*** 加密解密算法 执行一次加密,两次解密*/public static String convertMD5(String inStr) {char[] a = inStr.toCharArray();for (int i = 0; i < a.length; i++) {a[i] = (char) (a[i] ^ 't');}String s = new String(a);return s;}// 测试主函数// public static void main(String args[]) {// String username = "易霭珞";// System.out.println("原始:" + username);// System.out.println("MD5后:" + getMD5Code(username));// System.out.println("加密的:" + convertMD5(username));// System.out.println("解密的:" + convertMD5(convertMD5(username)));// String passowrd = "123456";// System.out.println("原始:" + passowrd);// System.out.println("MD5后:" + getMD5Code(passowrd));// System.out.println("加密的:" + convertMD5(passowrd));// System.out.println("解密的:" + convertMD5(convertMD5(passowrd)));// }}

4.3 登录模块

package com.exception.demo.view;import javax.swing.*;import java.awt.*;public class Login extends JFrame {JLabel nameLabel = new JLabel("学生信息管理系统",JLabel.CENTER);SpringLayout springLayout = new SpringLayout();JPanel centerPanel = new JPanel(springLayout);JLabel userNameLabel = new JLabel("用户名");JTextField userText = new JTextField();JLabel powLabel = new JLabel("密码");JPasswordField powField = new JPasswordField();JButton loginBtn = new JButton("登录");JButton reseBtn = new JButton("取消");verify verify;public Login(){super("管理员登录页");verify = new verify(this);Container contentPane = getContentPane();nameLabel.setFont(new Font("黑体",Font.PLAIN,40));nameLabel.setPreferredSize(new Dimension(0,80));Font centerFont = new Font("楷体",Font.PLAIN,20);userNameLabel.setFont(centerFont);userText.setPreferredSize(new Dimension(200,30));powLabel.setFont(centerFont);powField.setPreferredSize(new Dimension(200,30));loginBtn.setFont(centerFont);reseBtn.setFont(centerFont);centerPanel.add(userNameLabel);centerPanel.add(userText);centerPanel.add(powLabel);centerPanel.add(powField);loginBtn.addActionListener(verify);centerPanel.add(loginBtn);reseBtn.addActionListener(verify);centerPanel.add(reseBtn);layoutCenter();contentPane.add(nameLabel,BorderLayout.NORTH);contentPane.add(centerPanel,BorderLayout.CENTER);setSize(600,400);setLocationRelativeTo(null);setDefaultCloseOperation(EXIT_ON_CLOSE);setResizable(false);setVisible(true);}private void layoutCenter() {//弹簧布局Spring childWidth = Spring.sum(Spring.sum(Spring.width(userNameLabel),Spring.width(userText)),Spring.constant(20));int offsetX = childWidth.getValue()/2;springLayout.putConstraint(SpringLayout.WEST,userNameLabel,-offsetX,SpringLayout.HORIZONTAL_CENTER,centerPanel);springLayout.putConstraint(SpringLayout.NORTH,userNameLabel,20,SpringLayout.NORTH,centerPanel);//userTextspringLayout.putConstraint(SpringLayout.WEST,userText,20,SpringLayout.EAST,userNameLabel);springLayout.putConstraint(SpringLayout.NORTH,userText,0,SpringLayout.NORTH,userNameLabel);//powLabelspringLayout.putConstraint(SpringLayout.EAST,powLabel,0,SpringLayout.EAST,userNameLabel);springLayout.putConstraint(SpringLayout.NORTH,powLabel,20,SpringLayout.SOUTH,userNameLabel);//powFiledspringLayout.putConstraint(SpringLayout.WEST,powField,20,SpringLayout.EAST,powLabel);springLayout.putConstraint(SpringLayout.NORTH,powField,0,SpringLayout.NORTH,powLabel);//loginBtnspringLayout.putConstraint(SpringLayout.WEST,loginBtn,50,SpringLayout.WEST,powLabel);springLayout.putConstraint(SpringLayout.NORTH,loginBtn,20,SpringLayout.SOUTH,powLabel);//reseBtnspringLayout.putConstraint(SpringLayout.WEST,reseBtn,50,SpringLayout.EAST,loginBtn);springLayout.putConstraint(SpringLayout.NORTH,reseBtn,0,SpringLayout.NORTH,loginBtn);}public JTextField getUserText() {return userText;}public JPasswordField getPowField() {return powField;}}

4.4 验证模块

package com.exception.demo.view;import com.exception.demo.DB.DbProcess;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import static com.exception.demo.utils.MD5Util.getMD5Code;public class verify implements ActionListener {private Login login;public verify(Login login){this.login = login;}@Overridepublic void actionPerformed(ActionEvent e) {JButton jButton = (JButton)e.getSource();String text = jButton.getText();if("重置".equals(text)){login.getUserText().setText("");login.getPowField().setText("");}else if("登录".equals(text)){String user = login.getUserText().getText();//输入框char[] chars = login.getPowField().getPassword();String pwd = new String(chars);//输入框String username = queryProcess().subList(0,1).toString();//数据库String password = queryProcess().subList(1,2).toString();//数据库String userName = username.substring(1,username.length()-1);String passWord = password.substring(1,password.length()-1);if(getMD5Code(user).equals(userName)&&getMD5Code(pwd).equals(passWord)){JOptionPane.showMessageDialog(null,"欢迎管理员进入系统!");new MyDesign();login.dispose();}else if(!getMD5Code(user).equals(userName)){JOptionPane.showMessageDialog(null,"用户不存在!!!");}else if(!getMD5Code(pwd).equals(passWord)){JOptionPane.showMessageDialog(null,"密码错误!!!");}}}public ArrayList queryProcess() {ArrayList<String> list1 = new ArrayList<String>();try {// 建立查询条件String sql = "select * from user;";System.out.println("queryProcess(). sql = " + sql);DbProcess dbProcess = new DbProcess();dbProcess.connect();ResultSet rs = dbProcess.executeQuery(sql);// 将查询获得的记录数据,转换成适合生成JTable的数据形式while (rs.next()) {list1.add(rs.getString("username"));list1.add(rs.getString("password"));}} catch (SQLException e) {e.printStackTrace();}return list1;}}

4.5 学生个人信息输入模块

4.6学籍变更情况输入

4.7 奖励情况输入

4.8 处罚情况输入

4.9 学生个人情况查询和修改

5.0 后序

由于4.5-4.9模块实现的代码篇幅过长,需要完整代码请点赞,并评论区留言

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。