Eclipse+Java+Swing实现学生成绩管理系统

Java+Swing实现学生成绩管理系统

  • 一、系统介绍
  • 二、系统展示
    • 1.登录页
    • 2.主页面
    • 3.查询学生成绩
    • 4.修改学生成绩
    • 5.添加学生成绩
    • 6.修改系统密码
  • 三、系统实现
    • Student.java
    • StudentDao.java
    • LoginFrame.java
    • MainMenuFrame.java
  • 四、其他
    • 1.其他系统实现
    • 2.获取源码

一、系统介绍

本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,界面良好。

二、系统展示

1.登录页

Eclipse+Java+Swing实现学生成绩管理系统_第1张图片

2.主页面

Eclipse+Java+Swing实现学生成绩管理系统_第2张图片

3.查询学生成绩

Eclipse+Java+Swing实现学生成绩管理系统_第3张图片

4.修改学生成绩

Eclipse+Java+Swing实现学生成绩管理系统_第4张图片

5.添加学生成绩

Eclipse+Java+Swing实现学生成绩管理系统_第5张图片

6.修改系统密码

Eclipse+Java+Swing实现学生成绩管理系统_第6张图片

三、系统实现

Student.java

package com.sjsq.model;

import java.util.ArrayList;
import java.util.List;

/**
 * 学生实体类
 * @author shuijianshiqing
 *
 */

public class Student {
     

	// 学号
	private String sId;
	// 姓名
	private String sName;
	// 性别
	private String sSex;
	// 学院
	private String sCollege;
	private String sC;
	private String sMath;
	private String sEnglish;
	private String sChinese;
	private String sJava;

	
	
	public Student() {
     
		super();
	}

	public Student(String sId, String sName, String sSex, String sCollege, String sC, String sMath,
			String sEnglish, String sChinese, String sJava) {
     
		super();
		this.sId = sId;
		this.sName = sName;
		this.sSex = sSex;
		this.sCollege = sCollege;
		this.sC = sC;
		this.sMath = sMath;
		this.sEnglish = sEnglish;
		this.sChinese = sChinese;
		this.sJava = sJava;
	}

	public static List<Student> students=new ArrayList<Student>();
	
	public String getsId() {
     
		return sId;
	}

	public void setsId(String sId) {
     
		this.sId = sId;
	}

	public String getsName() {
     
		return sName;
	}

	public void setsName(String sName) {
     
		this.sName = sName;
	}

	public String getsSex() {
     
		return sSex;
	}

	public void setsSex(String sSex) {
     
		this.sSex = sSex;
	}

	public String getsCollege() {
     
		return sCollege;
	}

	public void setsCollege(String sCollege) {
     
		this.sCollege = sCollege;
	}

	public String getsC() {
     
		return sC;
	}

	public void setsC(String sC) {
     
		this.sC = sC;
	}

	public String getsMath() {
     
		return sMath;
	}

	public void setsMath(String sMath) {
     
		this.sMath = sMath;
	}

	public String getsEnglish() {
     
		return sEnglish;
	}

	public void setsEnglish(String sEnglish) {
     
		this.sEnglish = sEnglish;
	}

	public String getsChinese() {
     
		return sChinese;
	}

	public void setsChinese(String sChinese) {
     
		this.sChinese = sChinese;
	}

	public String getsJava() {
     
		return sJava;
	}

	public void setsJava(String sJava) {
     
		this.sJava = sJava;
	}

	@Override
	public String toString() {
     
		return "Student [sId=" + sId + ", sName=" + sName + ", sSex=" + sSex + ", sCollege=" + sCollege + ", sC="
				+ sC + ", sMath=" + sMath + ", sEnglish=" + sEnglish + ", sChinese=" + sChinese + ", sJava="
				+ sJava + "]";
	}	

}

StudentDao.java

package com.sjsq.dao;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


import com.sjsq.model.Student;
import com.sjsq.util.DBUtil;

public class StudentDao {
     
	public static int progress;

	// private final String FILE_PATH="d:\\student.xls";

	public static StudentDao getInstance() {
     
		StudentDao studentDao;
		return studentDao = new StudentDao();
	}

	// 查询所有学生的信息
	public ResultSet queryAll() {
     
		ResultSet rs = null;
		String sql = "select * from Student";
		System.out.println("------查询所有学生信息------");
		System.out.println("sql语句:" + sql);
		DBUtil db = new DBUtil();
		try {
     
			rs = db.executeQuery(sql);
		} catch (SQLException e) {
     
			e.printStackTrace();
		}
		return rs;
	}

