经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
Java+Eclipse+MySQL+Swing实现学生会考成绩管理系统(免费完整项目)
来源:cnblogs  作者:南柯树下  时间:2022/1/2 14:19:27  对本文有异议

 版权声明:原创不易,本文禁止抄袭、转载,侵权必究!

 

目录

一、需求开发文档

二、数据库设计文档

三、功能模块部分代码及效果展示

四、完整源码下载

五、作者Info

 

一、需求开发文档

项目完整文件列表:

 

需求开发文档部分截图:

 

 

 

 

 

 

 

 

 


 

二、数据库设计文档

数据库设计文档部分截图:

 

 

 

 


 

三、功能模块部分代码及效果展示

数据库类:

  1. 1 package system_of_database;
  2. 2
  3. 3 import java.sql.Connection;
  4. 4 import java.sql.DriverManager;
  5. 5 import java.sql.PreparedStatement;
  6. 6 import java.sql.ResultSet;
  7. 7 import java.sql.SQLException;
  8. 8
  9. 9 public class DBUtil {
  10. 10
  11. 11 Connection con = null;
  12. 12 PreparedStatement ps = null;
  13. 13 ResultSet rs = null;
  14. 14
  15. 15 public Connection getConnection() throws ClassNotFoundException,
  16. 16 SQLException,InstantiationException,IllegalAccessException {
  17. 17 String driver = "com.mysql.jdbc.Driver";
  18. 18 String url = "jdbc:mysql://localhost:3306/exam_of_students?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
  19. 19 String user = "root";
  20. 20 String password = "root";
  21. 21 try {
  22. 22 Class.forName(driver);
  23. 23 con = DriverManager.getConnection(url,user,password);
  24. 24 return con;
  25. 25 } catch(Exception e) {
  26. 26 throw new SQLException("驱动错误或连接失败!");
  27. 27 }
  28. 28 }

 

考生登录部分代码如下:

  1. 1 public class LoginListener implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e) {
  3. 3 lblMsg1.setText("");
  4. 4 lblMsg2.setText("");
  5. 5 user = userService.findUserByName(txtName.getText().trim());
  6. 6 if(user != null) {
  7. 7 if(user.getPassword().equals(new String(txtPwd.getPassword()))) {
  8. 8 LoginFrame_Of_Students.this.setVisible(false);
  9. 9 new MainFrame_Of_Students();
  10. 10 } else {
  11. 11 lblMsg2.setText("密码错误!");
  12. 12 txtPwd.setText("");
  13. 13 }
  14. 14 } else {
  15. 15 lblMsg1.setText("该考生不存在 !");
  16. 16 }
  17. 17 }
  18. 18 }

 

考生登录效果如下:

 

管理员登录部分代码如下:

  1. 1 public class LoginListener implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e) {
  3. 3 lblMsg1.setText("");
  4. 4 lblMsg2.setText("");
  5. 5 user = userService.findUserByName(txtName.getText().trim());
  6. 6 if(user != null) {
  7. 7 if(user.getPassword().equals(new String(txtPwd.getPassword()))) {
  8. 8 LoginFrame_Of_Administration.this.setVisible(false);
  9. 9 new MainFrame_Of_Administration();
  10. 10 } else {
  11. 11 lblMsg2.setText("密码错误!");
  12. 12 txtPwd.setText("");
  13. 13 }
  14. 14 } else {
  15. 15 lblMsg1.setText("该管理员不存在 !");
  16. 16 }
  17. 17 }
  18. 18 }
  19. 19
  20. 20 public class ResetListener implements ActionListener{
  21. 21 public void actionPerformed(ActionEvent e) {
  22. 22 txtName.setText("");
  23. 23 txtPwd.setText("");
  24. 24 }
  25. 25 }

 

管理员登录效果如下:

 

考生查询成绩部分代码如下:

  1. 1 private void showData() {
  2. 2 String id = txtId.getText();
  3. 3 String sql = "select id as 考生号,geography as 地理,chemistry as 化学,IT as 信息技术,History as 历史 ,Biology as 生物,mathematics as 数学,general_technique as 通用技术,physics as 物理,english as 英语,chinese as 语文,politics as 政治 from information_of_grade where id = '"+id+"'";
  4. 4 DBUtil db = new DBUtil();
  5. 5 try {
  6. 6 db.getConnection();
  7. 7 ResultSet rs = db.executeQuery(sql, null);
  8. 8 ResultSetMetaData rsmd = rs.getMetaData();
  9. 9 int colCount = rsmd.getColumnCount();
  10. 10 Vector<String> title = new Vector<String>(); //存放标题
  11. 11 for(int i = 1;i<=colCount;i++) {
  12. 12 title.add(rsmd.getColumnLabel(i));
  13. 13 }
  14. 14 Vector<Vector<String>> data = new Vector<Vector<String>>(); //存放表格数据
  15. 15 int rowCount = 0;
  16. 16 while(rs.next()) {
  17. 17 rowCount++;
  18. 18 Vector<String> rowdata = new Vector<String>(); //存放行数据
  19. 19 for(int i = 1;i<=colCount;i++) {
  20. 20 rowdata.add(rs.getString(i));
  21. 21 }
  22. 22 data.add(rowdata);
  23. 23 }
  24. 24 if(rowCount == 0) {
  25. 25 model.setDataVector(null, title);
  26. 26 } else {
  27. 27 model.setDataVector(data,title);
  28. 28 }
  29. 29 } catch(Exception ee) {
  30. 30 System.out.println(ee.toString());
  31. 31 JOptionPane.showMessageDialog(this, "系统出现异常错误。请检查数据库。系统即将推出!!!","错误",0);
  32. 32 } finally {
  33. 33 db.closeAll();
  34. 34 }
  35. 35 JOptionPane.showMessageDialog(null, "查询到该考生信息");
  36. 36 }

 

