




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、學生學籍管理詳細設計 學號:_ 姓名:_ 班級:_1、 設計題目:學生學籍管理二:設計內(nèi)容: 設計GUI學生學籍管理界面,用戶可以加入學生信息,并對基本信息進行修改,添加,查詢,刪除。三:設計要求: 進行簡單的學生信息管理。四:總體設計 (1)登陸界面的設計 (2)主窗體的設計 (3)添加學生信息窗體 (4)查詢學生信息窗體 (5)修改學生信息窗體 (6)刪除學生信息窗體 (7)事件響應的處理五:具體設計(1) 程序結構的說明:A. 入口程序:student.java;B. 登陸界面程序:mainframe.java;C. 主窗體程序:interfac.java;D. 添加信息窗口程序:tj.
2、java;E. 修改信息窗口程序:xg.java;F. 查詢信息窗口程序:cx.java;G. 刪除信息窗口程序:sc.java;H. 程序數(shù)據(jù)連接:DatabaseConn.java;(2) 程序代碼及分析說明A.程序源代碼(已提交)B.Student.java是程序的入口。使登錄窗口位于窗口中間,并且不可改變窗口大小。C.mainframe.java是程序的登陸窗體。輸入用戶名和密碼(用戶名和密碼在數(shù)據(jù)庫的password表中)點擊“進入系統(tǒng)”,然后登陸界面消失;出現(xiàn)要操作的界面(屏幕左上角)。D.tj.java是添加信息界面。添加基本信息后,點擊“添加信息”按鈕,將信息加入xinxi表中
3、。E.xg.java是修改信息界面。輸入要修改的學號或姓名(兩者數(shù)其一或全部輸入),并輸入所有信息,點擊“修改信息”按鈕(如果數(shù)據(jù)庫中不存在此學號,則彈出對話框“無此學生信息”),若有則修改。F.sc.java是刪除信息界面。輸入要刪除的學生的學號,點擊“刪除信息”按鈕,彈出確認刪除對話框,即可刪除該生信息。G.cx.java是查詢信息界面。輸入要查詢的學生學號,點擊“信息查詢”按鈕,在相應的文本區(qū)里顯示查詢的信息。H:源代碼/student.java:程序的入口。初始化界面,使主界面位于屏幕中間,且用戶不能改變大小/功能:完成程序的執(zhí)行順序import javax.swing.UIManag
4、er;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();else frame.validate();Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();Dimension frame
5、Size=frame.getSize();if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;frame.setLocation(screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);public static
6、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 tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");/加載驅動 catch(ClassNotFoundException e)/創(chuàng)建數(shù)據(jù)庫連接對象public Connection getConnection()tryconn=DriverManager.getConnection("jdbc:odbc:stu",user,passwor
8、d);return conn;catch(SQLException e)return null;public Statement createStat()tryconn=getConnection();stmt=conn.createStatement();return stmt;catch(SQLException e)return null;public ResultSet getRs(String sql) try conn=getConnection();/. stmt=createStat(); rs=stmt.executeQuery(sql); return rs; catch(
9、SQLException e) return null; public void close() try if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); catch(SQLException ex) ex.printStackTrace(); /mainframe.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class mainframe
10、extends JFrame implements ActionListenerstatic 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(); st
11、atic JButton button1 = new JButton("進入系統(tǒng)"); static JRadioButton radioButton1=new JRadioButton("管理員",true);/“管理員”初始狀態(tài)被選中 static JRadioButton radioButton2=new JRadioButton("學生"); static JRadioButton radioButton3=new JRadioButton("教師"); ButtonGroup buttonGroup=ne
12、w ButtonGroup(); public mainframe()JLabel label=new JLabel(new ImageIcon("圖片44.jpg");label.setSize(400,400);pan.add(label);pan.setLayout(null);pan.setSize(400,400);this.setTitle("學籍管理系統(tǒng)");this.setSize(400,400);this.setLayout(null);label1.setBounds(100,25,49,20);textField1.setBoun
13、ds(155,24,120,20);label2.setBounds(100,62,49,20);password.setBounds(155,61,120,20);button1.setBounds(150,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); butt
14、onGroup.add(radioButton2);buttonGroup.add(radioButton3);this.add(radioButton1);this.add(radioButton2);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(t
15、rue); public static void main(String args) new mainframe(); public void actionPerformed(ActionEvent e) if(radioButton1.isSelected()/管理員 if(textField1.getText().equals("syc") && password.getText().equals("123")interfac b=new interfac();this.dispose();/JOptionPane.showMessa
16、geDialog(null,"登陸成功");else if("".equals(textField1.getText() | "".equals(password.getText() )JOptionPane.showMessageDialog(null,"用戶名或密碼不能為空");else JOptionPane.showMessageDialog(null,"用戶名或密碼輸入有誤");if(radioButton2.isSelected()/學生 tryClass.forName("
17、;sun.jdbc.odbc.JdbcOdbcDriver");catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con = DriverManager.getConnection("jdbc:odbc:stu","sa","");Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("
18、select * from password where 用戶名 = '"+textField1.getText()+"' and 密碼 = '"+password.getText()+"'"); if(textField1.getText().equals("")|password.getText().equals("") JOptionPane.showMessageDialog(this,"用戶名或密碼不可為空!"); else if(rs.nex
19、t() new interfac(); else JOptionPane.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 ActionL
20、istenerstatic JMenuBar jMenuBar = new JMenuBar();/菜單條 static JMenu jMenuFile = new JMenu("文件");/菜單項 static JMenu jMenuExit = new JMenu("退出"); static JMenuItem jMenuItem1 = new JMenuItem("添加信息");/菜單子項 static JMenuItem jMenuItem2 = new JMenuItem("修改信息"); static
21、JMenuItem jMenuItem3 = new JMenuItem("信息查詢"); static JMenuItem jMenuItem4 = new JMenuItem("刪除信息"); static JLabel label3 = new JLabel("請選擇操作項"); static JLabel label4 = new JLabel("學籍管理系統(tǒng)"); static JButton button2 = new JButton("添加信息"); static JButton
22、button3 = new JButton("修改信息"); static JButton button4 = new JButton("信息查詢"); static JButton button5 = new JButton("刪除信息"); public interfac()this.setTitle("學籍管理系統(tǒng)");this.setLayout(null);this.setSize(400,400);label3.setBounds(158,92,98,33);label3.setFont(new Fon
23、t("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,185,97,33);button5.setBounds(226,185,97,33);this.add(button2);this.add(button3);this.add(
24、button4);this.add(button5);this.add(label3);this.add(label4);setJMenuBar(jMenuBar);jMenuFile.add(jMenuItem1);/”文件“菜單項中加入子菜單 jMenuFile.add(jMenuItem2); jMenuFile.add(jMenuItem3); jMenuFile.add(jMenuItem4); jMenuBar.add(jMenuFile);/將菜單項加入菜單條 jMenuBar.add(jMenuExit); button2.addActionListener(this);/本窗
25、口向按鈕事件源注冊 button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); jMenuItem1.addActionListener(this);/本窗口菜單子項注冊 jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuExit.addActionListener(this); th
26、is.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()=jMenuExit) System.exit(0); else if(e.getSource()=jMenuItem1|e.getSource()=button2) try tj a=new
27、 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) try cx a=new cx(); catch(Exception ec) else if(e.getSource()=jMenuItem4|e.getSource()=button5) try sc a=new sc(); catch(Ex
28、ception es) /tj.java 添加界面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("學號:"); static JTextField textField1 = new JTextField(""); static JLab
29、el 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 textField3 = ne
30、w 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("系別:&quo
31、t;); static JTextField textField9 = new JTextField(""); static JLabel label8 = new JLabel("專業(yè):"); static JTextField textField5 = new JTextField(""); static JButton button1 = new JButton("增加"); public tj() this.setTitle("增加學生信息"); this.setLayout(null)
32、; 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); textField3.setBounds(
33、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); textField5.setBounds(190, 99, 1
34、78, 22); button1.setBounds(25,241,80,33); button1.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.add(textFi
35、eld4); this.add(textField5); this.add(textField7); this.add(textField8); this.add(textField9); this.add(button1); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); public static void main(String args) throws Exception tj a=new tj(); a.setDefaultCloseOperation(JFrame.EXIT
36、_ON_CLOSE); public void actionPerformed(ActionEvent e)/事件處理程序 if (e.getSource() = button1) tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con = DriverManager.getConnection("jdbc:odbc:stu&q
37、uot;,"sa"," ");Statement stmt = con.createStatement(); ResultSet rs=stmt.executeQuery("select * from xinxi where 學號='"+textField1.getText()+"'"); if(rs.next() JOptionPane.showMessageDialog(null,"此學號已經(jīng)被注冊"); else stmt.execute("insert into
38、 xinxi (學號,姓名,性別,出生日期,政治面貌,籍貫,系別,專業(yè)) values ('"+ textField1.getText()+"','"+textField2.getText()+"','"+textField7.getText()+"','"+ textField3.getText()+"','"+textField8.getText()+"','"+textField4.getTe
39、xt()+"','"+ textField9.getText()+"','"+textField5.getText()+"')"); JOptionPane.showMessageDialog(null,"添加信息成功"); catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage(); /xg.java 修改界面import javax.swing.*;import java.awt.*;imp
40、ort java.awt.event.*;import java.sql.*;public class xg extends JFrame implements ActionListener static xg s; static JLabel label1 = new JLabel("學號:"); static JTextField textField1 = new JTextField(""); static JLabel label2 = new JLabel("姓名:"); static JTextField textFiel
41、d2 = new JTextField(""); static JLabel label3 = new JLabel("性別:"); static JTextField textField7=new JTextField(""); static JLabel label4 = new JLabel("出生日期:"); static JTextField textField3 = new JTextField(""); static JLabel label5 = new JLabel("
42、;政治面貌:"); 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(""); s
43、tatic JLabel label8 = new JLabel("專業(yè):"); static JTextField textField5 = new JTextField(""); static JButton button2=new JButton("修改"); public xg() this.setTitle("修改學生信息"); this.setLayout(null); this.setSize(400,400); label1.setBounds(30, 11, 51, 33); textField1
44、.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); textField3.setBounds(86, 58, 74, 22); label5.setBounds(241, 53, 70, 33); textField8.setBou
45、nds(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); textField5.setBounds(190, 99, 178, 22); button2.setBounds(115,241,80,33); button2.addActionListener(
46、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.add(textField4); this.add(textField5); this.add(textField7); this.add(textFiel
47、d8); this.add(textField9); this.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.g
48、etSource()=button2) tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con = DriverManager.getConnection("jdbc:odbc:stu","sa","");Statement stmt = con.createStatement(
49、); ResultSet rs=stmt.executeQuery("select * from xinxi where 學號='"+textField1.getText()+"'"); if(textField1.getText().trim().equals("") JOptionPane.showMessageDialog(this,"學號不可為空!"); else if(rs.next() String updateSql="update xinxi set 學號='&qu
50、ot;+textField1.getText()+"', 姓名='"+ textField2.getText()+"',性別='"+textField7.getText()+"',出生日期='"+ textField3.getText()+"',政治面貌='"+textField8.getText()+"',籍貫='"+ textField4.getText()+"',系別='"+
51、textField9.getText()+"',專業(yè)='"+ textField5.getText()+ "'" try stmt.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.a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 碎石加工生產(chǎn)承包合同5篇
- 業(yè)務介紹居間合同
- 企業(yè)信用額度擔保合同
- 2025年貴陽貨運從業(yè)資格證考試試題及答案大全
- 公路工程管理與養(yǎng)護作業(yè)指導書
- 2025年三門峽c1貨運從業(yè)資格證考試題下載
- 2025年泉州貨車叢業(yè)資格證考試題
- 2025年簡單店面租賃合同7篇
- 2025年合資經(jīng)營標準版合同5篇
- 茶酒的購銷合同范本
- DB13-T 6002-2024 應急科普教育場館建設規(guī)范
- 2025屆高三數(shù)學一輪總復習 第二章 第一講 函數(shù)的概念及其表示
- 全國職業(yè)院校技能大賽高職組(軟件測試賽項)備賽試題庫(含答案)
- 四川甘孜州招聘康定市投資發(fā)展集團有限公司招聘筆試題庫2024
- 2024年甘肅省中考物理試題卷(含答案解析)
- 英文黑衣人電影介紹課件
- 房屋買賣合同預交定金協(xié)議
- DL∕T 657-2015 火力發(fā)電廠模擬量控制系統(tǒng)驗收測試規(guī)程
- 小米創(chuàng)業(yè)思考(商業(yè)思考)
- JTG F40-2004 公路瀝青路面施工技術規(guī)范
- JT-T-1045-2016道路運輸企業(yè)車輛技術管理規(guī)范
評論
0/150
提交評論