	// 查询所有学生信息,并且返回List
	public List<Student> queryAllStudent() {
     
		List<Student> listStudent = new ArrayList<Student>();
		String sql = "select * from student";
		System.out.println("------查询所有学生信息------");
		System.out.println("sql语句:" + sql);
		DBUtil db = new DBUtil();
		ResultSet rs = null;
		try {
     
			rs = db.executeQuery(sql);
			while (rs.next()) {
     
				Student studentTmp = new Student();
				studentTmp.setsId(rs.getString("sId"));
				studentTmp.setsName(rs.getString("sName"));
				studentTmp.setsSex(rs.getString("sSex"));
				studentTmp.setsCollege(rs.getString("sCollege"));
				studentTmp.setsC(rs.getString("sC"));
				studentTmp.setsMath(rs.getString("sMath"));
				studentTmp.setsEnglish(rs.getString("sEnglish"));
				studentTmp.setsChinese(rs.getString("sChinese"));
				studentTmp.setsJava(rs.getString("sJava"));
				listStudent.add(studentTmp);
			}
		} catch (SQLException e) {
     

			e.printStackTrace();
		} finally {
     
			try {
     
				if (rs != null) {
     
					rs.close();
				}
			} catch (SQLException e) {
     

				e.printStackTrace();
			}
			db.close();
		}
		return listStudent;
	}


	public static int getprogress() {
     
		return progress;
	}

	
	// 按照条件查询
	public ResultSet queryByCondition(String[] data) {
     
		ResultSet rs = null;
		String sql = "select * from student where 1=1";
		int i = 0;
		// 学号
		if (!(data[0].equals(""))) {
     
			sql += " and sid='" + data[0] + "' ";
		}
		// 姓名
		if (!(data[1].equals(""))) {
     
			sql += " and sname='" + data[1] + "' ";
		}
		// 省份
		if (!(data[2].equals(""))) {
     
			sql += " and senglish='" + data[2] + "' ";
		}
		// 性别
		if (!(data[3].equals(""))) {
     
			sql += " and ssex='" + data[3] + "' ";
		}
		
		System.out.println("------查询所有学生信息------");
		System.out.println("sql语句:" + sql);

		DBUtil db = new DBUtil();
		try {
     
			rs = db.executeQuery(sql);
		} catch (SQLException e) {
     

			e.printStackTrace();
		}

		return rs;
	}
	
	
	// 插入学生信息,并且返回插入结果
	public boolean insertStudentInformation(Student student) {
     
		DBUtil DBUtil = new DBUtil();
		// 通过student对象设置sid的值
		String sid = student.getsId();
		String sname = student.getsName();
		String ssex = student.getsSex();
		String scollege = student.getsCollege();
		String sc = student.getsC();
		String smath = student.getsMath();
		String senglish = student.getsEnglish();
		String schinese = student.getsChinese();
		String sjava = student.getsJava();

		String sql = "insert into student(sid,sname,ssex,scollege,sc,smath,senglish,schinese,sjava)" + 
		"values('" + sid + "','" + sname + "','" + ssex + "','" + scollege+ "','" + sc+ "','" 
				+ smath + "','" + senglish + "','" + schinese + "','" + sjava + "')";
		
		System.out.println("------插入学生信息------");
		System.out.println("sql语句:" + sql);
		
		// 向数据库插入数据语句
		// 定义一个boolean型变量,用于判断插入数据是否成功
		boolean flag = false;
		try {
     
			// 更新数据库信息
			flag = DBUtil.executeUpdate(sql);
		} catch (SQLException e) {
     
			e.printStackTrace();
		}
		DBUtil.close();
		// 返回执行结果
		return flag;

	}

	// 统计同一学号有多少人
	public int queryForsidinformation(String sid) {
     
		DBUtil db = new DBUtil();
		// 通过sid查询数据库中是否有相同sid数据
		String sql = "select * from student where sid=" + sid;
		System.out.println("------验证学生学号信息------");
		System.out.println("sql语句:" + sql);
		ResultSet rs = null;
		int count = 0;
		try {
     
			// 更新数据库保存到结果集里
			rs = (ResultSet) db.executeQuery(sql);
			// 找到相同的count++
			if (rs.next()) {
     
				count++;
			}
		} catch (SQLException e) {
     
			e.printStackTrace();
		}
		// 关闭数据库连接
		db.close();
		// 返回count
		return count;
	}

