java程序对学生成绩_Eclipse+Java+Swing实现学生成绩管理系统的实例代码
一、系统介绍
本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,界面良好。
二、系统展示
1.登录页
2.主页面
3.查询学生成绩
4.修改学生成绩
5.添加学生成绩
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 students=new ArrayList();
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 queryAllStudent() {
List listStudent = new ArrayList();
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) {
}
}
到此这篇关于Eclipse+Java+Swing实现学生成绩管理系统的文章就介绍到这了,更多相关Eclipse+Java+Swing实现学生成绩管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
java程序对学生成绩_Eclipse+Java+Swing实现学生成绩管理系统的实例代码相关推荐
- java将多个文件写入到一个文件流中再有规律的取出_编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指...
满意答案 azonyb 2014.02.18 采纳率:59% 等级:12 已帮助:13223人 import java.io.BufferedInputStream; import java.i ...
- 树莓派Java程序运行_树莓派上Java程序作为linux服务并开机自动启动
http://www.iigrowing.cn/shu_mei_pai_shang_java_cheng_xu_zuo_wei_linux_fu_wu_bing_kai_ji_zi_dong_qi_d ...
- java程序员工资有多少?java程序员现状如何?
现在java程序员的日子好过吗?他们的工资一般都是多少呢?现状如何呢?java程序员烂大街了吗?带着这些问题,让我们一起通过下面的文章来了解一下吧. 1.java程序的现状 一句话,加班,工资高. 这 ...
- 一年经验的java程序员薪资有多少?java收入分级
Java编程可以应用到网站建设.游戏开发.移动系统开发等多个领域.所以随着科学技术进步电子产品不断更新问世,越来越成为企业重视的开发人才.这也是Java编程在近几年越发火爆的原因.一年经验的java程 ...
- java需要圣魔才能安装_eclipse java怎么运行?如何使用Eclipse编写运行Java程序
1.双击 启动. 2.选择一个空的文件夹,作为workspace工作空间,用来存放你以后用eclipse写的Java程序. 3.选择好workspace后,单击下面的ok后,稍等几分钟,就可以看到we ...
- Java程序员谈一谈-----java程序员成长之路
转载:http://www.banzg.com/archives/679.html?ref=myread 阿里面试回来,想和Java程序员谈一谈 引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力 ...
- JAVA程序连连看的项目总结,JAVA课程设计连连看游戏的开发
JAVA课程设计连连看游戏的开发 计算机科学与工程学院集中性实践教学计划书( 2013 - 2014 学年第 1 学期)课程名称: 专业实习 姓 名: 学 号: 2010081303 专 业: 计算机 ...
- java程序运行结果题_(Java程序设计)试题
装 订 线 内 不 答 题 要 二.多选题 (每题2分,共10分) . A.Java 语言是面向对象的.解释执行的网络编程语言. B.Java 语言具有可移植性,是与平台无关的编程语言. C.Java ...
- 简述如何编写java程序_1-4 简述 Eclipse 编写 Java 程序的流程。_学小易找答案
[填空题]三四年级是英语入门初学阶段,更加注重( ). [单选题]不属于pos终端收银机的基本构成是( ). A . 显示器 B . 小票打印机 C . 键盘 D . 条形码电子称 [单选题]( ) ...
最新文章
- 标星7.2万热门开源项目youtube-dl遭下架,开发者的权益谁来保护?
- win10计算机拒绝访问,教你win10系统c盘拒绝访问怎么办
- (转载)浅析Hadoop文件格式
- Activiti工作流引擎使用
- Mac平台上OpenCV开发环境搭建
- python两个类共用一个变量_python – 如何从一个类到另一个类访问变量?
- python学习笔记(二十八)日志模块
- restTemplate使用和踩坑总结
- wince6.0中文内核定制
- MySQL 基础 ————事务与隔离级别总结
- 2011年ESRI北京站IDL视频教程(全)
- POJ3494Largest Submatrix of All 1’s[单调栈]
- SSM整合(spring mybatis)图书
- php \n不能换行
- 泛微oa连接mysql,泛微OA e-cology 数据库接口信息泄露学习
- c语言控制单片机38译码器,单片机+38译码器控制的数码管怎么点亮?
- 数据包络分析法(DEA)_2
- STM32F401RCT6最小系统原理图设计
- 计算机的复数形式英语,名词的复数形式大全
- 美女时钟(shell)