學(xué)籍管理系統(tǒng)(內(nèi)含源代碼_第1頁
學(xué)籍管理系統(tǒng)(內(nèi)含源代碼_第2頁
學(xué)籍管理系統(tǒng)(內(nèi)含源代碼_第3頁
學(xué)籍管理系統(tǒng)(內(nèi)含源代碼_第4頁
學(xué)籍管理系統(tǒng)(內(nèi)含源代碼_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、XX學(xué)院計算機科學(xué)與技術(shù)系實 驗 報 告課程名稱程序設(shè)計基礎(chǔ)實驗(2)實驗項目應(yīng)用系統(tǒng)的面向?qū)ο笤O(shè)計與分析實驗類型綜合性實驗完成人所在班級指導(dǎo)教師完成日期2009年11月 30日實驗報告正文一實驗報告簡表實驗課題名稱學(xué)籍管理系統(tǒng)綜合性實驗項目應(yīng)用系統(tǒng)的面向?qū)ο笤O(shè)計與分析服務(wù)課程程序設(shè)計基礎(chǔ)實驗(2)實驗小組組長指導(dǎo)教師參與實驗人員及其在實驗課題中承擔(dān)的主要任務(wù)(包括組長)學(xué) 號小組成員姓名班 級在實驗課題中的主要作用二設(shè)計內(nèi)容與要求設(shè)計內(nèi)容:設(shè)計基于文件結(jié)構(gòu)的學(xué)籍管理系統(tǒng)設(shè)計要求: (1)錄入學(xué)生基本信息的功能界面 (2)修改學(xué)生基本信息的功能界面 (3)查詢學(xué)生基本信息的功能界面 (4)刪除

2、學(xué)生基本信息的功能界面三總體設(shè)計,包括需求分析、功能描述、設(shè)計工具與運行環(huán)境、類及類間關(guān)系描述等a、 Student.java:程序的入口。初始化主界面,使主界面位于屏幕中間,且用戶不能改變其大小。b、 MainFrame.java:程序的主界面。由菜單、登陸界面和操作選項所構(gòu)成。其中菜單的“文件”中各操作項必須在登陸后方可選擇,輸入用戶名和密碼點擊“進入”,提示登陸成功之后(用戶名和密碼在數(shù)據(jù)庫的Admin表中,如果用戶填的密碼或用戶名錯誤或沒填都會產(chǎn)生相應(yīng)的警告框),登陸界面消失,出現(xiàn)“添加信息”、“修改信息”、“信息查詢”和“刪除信息”四個按鈕,且菜單中的操作項也被激活。點擊要操作的按鈕

3、或菜單項,進入要操作的界面(窗口出現(xiàn)在屏幕左上角)。c、 AddInf.java:添加信息界面。按照要求添入基本信息,如果用戶填錯或沒填,提示錯誤信息(如不能添加已經(jīng)注冊的學(xué)號)。填寫完整后,點擊“增加”按鈕,將信息加入數(shù)據(jù)庫的BaseInf表中。d、 ChangeInf.java:修改信息界面。按照提示輸入要修改信息的學(xué)生學(xué)號,點擊“下一步”(如果數(shù)據(jù)庫無此學(xué)號,則提示“無此對應(yīng)信息”),從數(shù)據(jù)庫中將該學(xué)生的完整信息讀出,用戶修改之后點擊“修改”即可。注意:為了防止意外,修改學(xué)生信息時,程序禁止了對學(xué)號的修改。(為了程序設(shè)計方便和代碼重用,修改信息的代碼是先刪此該生所有信息,再將修改后的信息

4、全部添加到數(shù)據(jù)庫,這也是數(shù)據(jù)庫修改的原理)e、 SeachInf.java:查詢信息界面。輸入要查詢的學(xué)生的學(xué)號或姓名(也可兩項都填寫),點擊“查詢”,將提示“查無對應(yīng)信息”或?qū)⒉樵兊降膶W(xué)生完整信息顯示出來,如果有多條對應(yīng)信息,“下一條”按鈕可選,單擊之后可查看下一滿足條件的信息,查找準確的學(xué)生信息。f、 DelInf.java:刪除信息界面。輸入要刪除信息的學(xué)生的學(xué)號,單擊“下一步”,程序給出該生的完整信息,點擊“刪除”,提示是否確定刪除對話框,仔細查看信息確認無誤后,單擊“確定”完成刪除,否則單擊“取消”。四詳細設(shè)計,包括類圖及代碼等Student.java: import javax.s

5、wing.UIManager;import java.awt.*;public class Student boolean packFrame = false; public Student() MainFrame frame = new MainFrame(); if (packFrame) frame.pack(); else frame.validate(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (fram

6、eSize.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 void main(St

7、ring args) try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e) e.printStackTrace(); new Student(); MainFrame.java:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class MainFrame extends JFrame boolean login = false; JPan

8、el contentPane; JMenuBar jMenuBar1 = new JMenuBar();/*菜單條*/ JMenu jMenuFile = new JMenu();/*菜單項*/ JMenu jMenuHelp = new JMenu();/*菜單項*/ JMenuItem jMenuFileExit = new JMenuItem();/*菜單子項*/ JMenuItem jMenuHelpAbout = new JMenuItem();/*菜單子項*/ JMenuItem jMenuItem1 = new JMenuItem();/*菜單子項*/ JMenuItem jMe

9、nuItem2 = new JMenuItem();/*菜單子項*/ JMenuItem jMenuItem3 = new JMenuItem();/*菜單子項*/ JMenuItem jMenuItem4 = new JMenuItem();/*菜單子項*/ JMenuItem jMenuItem5 = new JMenuItem();/*菜單子項*/ Label label1 = new Label();/*標簽*/ Label label2 = new Label();/*標簽*/ Label label3 = new Label();/*標簽*/ Label label4 = new

10、Label();/*標簽*/ Button button1 = new Button();/*按鈕*/ Button button2 = new Button();/*按鈕*/ Button button3 = new Button();/*按鈕*/ Button button4 = new Button();/*按鈕*/ Button button5 = new Button();/*按鈕*/ TextField textField1 = new TextField();/*文本框*/ TextField textField2 = new TextField();/*文本框*/ public

11、 MainFrame() /*構(gòu)造函數(shù)*/ enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit(); catch (Exception e) e.printStackTrace(); private void jbInit() throws Exception /*初始化*/ contentPane = (JPanel)this.getContentPane();/*初始化一個容器*/ contentPane.setLayout(null); contentPane.setEnabled(false);/*設(shè)置是否啟用該組件 FALSE表示

12、不啟用*/ contentPane.setOpaque(true);/*該組件繪制其邊界內(nèi)的所有像素*/ contentPane.setPreferredSize(new Dimension(1, 1);/*設(shè)置組建的首選大小*/ contentPane.setRequestFocusEnabled(true);/*提供一個關(guān)于此 JComponent 是否應(yīng)該獲得焦點的提示*/ this.setForeground(Color.black); this.setResizable(false);/*設(shè)置此窗體為不可由用戶調(diào)整大小*/ this.setSize(new Dimension(400

13、, 300);/*調(diào)整窗口大小 寬為400高為300*/ this.setTitle(學(xué)籍管理系統(tǒng)); jMenuBar1.setEnabled(true); jMenuBar1.setBorderPainted(true);/*如果該屬性為 true 并且按鈕有邊框,則繪制該邊框*/ jMenuFile.setVerifyInputWhenFocusTarget(true);/*設(shè)置該值指示是否在此組件請求焦點前,為當前的焦點所有者調(diào)用輸入校驗器*/ jMenuFile.setActionCommand(文件); jMenuFile.setText(文件); jMenuHelp.setTex

14、t(幫助); jMenuFileExit.setText(退出); jMenuFileExit.addActionListener(new MainFrame_ActionAdapter(this); jMenuHelpAbout.setText(關(guān)于); jMenuHelpAbout.addActionListener(new MainFrame_ActionAdapter(this); label1.setFont(new Font(Dialog, 1, 15); label1.setText(用 戶:); label1.setBounds(new Rectangle(123, 25, 4

15、9, 16); label2.setFont(new Font(Dialog, 1, 15); label2.setText(密 碼:); label2.setBounds(new Rectangle(123, 62, 49, 16); textField1.setText(); textField1.setBounds(new Rectangle(192, 24, 62, 18); textField2.setEchoChar(*); textField2.setText(); textField2.setBounds(new Rectangle(192, 61, 62, 18); butt

16、on1.setLabel(進入系統(tǒng)); button1.setFont(new Font(Dialog, 1, 15); button1.setBounds(new Rectangle(150, 104, 101, 22); button1.addActionListener(new MainFrame_ActionAdapter(this); label3.setFont(new Font(Dialog, 1, 15); label3.setForeground(Color.red); label3.setText(請選擇操作項); label3.setVisible(false); lab

17、el3.setBounds(new Rectangle(158, 92, 84, 16); button2.setFont(new Font(Dialog, 1, 15); button2.setLabel(添加信息); button2.setVisible(false); button2.setBounds(new Rectangle(74, 136, 97, 33); button3.setFont(new Font(Dialog, 1, 15); button3.setLabel(修改信息); button3.setVisible(false); button3.setBounds(ne

18、w Rectangle(226, 136, 97, 33); button4.setFont(new Font(Dialog, 1, 15); button4.setLabel(信息查詢); button4.setVisible(false); button4.setBounds(new Rectangle(74, 185, 97, 33); button5.setFont(new Font(Dialog, 1, 15); button5.setLabel(刪除信息); button5.setVisible(false); button5.setBounds(new Rectangle(226

19、, 185, 97, 33); jMenuItem1.setText(添加信息); jMenuItem2.setText(信息查詢); jMenuItem3.setText(修改信息); jMenuItem4.setText(刪除信息); jMenuItem5.setText(幫助); label4.setFont(new Font(Dialog, 1, 30); label4.setText(學(xué)籍管理系統(tǒng)); label4.setVisible(false); label4.setBounds(new Rectangle(70, 37, 261, 33); jMenuFile.add(jMe

20、nuItem1); jMenuItem1.setEnabled(false); jMenuItem1.addActionListener(new MainFrame_ActionAdapter(this); jMenuItem2.setEnabled(false); jMenuFile.add(jMenuItem2); jMenuItem2.addActionListener(new MainFrame_ActionAdapter(this); jMenuItem3.setEnabled(false); jMenuFile.add(jMenuItem3); jMenuItem3.addActi

21、onListener(new MainFrame_ActionAdapter(this); jMenuItem4.setEnabled(false); jMenuFile.add(jMenuItem4); jMenuItem4.addActionListener(new MainFrame_ActionAdapter(this); jMenuFile.add(jMenuFileExit); jMenuHelp.add(jMenuItem5); jMenuHelp.add(jMenuHelpAbout); jMenuBar1.add(jMenuFile); jMenuBar1.add(jMenu

22、Help); contentPane.add(label1, null); contentPane.add(label2, null); contentPane.add(textField1, null); contentPane.add(textField2, null); contentPane.add(label3, null); contentPane.add(button2, null); button2.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button4, null); butto

23、n4.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button3, null); button3.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button5, null); button5.addActionListener(new MainFrame_ActionAdapter(this); contentPane.add(button1, null); contentPane.add(label4, nu

24、ll); this.setJMenuBar(jMenuBar1); public void jMenuFileExit_actionPerformed(ActionEvent e) System.exit(0); public void jMenuHelpAbout_actionPerformed(ActionEvent e) protected void processWindowEvent(WindowEvent e) cessWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) jMenuFileExit

25、_actionPerformed(null); void button1_actionPerformed(ActionEvent e) String user = textField1.getText().trim(); String pass = textField2.getText().trim(); try String strurl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=DataBase/student.mdb; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connec

26、tion conn = DriverManager.getConnection(strurl); Statement stmt = conn.createStatement(); if (user.equals()| pass.equals() JOptionPane.showMessageDialog(null, 用戶名或密碼不能為空, 警告, JOptionPane.WARNING_MESSAGE); else ResultSet rs = stmt.executeQuery(select * from admin where username= + user + AND password

27、= + pass + ); if (rs.next() JOptionPane.showMessageDialog(null, 登陸成功); login = true; label1.setVisible(false); textField1.setVisible(false); label2.setVisible(false); textField2.setVisible(false); button1.setVisible(false); label3.setVisible(true); label4.setVisible(true); button2.setVisible(true);

28、button3.setVisible(true); button4.setVisible(true); button5.setVisible(true); jMenuItem1.setEnabled(true); jMenuItem2.setEnabled(true); jMenuItem3.setEnabled(true); jMenuItem4.setEnabled(true); else JOptionPane.showMessageDialog(null, 登陸失敗, 警告, JOptionPane.WARNING_MESSAGE); catch (Exception eg) eg.p

29、rintStackTrace(); class MainFrame_ActionAdapter implements ActionListener MainFrame adaptee; MainFrame_ActionAdapter(MainFrame adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) if (e.getSource() = adaptee.jMenuFileExit) adaptee.jMenuFileExit_actionPerformed(e); else if (e.g

30、etSource() = adaptee.jMenuItem1 | e.getSource() = adaptee.button2) AddInf addInf = new AddInf(); addInf.setSize(400, 300); addInf.setVisible(true); else if (e.getSource() = adaptee.jMenuItem3 | e.getSource() = adaptee.button3) ChangeInf changeInf = new ChangeInf(); changeInf.setSize(400, 300); chang

31、eInf.setVisible(true); else if (e.getSource() = adaptee.jMenuItem2 | e.getSource() = adaptee.button4) SearchInf searchInf = new SearchInf(); searchInf.setSize(400, 300); searchInf.setVisible(true); else if (e.getSource() = adaptee.jMenuItem4 | e.getSource() = adaptee.button5) DelInf delInf = new Del

32、Inf(); delInf.setSize(400, 300); delInf.setVisible(true); else if (e.getSource() = adaptee.jMenuHelpAbout) adaptee.jMenuHelpAbout_actionPerformed(e); else if (e.getSource() = adaptee.button1) adaptee.button1_actionPerformed(e); AddInf.javaimport javax.swing.*;import java.awt.*;import java.awt.event.

33、*;import java.sql.*;public class AddInf extends JFrame implements ActionListener Label label1 = new Label(); TextField textField1 = new TextField(); Label label2 = new Label(); TextField textField2 = new TextField(); Label label3 = new Label(); Choice choice1 = new Choice(); Label label4 = new Label

34、(); TextField textField3 = new TextField(); Label label5 = new Label(); Choice choice2 = new Choice(); Label label6 = new Label(); TextField textField4 = new TextField(); Label label7 = new Label(); Choice choice3 = new Choice(); Label label8 = new Label(); TextField textField5 = new TextField(); La

35、bel label9 = new Label(); TextArea textArea1 = new TextArea(); Button button1 = new Button(); public AddInf() try jbInit(); catch (Exception e) e.printStackTrace(); private void jbInit() throws Exception this.setEnabled(true); this.setResizable(false); this.setTitle(增加學(xué)生信息); this.setDefaultCloseOper

36、ation(HIDE_ON_CLOSE); label1.setText(學(xué) 號:); label1.setBounds(new Rectangle(30, 11, 51, 33); this.getContentPane().setLayout(null); textField1.setText(); textField1.setBounds(new Rectangle(86, 16, 74, 22); label2.setText(姓名:); label2.setBounds(new Rectangle(162, 11, 28, 33); textField2.setText(); tex

37、tField2.setBounds(new Rectangle(192, 16, 44, 22); label3.setText(性別:); label3.setBounds(new Rectangle(241, 11, 28, 33); choice1.setEnabled(true); choice1.setFont(new Font(Dialog, 0, 12); choice1.setForeground(Color.black); choice1.setLocale(java.util.Locale.getDefault(); choice1.setVisible(true); ch

38、oice1.setBounds(new Rectangle(275, 15, 50, 25); choice1.addItem(男); choice1.addItem(女); label4.setText(出生日期:); label4.setBounds(new Rectangle(31, 53, 49, 33); textField3.setText(YYYY-MM-DD); textField3.setBounds(new Rectangle(86, 58, 74, 22); label5.setText(政治面貌:); label5.setBounds(new Rectangle(241

39、, 53, 47, 33); choice2.setBounds(new Rectangle(296, 57, 72, 25); choice2.setVisible(true); choice2.setLocale(java.util.Locale.getDefault(); choice2.setForeground(Color.black); choice2.setFont(new Font(Dialog, 0, 12); choice2.setEnabled(true); label6.setText(籍貫:); label6.setBounds(new Rectangle(163,

40、53, 26, 33); textField4.setText(); textField4.setBounds(new Rectangle(191, 58, 44, 22); label7.setText(系 別:); label7.setBounds(new Rectangle(30, 94, 50, 33); choice3.setEnabled(true); choice3.setFont(new Font(Dialog, 0, 12); choice3.setForeground(Color.black); choice3.setLocale(java.util.Locale.getD

41、efault(); choice3.setVisible(true); choice3.setBounds(new Rectangle(86, 98, 75, 25); label8.setText(專業(yè):); label8.setBounds(new Rectangle(163, 94, 26, 33); textField5.setText(); textField5.setBounds(new Rectangle(190, 99, 178, 22); label9.setText(備 注:); label9.setBounds(new Rectangle(27, 132, 50, 33)

42、; textArea1.setBounds(new Rectangle(84, 139, 285, 92); button1.setLabel(增加); button1.setVisible(true); button1.setBounds(new Rectangle(156, 244, 89, 22); button1.addActionListener(this); this.getContentPane().add(label3, null); this.getContentPane().add(label1, null); this.getContentPane().add(textF

43、ield1, null); this.getContentPane().add(label2, null); this.getContentPane().add(textField2, null); this.getContentPane().add(choice1, null); this.getContentPane().add(label4, null); this.getContentPane().add(textField3, null); this.getContentPane().add(label6, null); this.getContentPane().add(textF

44、ield4, null); this.getContentPane().add(label5, null); this.getContentPane().add(choice2, null); this.getContentPane().add(label7, null); this.getContentPane().add(choice3, null); this.getContentPane().add(label8, null); this.getContentPane().add(textField5, null); this.getContentPane().add(label9,

45、null); this.getContentPane().add(textArea1, null); this.getContentPane().add(button1, null); choice2.addItem(團員); choice2.addItem(黨員); choice2.addItem(其他); choice3.addItem(計算機); choice3.addItem(電子); choice3.addItem(生化); choice3.addItem(藝術(shù)); public void actionPerformed(ActionEvent e) try String strur

46、l = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=DataBase/student.mdb; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.getConnection(strurl); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(select 學(xué)號 from BaseInf where 學(xué)號= + textField1.g

47、etText() + ); if (rs.next() JOptionPane.showMessageDialog(null, 此學(xué)號已經(jīng)被注冊., 警告, JOptionPane.WARNING_MESSAGE); return; stmt.execute( insert into BaseInf (學(xué)號,系別,專業(yè),姓名,性別,出年日期,籍貫,政治面貌,備注) values ( + textField1.getText() + , + choice3.getSelectedItem() + , + textField5.getText() + , + textField2.getText(

48、) + , + choice1.getSelectedItem() + , + textField3.getText() + , + textField4.getText() + , + choice2.getSelectedItem() + , + textArea1.getText() + ); textField1.setText(); textField2.setText(); textField3.setText(); textField4.setText(); textField5.setText(); textArea1.setText(); JOptionPane.showMe

49、ssageDialog(null, 增加信息成功!); catch (Exception eg) JOptionPane.showMessageDialog(null, 請認真檢查各項(不能為空),n日期要合法!然后重試., 異常警告, JOptionPane.WARNING_MESSAGE); eg.printStackTrace(); ChangeInf.java:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class ChangeInf extends JFrame implements ActionListener String strurl; Connection conn; Statement stmt; ResultSet rs; Label label1 = new Label(); TextField textField1 = n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論