	// 更新学生信息,这里学号不能更新
	public boolean updateStudentInformation(Student student) {
     
		DBUtil DBUtil = new DBUtil();
		// scollege,sc,smath,senglish,schinese,sjava
		String sql = "update student set sname=" + "'" + student.getsName() + "'" + " ," 
				+ " ssex=" + "'" + student.getsSex() + "'" + " ,"
				+ " scollege=" + "'" + student.getsCollege() + "' " + " ,"
				+ " sc=" + "'" + student.getsC() + "' " + " ,"
				+ " smath=" + "'" + student.getsMath() + "' " + " ,"
				+ " senglish=" + "'" + student.getsEnglish() + "'" + "," 
				+ " schinese=" + "'" + student.getsChinese() + "'" + " ," 
				+ " sjava=" + "'" + student.getsJava()+ "'" 
				+ " where" + " sid=" + "'"+ student.getsId() + "'";
		System.out.println("------更新学生信息------");
		System.out.println("sql语句:" + sql);
		
		boolean flag = false;
		try {
     
			flag = DBUtil.executeUpdate(sql);
		} catch (SQLException e) {
     
			e.printStackTrace();
		}
		return flag;
	}

	// 删除学生信息
	public boolean deleteStudentInfoBySid(String sid) {
     
		boolean flag = false;
		String sql = "delete from student where sid=" + "'" + sid + "'";
		
		System.out.println("------删除学生信息------");
		System.out.println("sql语句:" + sql);
		
		DBUtil DBUtil = new DBUtil();
		try {
     
			flag = DBUtil.executeUpdate(sql);
		} catch (SQLException e) {
     
			e.printStackTrace();
		}
		return flag;
	}
}

LoginFrame.java

package com.sjsq.view;

import org.jb2011.lnf.beautyeye.ch3_button.BEButtonUI;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.Timer;
import javax.swing.UIManager;

import com.sjsq.model.User;
import com.sjsq.util.MD5Util;
import com.sjsq.dao.UserDao;

public class LoginFrame extends JFrame implements ActionListener {
     
	public static String uname = null;
	public static String pwd = null;
	String username, password, login, quit;

	// 登录标签
	private JLabel loginJLabel;
	private JPanel jContentPane = null;
	private JButton jButtonLogin = null;
	private JButton jButtonExit = null;
	private JTextField jTextFieldUserName = null;
	private JTextField jTextFieldPassWord = null;
	// 登录用户名
	static int storeUserId;
	// 图片
	public JLabel jLabel_Image = null;
	// 登录用户名
	public static String storeUserame = null;
	// 登录密码
	public static String storeUserPassword = null;
	// 重新登陆标记
	static boolean RELOAD = true;
	private JLabel jLabelUserName = null;
	private JLabel jLabelPassWord = null;

	int index;
	