考生查询成绩效果如下:

 

考生成绩导出部分代码如下:

  1. 1 public void saveFile() {
  2. 2 JFileChooser fc = new JFileChooser();
  3. 3 int rVal = fc.showSaveDialog(this);
  4. 4 if(rVal == JFileChooser.APPROVE_OPTION) {
  5. 5 String fileName = fc.getSelectedFile().getName();
  6. 6 String path = fc.getCurrentDirectory().toString();
  7. 7 try {
  8. 8 TableModel model = table.getModel();
  9. 9 FileWriter fw = new FileWriter(path + "/" + fileName);
  10. 10 for(int i=0; i < model.getColumnCount(); i++) {
  11. 11 fw.write(model.getColumnName(i) + "\t");
  12. 12 }
  13. 13 fw.write("\n");
  14. 14 for(int i=0; i< model.getRowCount(); i++) {
  15. 15 for(int j=0; j < model.getColumnCount(); j++) {
  16. 16 fw.write(model.getValueAt(i,j).toString()+"\t");
  17. 17 }
  18. 18 fw.write("\n");
  19. 19 }
  20. 20 fw.close();
  21. 21 } catch(Exception e) {
  22. 22 e.printStackTrace();
  23. 23 }
  24. 24 JOptionPane.showMessageDialog(null, "导出成功");
  25. 25 }
  26. 26 }

 

考生成绩导出效果如下:

 

考生修改密码部分代码如下:

  1. 1 public class listener_of_delete implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e){
  3. 3 String id = jtId.getText();
  4. 4 String code = new String(jpCode.getPassword());
  5. 5 String code1 = new String(jpCode1.getPassword());
  6. 6 DBUtil db = new DBUtil();
  7. 7 String sql = "update information_of_students set pwd = '"+code+"' where id = '"+id+"'";
  8. 8 if(code.equals(code1)){
  9. 9 try {
  10. 10 db.getConnection();
  11. 11 db.executeUpdate(sql,null);
  12. 12 } catch(Exception ee) {
  13. 13 System.out.println(ee.toString());
  14. 14 } finally {
  15. 15 db.closeAll();
  16. 16 }
  17. 17 JOptionPane.showMessageDialog(null, "修改成功");
  18. 18 }
  19. 19 else{
  20. 20 JOptionPane.showMessageDialog(null, "两次密码不一样!");
  21. 21 }
  22. 22 }
  23. 23 }

 

考生修改密码效果如下:

 

管理员主面板部分代码如下:

  1. 1 public MainFrame_Of_Administration() {
  2. 2 super("Administration");
  3. 3 ImageIcon qstIcon = new ImageIcon("images\\1.png");
  4. 4 this.setIconImage(qstIcon.getImage());
  5. 5 p = new JPanel();
  6. 6 setBak();
  7. 7 clipboard=getToolkit().getSystemClipboard();
  8. 8 Container c = getContentPane();
  9. 9 p.setOpaque(false);
  10. 10 c.add(p);
  11. 11 p.setLayout(null);
  12. 12
  13. 13 jbInsert = new JButton("添加考生信息");
  14. 14 jbDelete = new JButton("删除考生信息");
  15. 15 jbUpdate = new JButton("修改考生信息");
  16. 16 jbAdministration = new JButton("返回登录界面");
  17. 17 jbResetCode = new JButton("重置考生密码");
  18. 18
  19. 19 jbAdministration.addActionListener(new loginframe_of_administration());
  20. 20 jbDelete.addActionListener(new listener_of_delete());
  21. 21 jbInsert.addActionListener(new listener_of_insert());
  22. 22 jbUpdate.addActionListener(new listener_of_update());
  23. 23 jbResetCode.addActionListener(new listener_of_reset());
  24. 24
  25. 25 jbInsert.setBounds(0,20,120,25);
  26. 26 jbDelete.setBounds(0,55,120,25);
  27. 27 jbUpdate.setBounds(0,90,120,25);
  28. 28 jbAdministration.setBounds(0,125,120,25);
  29. 29 jbResetCode.setBounds(0,165,120,25);
  30. 30
  31. 31 p.add(jbInsert);
  32. 32 p.add(jbDelete);
  33. 33 p.add(jbUpdate);
  34. 34 p.add(jbAdministration);
  35. 35 p.add(jbResetCode);
  36. 36 this.add(p);
  37. 37 this.setLocation(200,100);
  38. 38 this.setSize(533,300);
  39. 39 this.setResizable(false);
  40. 40 this.setVisible(true);
  41. 41 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  42. 42
  43. 43 }

 

