版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)生學(xué)籍管理詳細(xì)設(shè)計(jì)學(xué)號:姓名:班級: 、設(shè)計(jì)題目: 學(xué)生學(xué)籍管理:設(shè)計(jì)內(nèi)容:設(shè)計(jì) GUI 學(xué)生學(xué)籍管理界面,用戶可以加入學(xué)生信息,并對基本信息進(jìn)行修 改,添加,查詢,刪除。三:設(shè)計(jì)要求: 進(jìn)行簡單的學(xué)生信息管理。四:總體設(shè)計(jì)主窗體的設(shè)計(jì) 添加學(xué)生信息窗體 查詢學(xué)生信息窗體 修改學(xué)生信息窗體 刪除學(xué)生信息窗體(1)登陸界面的設(shè)計(jì)(2)(3)(4)(5)(6) (7)事件響應(yīng)的處理 五:具體設(shè)計(jì) (1)程序結(jié)構(gòu)的說明:A B C D E F. G H入口程序: student.java; 登陸界面程序: mainframe.java;tj.java;xg.java; cx.java; sc.ja
2、va;主窗體程序: interfac.java; 添加信息窗口程序 修改信息窗口程序 查詢信息窗口程序 刪除信息窗口程序 程序數(shù)據(jù)連接: DatabaseConn.java;(2)程序代碼及分析說明A. 程序源代碼(已提交)B. Student.java 是程序的入口。使登錄窗口位于窗口中間,并且不可改變窗口 大小。C. mainframe.java 是程序的登陸窗體。輸入用戶名和密碼(用戶名和密碼在數(shù) 據(jù)庫的 password 表中)點(diǎn)擊“進(jìn)入系統(tǒng)”,然后登陸界面消失;出現(xiàn)要操作的界 面(屏幕左上角) 。表中。D. tj.java 是添加信息界面。添加基本信息后,點(diǎn)擊“添加信息”按鈕,將信息
3、 加入 xinxiE. xg.java 是修改信息界面。輸入要修改的學(xué)號或姓名(兩者數(shù)其一或全部輸 入),并輸入所有信息,點(diǎn)擊“修改信息”按鈕(如果數(shù)據(jù)庫中不存在此學(xué)號, 則彈出對話框“無此學(xué)生信息” ),若有則修改。F. sc.java 是刪除信息界面。 輸入要?jiǎng)h除的學(xué)生的學(xué)號, 點(diǎn)擊“刪除信息” 按鈕, 彈出確認(rèn)刪除對話框,即可刪除該生信息。G. cx.java 是查詢信息界面。輸入要查詢的學(xué)生學(xué)號,點(diǎn)擊“信息查詢”按鈕, 在相應(yīng)的文本區(qū)里顯示查詢的信息。H:源代碼/student.java: 程序的入口。初始化界面,使主界面位于屏幕中間,且用戶不 能改變大小/ 功能:完成程序的執(zhí)行順序i
4、mport javax.swing.UIManager;import java.awt.*;import java.sql.*;/import screenpublic class studentboolean packFrame=false;/JFrame frame=new JFrame();public student()mainframe frame=new mainframe();if(packFrame)frame.pack();elseframe.validate();Dimension screenSize=Toolkit.getDefaultToolkit().getScre
5、enSize();Dimension frameSize=frame.getSize(); if(frameSize.heightscreenSize.height) frameSize.height=screenSize.height; if(frameSize.widthscreenSize.width)frameSize.width=screenSize.width;frame.setLocation(screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(t
6、rue);public static void main(String args)tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName( ); catch(Exception e)e.printStackTrace();new student();/ 數(shù)據(jù)庫連接/package sql.database;import java.sql.*;public class DatabaseConnprivate static String user=;private static String password=;pri
7、vate Connection conn=null;private Statement stmt=null;private ResultSet rs=null;static加載驅(qū)動(dòng) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);/ catch(ClassNotFoundException e)/ 創(chuàng)建數(shù)據(jù)庫連接對象public Connection getConnection()tryconn=DriverManager.getConnection(jdbc:odbc:stu,user,password);return conn;catch(SQ
8、LException e)return null;public Statement createStat()try conn=getConnection(); stmt=conn.createStatement(); return stmt;catch(SQLException e)return null;public ResultSet getRs(String sql)tryconn=getConnection();/. stmt=createStat(); rs=stmt.executeQuery(sql); return rs;catch(SQLException e)return n
9、ull; public void close()tryif(rs!=null)rs.close();if(stmt!=null)stmt.close();if(conn!=null)conn.close(); catch(SQLException ex) ex.printStackTrace(); implements ActionListener用 戶 ); 密 碼 ); /mainframe.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public cla
10、ss mainframe extends JFrame static mainframe s;static JPanel pan=new JPanel(); static JLabel label1 = new JLabel( static JLabel label2 = new JLabel(static JTextField textField1 = new JTextField(); static JPasswordField password = new JPasswordField(); static JButton button1 = new JButton(進(jìn)入系統(tǒng) );管理員
11、,true);/學(xué)生); 教師);static JRadioButton radioButton1=new JRadioButton( 管理員”初始狀態(tài)被選中 static JRadioButton radioButton2=new JRadioButton( static JRadioButton radioButton3=new JRadioButton( ButtonGroup buttonGroup=new ButtonGroup();public mainframe()JLabel label=new JLabel(new ImageIcon( 圖片 44.jpg); label.s
12、etSize(400,400);pan.add(label); pan.setLayout(null); pan.setSize(400,400); this.setTitle( 學(xué)籍管理系統(tǒng) ); this.setSize(400,400); this.setLayout(null);label1.setBounds(100,25,49,20); textField1.setBounds(155,24,120,20); label2.setBounds(100,62,49,20); password.setBounds(155,61,120,20); button1.setBounds(15
13、0,200,101,22);radioButton1.setBounds(105,120,80,20);radioButton2.setBounds(180,120,60,20); radioButton3.setBounds(240,120,60,20); button1.addActionListener(this); buttonGroup.add(radioButton1);buttonGroup.add(radioButton2); buttonGroup.add(radioButton3); this.add(radioButton1); this.add(radioButton2
14、); this.add(radioButton3); this.add(label1); this.add(label2); this.add(textField1); this.add(password); this.add(button1); this.add(pan); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);public static void main(String args)new mainframe();public void actionPerformed(Action
15、Event e)if(radioButton1.isSelected()/ if(textField1.getText().equals(syc) password.getText().equals(123)interfac b=new interfac();this.dispose(); /JOptionPane.showMessageDialog(null, 登陸成功 );else if(.equals(textField1.getText() .equals(password.getText() )JOptionPane.showMessageDialog(null, 用戶名或密碼不能為
16、管理員&|else用戶名或密碼輸入JOptionPane.showMessageDialog(null, 有誤);學(xué)生if(radioButton2.isSelected()/ tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage(); tryConnection conDriverManager.getConnection(jdbc:odbc:stu,sa,);Statement stmt = c
17、on.createStatement();ResultSet rs = stmt.executeQuery(select * from password where 戶 名 = +textField1.getText()+ and 密 碼 +password.getText()+);if(textField1.getText().equals()|password.getText().equals() 用戶名或密碼您的輸入有誤 );JOptionPane.showMessageDialog(this,不可為空! );else if(rs.next() new interfac();elseJO
18、ptionPane.showMessageDialog(this,/stmt.close();catch (SQLException se) JOptionPane.showMessageDialog(s,se.getMessage();/interface.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class interfac extends JFrame implements ActionListener菜單條菜單項(xiàng)添加信息 );/ 菜單子項(xiàng) 修改信息 );信息查詢 );刪除信息 );
19、static JMenuBar jMenuBar = new JMenuBar();/ static JMenu jMenuFile = new JMenu(文件 );/static JMenu jMenuExit = new JMenu(退出 );請選擇操作項(xiàng) ); 學(xué)籍管理系統(tǒng) ); 添加信息 ); 修改信息 ); 信息查詢 ); 刪除信息 );static JMenuItem jMenuItem1 = new JMenuItem( static JMenuItem jMenuItem2 = new JMenuItem( static JMenuItem jMenuItem3 = new
20、JMenuItem( static JMenuItem jMenuItem4 = new JMenuItem(staticstaticstaticstaticstaticstaticJLabel label3 = new JLabel( JLabel label4 = new JLabel( JButton button2 = new JButton(JButton button3 = new JButton( JButton button4 = new JButton(JButton button5 = new JButton(public interfac()this.setTitle(
21、學(xué)籍管理系統(tǒng) ); this.setLayout(null);this.setSize(400,400); label3.setBounds(158,92,98,33);label3.setFont(new Font(Dialog,Font.PLAIN,15);label4.setFont(new Font(Dialog,Font.BOLD,20); label4.setBounds(157,37,280,40); button2.setBounds(74,136,97,33); button3.setBounds(226,136,97,33); button4.setBounds(74,18
22、5,97,33); button5.setBounds(226,185,97,33); this.add(button2);this.add(button3);this.add(button4);this.add(button5); this.add(label3); this.add(label4); setJMenuBar(jMenuBar);jMenuFile.add(jMenuItem1);/ ”文件“菜單項(xiàng)中加入子菜單 jMenuFile.add(jMenuItem2);jMenuFile.add(jMenuItem3); jMenuFile.add(jMenuItem4);jMen
23、uBar.add(jMenuFile);/ 將菜單項(xiàng)加入菜單條 jMenuBar.add(jMenuExit);本窗口向按鈕事件源注冊本窗口菜單子項(xiàng)注冊button2.addActionListener(this);/ button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); jMenuItem1.addActionListener(this);/ jMenuItem2.addActionListener(this); jMenuItem3.addActi
24、onListener(this); jMenuItem4.addActionListener(this); jMenuExit.addActionListener(this); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); public static void main(String args) interfac a=new interfac();按鈕事件的處理public void actionPerformed(ActionEvent e) / if(e.getSource()=jMe
25、nuExit) System.exit(0);else if(e.getSource()=jMenuItem1|e.getSource()=button2) try tj a=new tj(); catch(Exception ee) else if(e.getSource()=jMenuItem2|e.getSource()=button3) try xg a=new xg(); catch(Exception ed) else if(e.getSource()=jMenuItem3|e.getSource()=button4) trycx a=new cx(); catch(Excepti
26、on ec) else if(e.getSource()=jMenuItem4|e.getSource()=button5)/tj.javatrysc a=new sc();catch(Exception es)添加界面 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;public class tj extends JFrame implements ActionListener static tj s;static JLabel label1 = new JLabel(學(xué)號
27、 :);static JTextField textField1 = new JTextField(); static JLabel label2 = new JLabel(姓名 :);static JTextField textField2 = new JTextField(); static JLabel label3 = new JLabel(性別 :);static JTextField textField7=new JTextField(); static JLabel label4 = new JLabel( 出生日期 :); static JTextField textField
28、3 = new JTextField();static JLabel label5 = new JLabel( 政治面貌 :); static JTextField textField8=new JTextField();static JLabel label6 = new JLabel(籍貫 );static JTextField textField4 = new JTextField(); static JLabel label7 = new JLabel(系別 :);static JTextField textField9 = new JTextField(); static JLabe
29、l label8 = new JLabel(專業(yè) :);static JTextField textField5 = new JTextField(); static JButton button1 = new JButton( 增加 ); public tj() this.setTitle( 增加學(xué)生信息 ); this.setLayout(null);this.setSize(400,400); label1.setBounds(30, 11, 51, 33); textField1.setBounds(86, 16, 74, 22); label2.setBounds(162, 11,
30、51, 33); textField2.setBounds(192, 16, 44, 22); label3.setBounds(241, 11, 70, 33); textField7.setBounds(275, 15, 50, 25); label4.setBounds(31, 53, 55, 33); textField3.setBounds(86, 58, 74, 22); label5.setBounds(241, 53, 70, 33); textField8.setBounds(296, 57, 72, 25); label6.setBounds(163, 53, 26, 33
31、); textField4.setBounds(191, 58, 44, 22); label7.setBounds(30, 94, 50, 33); textField9.setBounds(86,94,74,22); label8.setBounds(163, 94, 51, 33); textField5.setBounds(190, 99, 178, 22); button1.setBounds(25,241,80,33); button1.addActionListener(this); this.add(label1); this.add(label2); this.add(lab
32、el3); this.add(label4); this.add(label5); this.add(label6); this.add(label7); this.add(label8); this.add(textField1); this.add(textField2); this.add(textField3); this.add(textField4); this.add(textField5); this.add(textField7); this.add(textField8); this.add(textField9);this.add(button1); this.setDe
33、faultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); public static void main(String args) throws Exceptionnew tj(); tj a=事件處理程序a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e)/ if (e.getSource() = button1) tryClass.forName(sun.jdbc.odbc.Jdb
34、cOdbcDriver);catch (ClassNotFoundException ce) JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con DriverManager.getConnection(jdbc:odbc:stu,sa, );Statement stmt = con.createStatement();ResultSet rs=stmt.executeQuery(select * from xinxi where 學(xué) 號 =+textField1.getText()+); if(rs.next()
35、JOptionPane.showMessageDialog(null, 此學(xué)號已經(jīng)被注冊 );else stmt.execute(insert into xinxi (學(xué)號,姓名, 性別, 出生日期 , 政治面貌 ,籍貫, 系別, 專業(yè)) values (+ textField1.getText()+,+textField2.getText()+,+textField7.getText()+,+ textField3.getText()+,+textField8.getText()+,+textField4.getText()+,+ textField9.getText()+,+textFie
36、ld5.getText()+);JOptionPane.showMessageDialog(null, 添加信息成功 );catch (SQLException se) JOptionPane.showMessageDialog(s,se.getMessage();/xg.java 修改界面 import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;public class xg extends JFrame implements ActionListener static xg s;st
37、atic JLabel label1 = new JLabel(學(xué)號 :);static JTextField textField1 = new JTextField(); static JLabel label2 = new JLabel(姓名 :);static JTextField textField2 = new JTextField(); static JLabel label3 = new JLabel(性別 :);static JTextField textField7=new JTextField();static JLabel label4 = new JLabel(出生日期
38、 :);static JTextField textField3 = new JTextField();static JLabel label5 = new JLabel(政治面貌 :);static JTextField textField8=new JTextField();static JLabel label6 = new JLabel( 籍貫 ); static JTextField textField4 = new JTextField(); static JLabel label7 = new JLabel(系別 :);static JTextField textField9 =
39、 new JTextField(); static JLabel label8 = new JLabel( 專業(yè) :); static JTextField textField5 = new JTextField(); static JButton button2=new JButton(修改 );public xg()this.setTitle( 修改學(xué)生信息 ); this.setLayout(null);this.setSize(400,400); label1.setBounds(30, 11, 51, 33); textField1.setBounds(86, 16, 74, 22)
40、; label2.setBounds(162, 11, 51, 33); textField2.setBounds(192, 16, 44, 22); label3.setBounds(241, 11, 70, 33); textField7.setBounds(275, 15, 50, 25); label4.setBounds(31, 53, 55, 33); textField3.setBounds(86, 58, 74, 22); label5.setBounds(241, 53, 70, 33); textField8.setBounds(296, 57, 72, 25); labe
41、l6.setBounds(163, 53, 26, 33);textField4.setBounds(191, 58, 44, 22); label7.setBounds(30, 94, 50, 33); textField9.setBounds(86,94,74,22); label8.setBounds(163, 94, 51, 33); textField5.setBounds(190, 99, 178, 22); button2.setBounds(115,241,80,33); button2.addActionListener(this);this.add(label1); thi
42、s.add(label2); this.add(label3); this.add(label4); this.add(label5); this.add(label6); this.add(label7); this.add(label8); this.add(textField1); this.add(textField2); this.add(textField3); this.add(textField4); this.add(textField5); this.add(textField7); this.add(textField8); this.add(textField9); t
43、his.add(button2); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true);public static void main(String args) throws Exception xg a=new xg();事件處理程序a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e)/ if(e.getSource()=button2) tryClass.f
44、orName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce) JOptionPane.showMessageDialog(s,ce.getMessage();tryxinxi where 學(xué) 號學(xué)號不可為空!Connection con = DriverManager.getConnection (jdbc:odbc:stu,sa,);Statement stmt = con.createStatement();ResultSet rs=stmt.executeQuery(select * from =+textF
45、ield1.getText()+);if(textField1.getText().trim().equals()JOptionPane.showMessageDialog(this,);else if(rs.next()String=+textField1.getText()+,=+updateSql=update姓名xinxiset 學(xué) 號=+textField7.getText()+,生日期 =+性別textField2.getText()+,出textField3.getText()+,政治面貌=+textField8.getText()系別+, 籍貫 =+textField4.get
46、Text()+,=+textField9.getText()+,業(yè)=+專textField5.getText()+ ; trystmt.executeQuery(updateSql); catch(SQLException se) JOptionPane.showMessageDialog(null, 修改成 功); catch(SQLException se)JOptionPane.showMessageDialog(s,se.getMessage(); /sc.java 刪除界面 import javax.swing.*; import java.awt.*; import java.aw
47、t.event.*; import java.sql.*;public class sc extends JFrame implements ActionListener static sc s;static JLabel label1 = new JLabel(學(xué)號 :);static JTextField textField1 = new JTextField(); static JLabel label2 = new JLabel(姓名 :);static JTextField textField2 = new JTextField(); static JLabel label3 = n
48、ew JLabel(性別 :);static JTextField textField7=new JTextField(); static JLabel label4 = new JLabel(出生日期 :);static JTextField textField3 = new JTextField();static JLabel label5 = new JLabel(政治面貌 :);static JTextField textField8=new JTextField();static JLabel label6 = new JLabel( 籍貫 ); static JTextField
49、textField4 = new JTextField(); static JLabel label7 = new JLabel(系別 :);static JTextField textField9 = new JTextField(); static JLabel label8 = new JLabel( 專業(yè) :); static JTextField textField5 = new JTextField(); static JButton button4=new JButton(刪除 );public sc() throws Exceptionthis.setTitle( 刪除學(xué)生信息
50、 ); this.setLayout(null); this.setSize(400,400); label1.setBounds(30, 11, 51, 33); textField1.setBounds(86, 16, 74, 22); label2.setBounds(162, 11, 51, 33); textField2.setBounds(192, 16, 44, 22); label3.setBounds(241, 11, 70, 33); textField7.setBounds(275, 15, 50, 25); label4.setBounds(31, 53, 55, 33
51、); textField3.setBounds(86, 58, 74, 22); label5.setBounds(241, 53, 70, 33); textField8.setBounds(296, 57, 72, 25); label6.setBounds(163, 53, 26, 33); textField4.setBounds(191, 58, 44, 22); label7.setBounds(30, 94, 50, 33); textField9.setBounds(86,94,74,22);label8.setBounds(163, 94, 51, 33);textField
52、5.setBounds(190, 99, 178, 22);button4.setBounds(295,241,80,33);button4.addActionListener(this);this.add(label1);this.add(label2);this.add(label3);this.add(label4);this.add(label5);this.add(label6);this.add(label7);this.add(label8);this.add(textField1);this.add(textField2);this.add(textField3);this.a
53、dd(textField4);this.add(textField5);this.add(textField7);this.add(textField8);this.add(textField9);this.add(button4);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true);public static void main(String args) throws Exceptionsc a= new sc();a.setDefaultCloseOperation(JFrame.EXI
54、T_ON_CLOSE);public void actionPerformed(ActionEvent e)/scif (e.getSource() = button4)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce) JOptionPane.showMessageDialog(s,ce.getMessage();try Connection conDriverManager.getConnection(jdbc:odbc:stu,sa,);Statement stmt = con.createStatement();ResultSet rs=stmt.executeQuery(select * from xinxi where 號 i+textField1.getText()+”);if(textField1.getText().trim().equals()學(xué)號不可為空!JOptionPane.showMessageDialog(this,);else if(rs.next()確 定要?jiǎng)h除該信, 刪 除 確 定JOptionPane.sh
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 考前模擬卷A-2023年高考地理一模考前模擬卷(江蘇專用)(解析版)
- 2024年房產(chǎn)買賣合同產(chǎn)權(quán)轉(zhuǎn)移
- 2024年度體育賽事組織與推廣合同
- 職場的心得體會(huì)(12篇萬能)
- 2024年體育賽事贊助與廣告授權(quán)合同
- 2024年廣告圍擋工程設(shè)計(jì)與安裝合同
- 幼兒園聽課心得體會(huì)萬能模板(6篇)
- 2024年技術(shù)合同:技術(shù)開發(fā)與合作條款詳解
- 2024年婚姻法律咨詢合同
- 2024年教育費(fèi)用分期付款協(xié)議
- 新部編人教版六年級下冊道德與法治全冊精品教案(教學(xué)設(shè)計(jì))
- 《小小的船》課件
- 《太陽出來喜洋洋》 課件
- 《管理會(huì)計(jì)》課程標(biāo)準(zhǔn)
- 上、下水庫工程庫岸處理施工方案
- 閥門結(jié)構(gòu)和工作原理(下)
- 安全現(xiàn)場文明施工措施費(fèi)用清單
- father knows better說課教案教學(xué)(課堂PPT)
- 防護(hù)欄生命工程監(jiān)理實(shí)施細(xì)則全解
- 環(huán)甲膜穿刺術(shù)PPT課件
- 長軌運(yùn)輸 - T11長軌列車收軌作業(yè)
評論
0/150
提交評論