	public LoginFrame() {
     
			// 设置背景
			setForeground(new Color(255, 255, 255));
			this.setResizable(false);
			this.setSize(800, 500);
			this.setTitle("学生成绩管理系统");
			
			this.setLocationRelativeTo(null);
			try {
     
				UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");// 使用windows外观
			} catch (Exception e) {
     
				e.printStackTrace();
			}
			
			loginJLabel = new JLabel("学生成绩管理系统");
			Font font = new Font("微软雅黑",Font.BOLD,40);
			loginJLabel.setFont(font);
			loginJLabel.setBounds(220,100,650, 50);
			loginJLabel.setForeground(Color.DARK_GRAY);
			getContentPane().add(loginJLabel);

			Font font2 = new Font("微软雅黑",Font.BOLD,15);
			jLabelPassWord = new JLabel();
			jLabelPassWord.setFont(font2);
			jLabelPassWord.setBounds(new Rectangle(300, 250, 71, 29));
			jLabelPassWord.setText("用户名:");
			jLabelUserName = new JLabel();
			jLabelUserName.setBounds(new Rectangle(300, 300, 71, 29));
			jLabelUserName.setFont(font2);
			jLabelUserName.setText("密码:");
			
			// 账号输入框
			jTextFieldUserName = new JTextField(20);
			jTextFieldUserName.setBounds(new Rectangle(360, 250, 154, 33));
			// 密码输入框
			jTextFieldPassWord = new JPasswordField();
			jTextFieldPassWord.setBounds(new Rectangle(360, 300, 154, 33));
			
			// 登录
			jButtonLogin = new JButton();
			jButtonLogin.setBounds(new Rectangle(320, 380, 78, 26));
			jButtonLogin.setText("登录");
			jButtonLogin.setUI(new BEButtonUI()
					.setNormalColor(BEButtonUI.NormalColor.green));
			// 回车登录
			getRootPane().setDefaultButton(jButtonLogin);

			// 退出
			jButtonExit = new JButton();
			jButtonExit.setUI(new BEButtonUI()
					.setNormalColor(BEButtonUI.NormalColor.lightBlue));
			jButtonExit.setBounds(new Rectangle(420, 380, 78, 26));
			jButtonExit.setText("退出");
			
			// 包含所有的元素
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(jLabelUserName, null);
			jContentPane.add(jLabelPassWord, null);
			jContentPane.add(jButtonLogin, null);
			jContentPane.add(jButtonExit, null);
			jContentPane.add(jTextFieldUserName, null);
			jContentPane.add(jTextFieldPassWord, null);
			getContentPane().add(jContentPane);
			
			jTextFieldUserName.addKeyListener(new KeyListener() {
     
				@Override
				public void keyPressed(KeyEvent e) {
     

				}
				@Override
				public void keyReleased(KeyEvent e) {
     

				}
				@Override
				public void keyTyped(KeyEvent e) {
     
					if(e.getKeyChar() == KeyEvent.VK_ENTER){
     
						jTextFieldPassWord.requestFocus();
					}
				}
			});

			jTextFieldPassWord.addKeyListener(new KeyListener() {
     
				@Override
				public void keyTyped(KeyEvent e) {
     

				}
				@Override
				public void keyReleased(KeyEvent e) {
     

				}
				@Override
				public void keyPressed(KeyEvent e) {
     
					if(e.getKeyChar() == KeyEvent.VK_ENTER){
     
						username = jTextFieldUserName.getText();
						password = MD5Util.string2MD5(jTextFieldPassWord.getText());

						User user = new User();
						user.setUsername(username);
						user.setPassword(password);
						String s=user.getUsername();
						String p=jTextFieldPassWord.getText();
						UserDao userDao = new UserDao();
						int choice = 0;
						if(!userDao.checkUser(user)) {
     
							JOptionPane.showMessageDialog(null, "用户名和密码错误","消息提示",JOptionPane.WARNING_MESSAGE);
						}else {
     
							setVisible(false);
							MainMenuFrame MM = new MainMenuFrame();
							uname = s;
							pwd=p;
						}
					}
				}
			});

			this.setDefaultCloseOperation(EXIT_ON_CLOSE);
			this.setVisible(true);

			// 添加监控
			jTextFieldUserName.addActionListener(this);
			jTextFieldPassWord.addActionListener(this);
			jButtonLogin.addActionListener(this);
			jButtonExit.addActionListener(this);
		}


	@Override
	public void actionPerformed(ActionEvent e) {
     

		// 获取账号和密码
		username = jTextFieldUserName.getText();
		password = MD5Util.string2MD5(jTextFieldPassWord.getText());

		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		String s = user.getUsername();
		String p = jTextFieldPassWord.getText();
		UserDao userDao = new UserDao();
		int choice = 0;

		if (e.getSource() == jButtonLogin) {
     
			if (!userDao.checkUser(user)) {
     
				JOptionPane.showMessageDialog(null, "用户名和密码错误", "消息提示", JOptionPane.WARNING_MESSAGE);
			} else {
     
				setVisible(false);
				MainMenuFrame MM = new MainMenuFrame();
				uname = s;
				pwd = p;
			}
		} else if (e.getSource() == jButtonExit) {
     
			System.exit(0);
		}
	}
	
	// 测试
	public static void main(String[] args) {
     
		new LoginFrame();
	}
}

MainMenuFrame.java

package com.sjsq.view;

import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import org.jb2011.lnf.beautyeye.ch3_button.BEButtonUI;

/*
 * 登陆成功后主界面
 */
public class MainMenuFrame extends JFrame implements ActionListener {
     
	private JFrame mainmenu;
	private JTextArea text;
	// 标题栏(关于)
	private JMenuBar menuBar1;
	private JMenuItem aboutSystem;

	public MainMenuFrame() {
     

		mainmenu();
	}