管理员主面板效果如下:

 

添加考生信息部分代码如下:

  1. 1 public class listener_of_insert implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e){
  3. 3 DBUtil db = new DBUtil();
  4. 4 String preparedsql = "insert into information_of_grade(id,geography,chemistry,IT,history,biology,mathematics,general_technique,physics,english,chinese,politics)"+"values(?,?,?,?,?,?,?,?,?,?,?,?)";
  5. 5
  6. 6 try {
  7. 7 db.getConnection();
  8. 8 Object param[] = {jtId.getText(),jtGeo.getText(),jtChe.getText(),jtIT.getText(),jtHis.getText(),jtBio.getText(),jtMath.getText(),jtGen.getText(),jtPhy.getText(),jtEng.getText(),jtChi.getText(),jtPol.getText()};
  9. 9 db.executeUpdate(preparedsql, param);
  10. 10 } catch(Exception ee) {
  11. 11 System.out.println(ee.toString());
  12. 12 } finally {
  13. 13 db.closeAll();
  14. 14 }
  15. 15 JOptionPane.showMessageDialog(null, "成功添加考生信息");
  16. 16 }
  17. 17 }

 

添加考生信息效果如下:

 

删除考生信息部分代码如下:

  1. 1 public class listener_of_delete implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e){
  3. 3 String id = jtId.getText();
  4. 4 DBUtil db = new DBUtil();
  5. 5 String sql = "delete from information_of_grade where id = '"+id+"'";
  6. 6
  7. 7 try {
  8. 8 db.getConnection();
  9. 9 db.executeUpdate(sql,null);
  10. 10 } catch(Exception ee) {
  11. 11 System.out.println(ee.toString());
  12. 12 } finally {
  13. 13 db.closeAll();
  14. 14 }
  15. 15 JOptionPane.showMessageDialog(null, "成功删除考生信息");
  16. 16 }
  17. 17 }

 

删除考生信息效果如下:

 

修改考生信息部分代码如下:

  1. 1 public class listener_of_delete implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e){
  3. 3 String id = jtId.getText();
  4. 4 String code = new String(jpCode.getPassword());
  5. 5 String code1 = new String(jpCode1.getPassword());
  6. 6 DBUtil db = new DBUtil();
  7. 7 String sql = "update information_of_students set pwd = '"+code+"' where id = '"+id+"'";
  8. 8 if(code.equals(code1)){
  9. 9 try {
  10. 10 db.getConnection();
  11. 11 db.executeUpdate(sql,null);
  12. 12 } catch(Exception ee) {
  13. 13 System.out.println(ee.toString());
  14. 14 } finally {
  15. 15 db.closeAll();
  16. 16 }
  17. 17 JOptionPane.showMessageDialog(null, "修改成功");
  18. 18 }
  19. 19 else{
  20. 20 JOptionPane.showMessageDialog(null, "两次密码不一样!");
  21. 21 }
  22. 22 }
  23. 23 }

 

修改考生信息效果如下:

 

重置考生密码部分代码如下:

  1. 1 public class listener_of_delete implements ActionListener{
  2. 2 public void actionPerformed(ActionEvent e){
  3. 3 String id = jtId.getText();
  4. 4 DBUtil db = new DBUtil();
  5. 5 String sql = "update information_of_students set pwd = '000000' where id = '"+id+"'";
  6. 6 try {
  7. 7 db.getConnection();
  8. 8 db.executeUpdate(sql,null);
  9. 9 } catch(Exception ee) {
  10. 10 System.out.println(ee.toString());
  11. 11 } finally {
  12. 12 db.closeAll();
  13. 13 }
  14. 14 JOptionPane.showMessageDialog(null, "重置成功");
  15. 15 }
  16. 16 }

 

重置考生密码效果如下:

 


 

四、完整源码下载

学生会考成绩管理系统源码下载:

  • 关注我的原创微信公众号:『小鸿星空科技』,回复『学生会考成绩管理系统』获取完整项目

 


 

五、作者Info

作者:南柯树下,Goal:让编程更有趣!

原创微信公众号:『小鸿星空科技』,专注于算法、爬虫,网站,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权声明:本文禁止抄袭、转载 ,侵权必究!

 


 欢迎扫码关注我的原创公众号【小鸿星空科技】,回复【学生会考成绩管理系统】获取完整项目


 

——  ——  ——  ——  —  END  ——  ——  ——  ——  ———— 

         欢迎扫码关注我的公众号

          小鸿星空科技

       

原文链接:http://www.cnblogs.com/makerchen/p/15757397.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号