版權宣告:原創不易,本文禁止抄襲、轉載,侵權必究!
目錄
一、需求開發文件
二、資料庫設計文件
三、功能模組部分程式碼及效果展示
四、完整原始碼下載
五、作者Info
一、需求開發文件
專案完整檔案列表:
需求開發文件部分截圖:
二、資料庫設計文件
資料庫設計文件部分截圖:
三、功能模組部分程式碼及效果展示
資料庫類:
1 package system_of_database; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 9 public class DBUtil { 10 11 Connection con = null; 12 PreparedStatement ps = null; 13 ResultSet rs = null; 14 15 public Connection getConnection() throws ClassNotFoundException, 16 SQLException,InstantiationException,IllegalAccessException { 17 String driver = "com.mysql.jdbc.Driver"; 18 String url = "jdbc:mysql://localhost:3306/exam_of_students?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false"; 19 String user = "root"; 20 String password = "root"; 21 try { 22 Class.forName(driver); 23 con = DriverManager.getConnection(url,user,password); 24 return con; 25 } catch(Exception e) { 26 throw new SQLException("驅動錯誤或連線失敗!"); 27 } 28 }
考生登入部分程式碼如下:
1 public class LoginListener implements ActionListener{ 2 public void actionPerformed(ActionEvent e) { 3 lblMsg1.setText(""); 4 lblMsg2.setText(""); 5 user = userService.findUserByName(txtName.getText().trim()); 6 if(user != null) { 7 if(user.getPassword().equals(new String(txtPwd.getPassword()))) { 8 LoginFrame_Of_Students.this.setVisible(false); 9 new MainFrame_Of_Students(); 10 } else { 11 lblMsg2.setText("密碼錯誤!"); 12 txtPwd.setText(""); 13 } 14 } else { 15 lblMsg1.setText("該考生不存在 !"); 16 } 17 } 18 }
考生登入效果如下:
管理員登入部分程式碼如下:
1 public class LoginListener implements ActionListener{ 2 public void actionPerformed(ActionEvent e) { 3 lblMsg1.setText(""); 4 lblMsg2.setText(""); 5 user = userService.findUserByName(txtName.getText().trim()); 6 if(user != null) { 7 if(user.getPassword().equals(new String(txtPwd.getPassword()))) { 8 LoginFrame_Of_Administration.this.setVisible(false); 9 new MainFrame_Of_Administration(); 10 } else { 11 lblMsg2.setText("密碼錯誤!"); 12 txtPwd.setText(""); 13 } 14 } else { 15 lblMsg1.setText("該管理員不存在 !"); 16 } 17 } 18 } 19 20 public class ResetListener implements ActionListener{ 21 public void actionPerformed(ActionEvent e) { 22 txtName.setText(""); 23 txtPwd.setText(""); 24 } 25 }
管理員登入效果如下:
考生查詢成績部分程式碼如下:
1 private void showData() { 2 String id = txtId.getText(); 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 DBUtil db = new DBUtil(); 5 try { 6 db.getConnection(); 7 ResultSet rs = db.executeQuery(sql, null); 8 ResultSetMetaData rsmd = rs.getMetaData(); 9 int colCount = rsmd.getColumnCount(); 10 Vector<String> title = new Vector<String>(); //存放標題 11 for(int i = 1;i<=colCount;i++) { 12 title.add(rsmd.getColumnLabel(i)); 13 } 14 Vector<Vector<String>> data = new Vector<Vector<String>>(); //存放表格資料 15 int rowCount = 0; 16 while(rs.next()) { 17 rowCount++; 18 Vector<String> rowdata = new Vector<String>(); //存放行資料 19 for(int i = 1;i<=colCount;i++) { 20 rowdata.add(rs.getString(i)); 21 } 22 data.add(rowdata); 23 } 24 if(rowCount == 0) { 25 model.setDataVector(null, title); 26 } else { 27 model.setDataVector(data,title); 28 } 29 } catch(Exception ee) { 30 System.out.println(ee.toString()); 31 JOptionPane.showMessageDialog(this, "系統出現異常錯誤。請檢查資料庫。系統即將推出!!!","錯誤",0); 32 } finally { 33 db.closeAll(); 34 } 35 JOptionPane.showMessageDialog(null, "查詢到該考生資訊"); 36 }
考生查詢成績效果如下:
考生成績匯出部分程式碼如下:
1 public void saveFile() { 2 JFileChooser fc = new JFileChooser(); 3 int rVal = fc.showSaveDialog(this); 4 if(rVal == JFileChooser.APPROVE_OPTION) { 5 String fileName = fc.getSelectedFile().getName(); 6 String path = fc.getCurrentDirectory().toString(); 7 try { 8 TableModel model = table.getModel(); 9 FileWriter fw = new FileWriter(path + "/" + fileName); 10 for(int i=0; i < model.getColumnCount(); i++) { 11 fw.write(model.getColumnName(i) + "\t"); 12 } 13 fw.write("\n"); 14 for(int i=0; i< model.getRowCount(); i++) { 15 for(int j=0; j < model.getColumnCount(); j++) { 16 fw.write(model.getValueAt(i,j).toString()+"\t"); 17 } 18 fw.write("\n"); 19 } 20 fw.close(); 21 } catch(Exception e) { 22 e.printStackTrace(); 23 } 24 JOptionPane.showMessageDialog(null, "匯出成功"); 25 } 26 }
考生成績匯出效果如下:
考生修改密碼部分程式碼如下:
1 public class listener_of_delete implements ActionListener{ 2 public void actionPerformed(ActionEvent e){ 3 String id = jtId.getText(); 4 String code = new String(jpCode.getPassword()); 5 String code1 = new String(jpCode1.getPassword()); 6 DBUtil db = new DBUtil(); 7 String sql = "update information_of_students set pwd = '"+code+"' where id = '"+id+"'"; 8 if(code.equals(code1)){ 9 try { 10 db.getConnection(); 11 db.executeUpdate(sql,null); 12 } catch(Exception ee) { 13 System.out.println(ee.toString()); 14 } finally { 15 db.closeAll(); 16 } 17 JOptionPane.showMessageDialog(null, "修改成功"); 18 } 19 else{ 20 JOptionPane.showMessageDialog(null, "兩次密碼不一樣!"); 21 } 22 } 23 }
考生修改密碼效果如下:
管理員主皮膚部分程式碼如下:
1 public MainFrame_Of_Administration() { 2 super("Administration"); 3 ImageIcon qstIcon = new ImageIcon("images\\1.png"); 4 this.setIconImage(qstIcon.getImage()); 5 p = new JPanel(); 6 setBak(); 7 clipboard=getToolkit().getSystemClipboard(); 8 Container c = getContentPane(); 9 p.setOpaque(false); 10 c.add(p); 11 p.setLayout(null); 12 13 jbInsert = new JButton("新增考生資訊"); 14 jbDelete = new JButton("刪除考生資訊"); 15 jbUpdate = new JButton("修改考生資訊"); 16 jbAdministration = new JButton("返回登入介面"); 17 jbResetCode = new JButton("重置考生密碼"); 18 19 jbAdministration.addActionListener(new loginframe_of_administration()); 20 jbDelete.addActionListener(new listener_of_delete()); 21 jbInsert.addActionListener(new listener_of_insert()); 22 jbUpdate.addActionListener(new listener_of_update()); 23 jbResetCode.addActionListener(new listener_of_reset()); 24 25 jbInsert.setBounds(0,20,120,25); 26 jbDelete.setBounds(0,55,120,25); 27 jbUpdate.setBounds(0,90,120,25); 28 jbAdministration.setBounds(0,125,120,25); 29 jbResetCode.setBounds(0,165,120,25); 30 31 p.add(jbInsert); 32 p.add(jbDelete); 33 p.add(jbUpdate); 34 p.add(jbAdministration); 35 p.add(jbResetCode); 36 this.add(p); 37 this.setLocation(200,100); 38 this.setSize(533,300); 39 this.setResizable(false); 40 this.setVisible(true); 41 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 42 43 }
管理員主皮膚效果如下:
新增考生資訊部分程式碼如下:
1 public class listener_of_insert implements ActionListener{ 2 public void actionPerformed(ActionEvent e){ 3 DBUtil db = new DBUtil(); 4 String preparedsql = "insert into information_of_grade(id,geography,chemistry,IT,history,biology,mathematics,general_technique,physics,english,chinese,politics)"+"values(?,?,?,?,?,?,?,?,?,?,?,?)"; 5 6 try { 7 db.getConnection(); 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 db.executeUpdate(preparedsql, param); 10 } catch(Exception ee) { 11 System.out.println(ee.toString()); 12 } finally { 13 db.closeAll(); 14 } 15 JOptionPane.showMessageDialog(null, "成功新增考生資訊"); 16 } 17 }
新增考生資訊效果如下:
刪除考生資訊部分程式碼如下:
1 public class listener_of_delete implements ActionListener{ 2 public void actionPerformed(ActionEvent e){ 3 String id = jtId.getText(); 4 DBUtil db = new DBUtil(); 5 String sql = "delete from information_of_grade where id = '"+id+"'"; 6 7 try { 8 db.getConnection(); 9 db.executeUpdate(sql,null); 10 } catch(Exception ee) { 11 System.out.println(ee.toString()); 12 } finally { 13 db.closeAll(); 14 } 15 JOptionPane.showMessageDialog(null, "成功刪除考生資訊"); 16 } 17 }
刪除考生資訊效果如下:
修改考生資訊部分程式碼如下:
1 public class listener_of_delete implements ActionListener{ 2 public void actionPerformed(ActionEvent e){ 3 String id = jtId.getText(); 4 String code = new String(jpCode.getPassword()); 5 String code1 = new String(jpCode1.getPassword()); 6 DBUtil db = new DBUtil(); 7 String sql = "update information_of_students set pwd = '"+code+"' where id = '"+id+"'"; 8 if(code.equals(code1)){ 9 try { 10 db.getConnection(); 11 db.executeUpdate(sql,null); 12 } catch(Exception ee) { 13 System.out.println(ee.toString()); 14 } finally { 15 db.closeAll(); 16 } 17 JOptionPane.showMessageDialog(null, "修改成功"); 18 } 19 else{ 20 JOptionPane.showMessageDialog(null, "兩次密碼不一樣!"); 21 } 22 } 23 }
修改考生資訊效果如下:
重置考生密碼部分程式碼如下:
1 public class listener_of_delete implements ActionListener{ 2 public void actionPerformed(ActionEvent e){ 3 String id = jtId.getText(); 4 DBUtil db = new DBUtil(); 5 String sql = "update information_of_students set pwd = '000000' where id = '"+id+"'"; 6 try { 7 db.getConnection(); 8 db.executeUpdate(sql,null); 9 } catch(Exception ee) { 10 System.out.println(ee.toString()); 11 } finally { 12 db.closeAll(); 13 } 14 JOptionPane.showMessageDialog(null, "重置成功"); 15 } 16 }
重置考生密碼效果如下:
四、完整原始碼下載
五、作者Info
作者:南柯樹下,Goal:讓程式設計更有趣!
原創微信公眾號:『小鴻星空科技』,專注於演算法、爬蟲,網站,遊戲開發,資料分析、自然語言處理,AI等,期待你的關注,讓我們一起成長、一起Coding!
版權宣告:本文禁止抄襲、轉載 ,侵權必究!
歡迎掃碼關注我的原創公眾號【小鴻星空科技】,回覆【學生會考成績管理系統】獲取完整專案
—— —— —— —— — END —— —— —— —— ————
歡迎掃碼關注我的公眾號
小鴻星空科技