	public void mainmenu() {
     
		mainmenu = new JFrame("极客大学学生管理系统");
		setLocationRelativeTo(null);// 将容器显示在屏幕中央
		mainmenu.setSize(850, 650);

		mainmenu.getContentPane().add(new JScrollPane(text));

		JPanel jContentPane = new JPanel();
		jContentPane.setLayout(null);

		// 查询学生按钮
		JButton jButtonSelect = new JButton();
		jButtonSelect.setBounds(new Rectangle(320, 100, 100, 52));
		jButtonSelect.setText("查询学生");
		jButtonSelect.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.lightBlue));
		getRootPane().setDefaultButton(jButtonSelect);// 回车登录

		// 添加学生按钮
		JButton jButtonAdd = new JButton();
		jButtonAdd.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.lightBlue));
		jButtonAdd.setBounds(new Rectangle(320, 200, 100, 52));
		jButtonAdd.setText("添加学生");

		// 修改密码按钮
		JButton jButtonAlterPwd = new JButton();
		jButtonAlterPwd.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.lightBlue));
		jButtonAlterPwd.setBounds(new Rectangle(320, 300, 100, 52));
		jButtonAlterPwd.setText("密码修改");

		// 退出系统按钮
		JButton jButtonExit = new JButton();
		jButtonExit.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.lightBlue));
		jButtonExit.setBounds(new Rectangle(320, 400, 100, 52));
		jButtonExit.setText("退出系统");

		jContentPane.add(jButtonSelect, null);
		jContentPane.add(jButtonAdd, null);
		jContentPane.add(jButtonAlterPwd, null);
		jContentPane.add(jButtonExit, null);

		// 添加Label到Frame
		mainmenu.getContentPane().add(jContentPane);
		// 设置字体
		Font font = new Font("微软雅黑", Font.BOLD, 16);
		// 标题栏
		menuBar1 = new JMenuBar();

		// aboutSystem = new JMenuItem("关于本系统",new
		// ImageIcon("src/images/icons/about.png"));
		aboutSystem = new JMenuItem("关于本系统");
		aboutSystem.setMnemonic('H');

		menuBar1.add(aboutSystem);

		// 查询学生
		jButtonSelect.addActionListener(new ActionListener() {
     

			@Override
			public void actionPerformed(ActionEvent e) {
     
				System.out.println("------查询学生-----");
				QueryStudentInfo queryStudentInfo = new QueryStudentInfo();
			}
		});

		// 添加学生
		jButtonAdd.addActionListener(new ActionListener() {
     

			@Override
			public void actionPerformed(ActionEvent e) {
     
				System.out.println("------添加学生-----");
				AddStudentInfo addStudentInfo = new AddStudentInfo();
			}
		});

		// 修改密码
		jButtonAlterPwd.addActionListener(new ActionListener() {
     

			@Override
			public void actionPerformed(ActionEvent e) {
     
				System.out.println("------修改密码-----");
				ModifyPasswordInfo modifyPasswordInfo = new ModifyPasswordInfo();
			}
		});

		// 退出系统
		jButtonExit.addActionListener(new ActionListener() {
     

			@Override
			public void actionPerformed(ActionEvent e) {
     
				System.out.println("------退出系统-----");
				System.exit(1);
			}
		});

		// 关于系统
		aboutSystem.addActionListener(new ActionListener() {
     

			@Override
			public void actionPerformed(ActionEvent e) {
     
				System.out.println("------关于系统------");
				AboutSystem aboutSystem = new AboutSystem();
			}
		});

		// 关闭窗口监控
		mainmenu.addWindowListener(new WindowAdapter() {
     
			public void windowClosing(WindowEvent arg0) {
     
				System.exit(1);
			}
		});

		mainmenu.setJMenuBar(menuBar1);
		mainmenu.setVisible(true);
		// mainmenu.setLocation(250, 50);
		mainmenu.setLocationRelativeTo(null);
		aboutSystem.addActionListener(this);
	}

	// 主函数测试
	public static void main(String[] args) {
     
		new MainMenuFrame();

	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
     
	}

}

四、其他

1.其他系统实现

Java+Swing实现仓库管理系统
Java+Swing实现学生信息管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统
Java+Swing实现电子相册管理系统
Java+Swing实现图书管理系统
Java+Swing实现斗地主游戏
Java+Swing实现宠物商店管理系统

2.获取源码

请联系QQ:3079118617

你可能感兴趣的:(Java,java,mysql)