JAVA版班級通訊錄(含代碼)_第1頁
JAVA版班級通訊錄(含代碼)_第2頁
JAVA版班級通訊錄(含代碼)_第3頁
JAVA版班級通訊錄(含代碼)_第4頁
JAVA版班級通訊錄(含代碼)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、武漢工商學院項目名稱: 班級通訊錄程序設計 學生姓名: 劉偉 學 號: 14404036 班 級: 14計科數(shù)據(jù)處理實驗班 指導教師: 喻曉 2015年12月 13 日目錄TOC o 1-3 h u HYPERLINK l _Toc7904 1選題背景 PAGEREF _Toc7904 1 HYPERLINK l _Toc6665 PAGEREF _Toc6665 1 HYPERLINK l _Toc9920 PAGEREF _Toc9920 1 HYPERLINK l _Toc18671 GUI技術簡介 PAGEREF _Toc18671 1 HYPERLINK l _Toc151 PAGE

2、REF _Toc151 1 HYPERLINK l _Toc22901 PAGEREF _Toc22901 2 HYPERLINK l _Toc12 PAGEREF _Toc12 2 HYPERLINK l _Toc9889 PAGEREF _Toc9889 2 HYPERLINK l _Toc6666 PAGEREF _Toc6666 3 HYPERLINK l _Toc11139 2功能設計 PAGEREF _Toc11139 7 HYPERLINK l _Toc22192 PAGEREF _Toc22192 7 HYPERLINK l _Toc6348 PAGEREF _Toc6348

3、8 HYPERLINK l _Toc19390 3詳細設計 PAGEREF _Toc19390 10 HYPERLINK l _Toc14982 PAGEREF _Toc14982 10 HYPERLINK l _Toc15622 PAGEREF _Toc15622 14 HYPERLINK l _Toc22511 4測試系統(tǒng) PAGEREF _Toc22511 17 HYPERLINK l _Toc13091 總結 PAGEREF _Toc13091 19 HYPERLINK l _Toc9260 參考文獻 PAGEREF _Toc9260 191選題背景通訊錄在當今的日常生活工作中是十分普

4、及的,每個人都擁有大量的通訊錄資料信息,當前大家一般都用手工來記錄所有的通訊信息。隨著時代的發(fā)展,人們的聯(lián)系方式及信息變得復雜多樣,通訊錄信息大量增加,導致管理這些信息資料就成了問題。直接操作來查找,添加,修改,刪除這些信息,由于數(shù)據(jù)多,工作量十分巨大,查找,編輯,都很困難,而且極易出錯,容易造成資料里的混亂與丟失。所以,運用文件或數(shù)據(jù)處庫技術建立一個通訊錄資料系統(tǒng)十分必要,使通訊錄資料管理工作規(guī)范化,程序化,避免資料管理中的混亂。提高信息處理速度和準確性,能夠及時準確有效的查詢和修改通訊錄。1.2.1GUI技術簡介GUI,用戶與程序之間可以方便地進行交互。Java包含了許多支持GUI設計的類

5、,如按鈕,菜單,列表,文本框等組件類,同時要包含窗口,面板等容器類。Java1.0剛出現(xiàn)時,包含一個用于基本GUI編程的類庫,Sun把它叫做抽象窗體工具箱(Abstract Window Toolkit,AWT).AWT庫處理用戶界面元素的方法是把這些元素的創(chuàng)建及其行為委托給每個目標平臺(Window,Solaris,Macintosh等)的本地GUI工具進行處理。不同平臺的AWT用戶界面而存在著不同的bug。程序員們必須在每一個平臺上測試他們的應用程序,他們因此嘲笑AWT是“一次編寫,到處調試”。1.2.2輸入輸出流簡介輸入/輸出時,數(shù)據(jù)在通信通道中流動。所謂“數(shù)據(jù)流(stream)”指的是

6、所有數(shù)據(jù)通信通道之中,數(shù)據(jù)的起點和終點。信息的通道就是一個數(shù)據(jù)流。只要是數(shù)據(jù)從一個地方“流”到另外一個地方,這種數(shù)據(jù)流動的通道都可以稱為數(shù)據(jù)流。輸入/輸出是相對于程序來說的。程序在使用數(shù)據(jù)時所扮演的角色有兩個:一個是源,一個是目的。若程序是數(shù)據(jù)流的源,即數(shù)據(jù)的提供者,這個數(shù)據(jù)流對程序來說就是一個“輸出數(shù)據(jù)流”(數(shù)據(jù)從程序流出)。若程序是數(shù)據(jù)流的終點,這個數(shù)據(jù)流對程序而言就是一個“輸入數(shù)據(jù)流”(數(shù)據(jù)從程序外流向程序)。系統(tǒng)測試環(huán)境被測試軟件系統(tǒng)的名稱課程設計項目班級通訊錄程序設計系統(tǒng)任務提出者喻曉老師系統(tǒng)開發(fā)者14計科數(shù)據(jù)處理實驗班:劉偉系統(tǒng)用戶及安裝此軟件的計算中心1-708機房、1-710機

7、房、1-710機房、3-106機房。測試環(huán)境與實際運行環(huán)境之間的差異以及這些差異對測試結果的影響測試環(huán)境: Windows2000/ XP、Windows10、JDK1.7、NetBeans。本系統(tǒng)運用的開發(fā)工具主要是Eclipse。Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。Swing是一個用于開發(fā)Java應用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包(AWT)為基礎使跨平臺應用

8、程序可以使用任何可插拔的外觀風格。Swing開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。該系統(tǒng)的設計還運用到文件的相關知識。Java使用File類創(chuàng)建的對象來獲取文件本身的一些信息,如文件所在的目錄、文件的長度、文件讀寫權限等,文件對象并不涉及對文件的讀寫操作。 班級通訊錄的功能模塊有: (1)提供登錄界面,保護班級成員個人信息; (2)添加:可以添加聯(lián)系人到班級通訊錄,依次輸入學號、姓名、家庭住址、 號碼等,用戶可以隨時繼續(xù)添加; (3)查詢:可以通過學號查詢班級成員; (4)修改:輸入要修改的學號后,再依次輸入學號、姓名、家庭住址、 號碼等即

9、可完成修改; (5)刪除:可以通過刪除學號直接刪除某個聯(lián)系人的信息。NN圖1-1 登錄界面流程圖為了保證班級通訊錄中同學的私人信息不被泄露,設計了此功能,此流程圖是用戶在進入通訊錄之前所設的,使系統(tǒng)更加嚴密,只有用戶輸入正確的用戶名和密碼才能進入。保證了系統(tǒng)的嚴密性和實用性,達到功能的完善。結束開始結束開始 圖1-2 主菜單流程圖該流程圖是主界面的總體功能圖,即上面所顯示的模塊:添加模塊、查找模塊、刪除模塊、修改模塊等。圖1-3 添加功能流程圖該流程圖是為了實現(xiàn)添加班級成員功能的,在菜單選項中點擊“錄入學生基本信息”菜單項,便會進入信息錄入界面,輸入用戶即將添加的人信息,包括:聯(lián)系人姓名、學號

10、、 號、地址,點擊“錄入”按鈕,在此前,各項信息被寫入到文件中保存,添加完成。YY 圖1-4 刪除功能流程圖該流程圖是為了實現(xiàn)刪除功能的,點擊主窗體中的“刪除學生基本信息”菜單,即可輸入聯(lián)系人的學號,此過程中還需將讀取文件寫到數(shù)組中,之后刪除該文件中的所有內容。YY圖1-5 查找流程圖該流程是為了實現(xiàn)查找功能而設計的,當用戶需要查找某一個人的信息的時候,輸入該學生的學號,點擊查詢,即可顯示該生的所有信息。2功能設計從技術角度分析實現(xiàn)的功能圖形用戶界面設計中的功能表2-1 功能測試概要表序號功能內容控件對象名備注添加學生JMenuItemStudentSituation子菜單(添加人)刪除聯(lián)系人

11、JMenuItemDelete子菜單(刪除人)修改聯(lián)系人JMenuItemModifySituation子菜單(修改人)查找聯(lián)系人JMenuItemInquest子菜單(查找人)5.修改聯(lián)系人JButtonB1確定修改按鈕6.修改聯(lián)系人JButtonb2取消修改按鈕表2-2 文件測試概要表序號文件內容類名類對象名備注1文件讀ObjectInputStreamfile2創(chuàng)文件輸出流FileOutputStreamout3文件寫ObjectOutputStreamfile4創(chuàng)文件輸入流FileInputStreamin從系統(tǒng)角度分析實現(xiàn)的功能 個人通訊錄管理系統(tǒng)設計的總體框圖如下:圖2-1 功能模

12、塊圖 該個人通訊錄管理系統(tǒng)總體功能主要包括以上幾類:(1)添加聯(lián)系人;(2)刪除聯(lián)系人;(3)修改聯(lián)系人;(4)查找聯(lián)系人。在圖形用戶界面中,用戶可以根據(jù)自己的需要,點擊界面上的菜單或按鈕進行某一功能的選擇,一旦選定了某個模塊,便進入到下一個窗體界面,進而實現(xiàn)你所要實現(xiàn)的功能操作。圖2-2 菜單欄圖 菜單欄中控件分布如上圖所示,菜單欄:(編輯、操作)、編輯:(添加組名、添加聯(lián)系人、刪除聯(lián)系人)、操作:(修改聯(lián)系人、查找聯(lián)系人)。3詳細設計 圖3-1 用戶登錄界面圖為了保證班級通訊錄中同學的私人信息不被泄露,設計了此功能,此流程圖是用戶在進入通訊錄之前所設的,使系統(tǒng)更加嚴密,只有用戶輸入正確的用

13、戶名和密碼才能進入。保證了系統(tǒng)的嚴密性和實用性,達到功能的完善。如果正確,則有如下界面圖:圖3-2 主界面圖此界面是登錄進去后的歡迎界面,右上角的“菜單選項”為主菜單,除了退出功能外,在進入其他功能是隨時都可以點擊菜單選項用來進入不同的功能。首先我們來進入錄入界面,錄入界面如下圖: 圖3-3 錄入界面圖 圖3-4 錄入界面提示圖 進入錄入界面后,依次輸入學號、姓名選擇性別、專業(yè)、住址、 。然后點擊錄入,將信息保存到文件中,如果學號輸入重復,則會提示:“該生基本信息已存在,請到修改頁面修改”。圖3-5 信息修改圖 在修改界面中首先輸入要修改的學號,接著輸入新的,姓名選擇性別、專業(yè)、住址、 等,

14、如果大面積的輸錯,則可以點擊右下方的重置按鈕,以上錯誤信息便會清空,重新輸入正確信息。 圖3-6 查詢界面圖 在查詢界面中,只需要輸入學號,點擊“查詢”即可顯示該同學的所有信息。圖3-7 刪除功能界面圖 圖3-8 刪除功能界面圖該界面圖是刪除功能的輸入界面圖,在輸入框中輸入要刪除的學號,點擊“刪除”后,會提示是否刪除該同學的信息,同時該同學的信息會顯示出來以便于確認信息。關鍵代碼說明(1) 1)成員變量表3-1 主要成員變量表成員變量描述變量類型變量名稱基本信息錄入界面基本信息修改界面基本信息查詢界面基本信息刪除界面菜單選項 存基本信息的散列表存放散列表的文件StudentSituationM

15、odifySituationInquestDeleteJMenuItemHashtableFile基本信息錄入基本信息修改基本信息查詢基本信息刪除錄入,修改,查詢,刪除基本信息file 2)方法表3-2 主要方法表名稱功能備注StudentManageractionPerformedmain創(chuàng)建程序主窗口 處理ActionEvent事件程序開始運行構造方法接口方法(2)學生對象 1)成員變量表3-3 主要成員變量表描述變量類型變量名稱學號姓名所學專業(yè)家庭住址出生性別StringStringStringStringStringStringNumberNameDisciplingGradeBort

16、hSex 2). 方法表3-4 主要方法表名稱功能SetnumberSetnumberSetnameSetnamesetDiscipingsetDiscipingsetGradesetGradesetBorthsetBorthsetSexsetSex設置學號獲取學號設置姓名獲取姓名設置所學專業(yè)獲取所學專業(yè)設置家庭住址獲取家庭住址設置 獲取 設置性別獲取性別public class StudentManager extends JFrame implements ActionListener StudentSituation 基本信息錄入=null; /先把基本信息設置為空 ModifySitu

17、ation 基本信息修改=null; Inquest 基本信息查詢=null; Delete 基本信息刪除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 錄入,修改,查詢,刪除,退出; /設置窗口的標簽 Container con=null;/容器置為空 Hashtable 基本信息=null; /散列表置為空 File file=null;/文件置為空 CardLayout card=null;/布局管理置為空 JLabel label; JPanel pCenter; public StudentManager()/成員變量 setTitle(

18、歡迎進入班級管理系統(tǒng)); 錄入=new JMenuItem(錄入學生基本信息); 修改=new JMenuItem(修改學生基本信息); 查詢=new JMenuItem(查詢學生基本信息); 刪除=new JMenuItem(刪除學生基本信息); 退出=new JMenuItem(退出本系統(tǒng));/標簽設置 退出.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) System.exit(0);/退出系統(tǒng) ); bar=new JMenuBar(); fileMenu=new

19、 JMenu(菜單選項);/設置主菜單 fileMenu.add(錄入); fileMenu.addSeparator(); fileMenu.add(修改); fileMenu.addSeparator(); fileMenu.add(查詢); fileMenu.addSeparator(); fileMenu.add(刪除); fileMenu.addSeparator(); fileMenu.addSeparator(); fileMenu.add(退出); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel(歡迎進入班級管理系統(tǒng)!

20、,label.CENTER);/設置主頁面的歡迎語句 label.setFont(new Font(隸書,Font.BOLD,30);/設置字體以及字的大小 label.setForeground(Color.blue);/設置字體顏色 基本信息=new Hashtable();/新建一個散列表 錄入.addActionListener(this); 修改.addActionListener(this); 查詢.addActionListener(this); 刪除.addActionListener(this); card=new CardLayout();/新的布局管理 con=getCo

21、ntentPane();/定義容器 pCenter=new JPanel(); pCenter.setLayout(card); file=new File(學生基本信息.txt);/新建一個文件 if(!file.exists()/判斷指定位置的文件是否存在 try FileOutputStream out=new FileOutputStream(file);/創(chuàng)建一個文件輸出流 ObjectOutputStreamobjectOut=new ObjectOutputStream(out);/寫入文件 objectOut.writeObject(基本信息);/對象為“基本信息” objec

22、tOut.close();/關閉文件 out.close(); catch(IOException e)/捕獲IO(輸入輸出)異常 基本信息錄入=new StudentSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查詢=new Inquest(this,file); 基本信息刪除=new Delete(file); pCenter.add(歡迎語界面,label); pCenter.add(錄入界面,基本信息錄入); pCenter.add(修改界面,基本信息修改); pCenter.add(刪除界面,基本信息刪除); con.a

23、dd(pCenter,BorderLayout.CENTER);/將pCenter 加入到容器中 采用邊界布局方式 將pCenter 居中 con.validate(); addWindowListener(new WindowAdapter()/給窗口注冊一個事件監(jiān)聽器 public void windowClosing(WindowEvent e) System.exit(0); ); setVisible(true);/將圖形界面設置為可見的 setBounds(100,50,420,380);/設置窗口的大小 validate(); 以上是使用對象流讀寫文件的部分代碼,ObjectOu

24、tputStream 將 Java 對象的基本數(shù)據(jù)類型和圖形寫入 HYPERLINK :/ haosou /s?q=OutputStream&ie=utf-8&src=wenda_link t :/wenda.haosou /q/_blank OutputStream??梢允褂?ObjectInputStream 讀取(重構)對象。通過在流中使用文件可以實現(xiàn)對象的持久存儲。如果流是網(wǎng)絡 HYPERLINK :/ haosou /s?q=%E5%A5%97%E6%8E%A5%E5%AD%97&ie=utf-8&src=wenda_link t :/wenda.haosou /q/_blank 套

25、接字流,則可以在另一臺主機上或另一個進程中重構對象。 只能將支持 java.io.Serializable 接口的對象寫入流中。每個 serializable 對象的類都被編碼,編碼內容包括類名和類簽名、對象的字段值和數(shù)組值,以及從初始對象中引用的其他所有對象的閉包。4測試系統(tǒng)在登錄時,若用戶名或密碼中有一項與之所設不同時,即會彈出提示輸入錯誤的窗體,提示錯誤的窗體如下圖所示: 圖4-1 錯誤提示界面圖 此界面是提示界面,即之前登錄輸入錯誤時顯示,此界面的設計使系統(tǒng)更加優(yōu)化,因為用戶的輸入必定存在與用戶名或密碼不相同的情況,此界面的設計在現(xiàn)實中合情合理,也使用戶瞬間知道自己輸入的是對是錯。在實

26、現(xiàn)錄入功能時,如若用戶輸入的同學學號之前錄入過時,則有下圖提示:圖4-2 錄入功能提示界面圖在實現(xiàn)查找、刪除、修改功能時,倘若需查找、刪除、修改的聯(lián)系人在通訊錄中不存在,則系統(tǒng)會提示:“該學號不存在”的提示話語,如下圖:圖4-3 錯誤提示界面圖總結經過十多天的努力終于把課程設計給做完了,總算是完成了這么些天的任務了。在剛做課程設計的時候,真的是什么都不懂,看著題目有點無從下手的感覺,這時才真切的感受到和別人是差距,平時不努力到了關鍵時刻就不知所措了。接著,就從書上找例子,仿照書上的方法一步一步的,慢慢的知道了一些重點。但是,在課程設計過程中很多功能都不能實現(xiàn),按鈕不能響應相應的功能,就去圖書館

27、找書,同時問問同學老師,就這樣一點一點的做,終于在他們的幫助下功能一點一點的實現(xiàn)了。在課程設計過程中,看著那些一團糟的代碼真的很想不做,很想放棄,但是后來還是堅持了下來。所以真的應了那句話:沒有做不到,只有不想做。參考文獻1張基溫.Java程序開發(fā)教程M.北京:華大學出版社,20042張躍平.Java信息管理系統(tǒng)開發(fā)實例導航M.北京:人民郵電出版社,20053畢廣吉.Java程序設計實例教程M. 北京:冶金工業(yè)出版社,20074王保羅.Java面向對象程序設計M. 北京:清華大學出版社,2003 5高林,周海燕.Jsp網(wǎng)上書店系統(tǒng)與案例分析M. 北京:人民郵電出版社,20046劉新,管磊.Ja

28、va編程實戰(zhàn)寶典M.北京:清華大學出版社,2014:238-274.7PaulGraham.黑客與畫家M.北京:人民郵電出版社,2004:59-278.8 嚴蔚敏.數(shù)據(jù)結構(C語言版)M.北京:清華大學出版社,2010:98-76.9 李云清,楊慶紅,揭安全.數(shù)據(jù)結構(C語言版第三版)M.北京:人民郵電出版社,2014:169-172.10云舟工作室.Python編程指南M.北京:國水利水電出版社,2002附錄:package Kn;/* * To change this license header, choose License Headers in Project Properties.

29、 * To change this template file, choose Tools | Templates * and open the template in the editor. */import javax.swing.JOptionPane;/* * * author Administrator */public class asd extends javax.swing.JFrame /* * Creates new form asd */ public asd() initComponents(); /* * This method is called from with

30、in the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ SuppressWarnings(unchecked) / private void initComponents() setTitle(歡迎進入實驗班班級通訊錄系統(tǒng)); jTabbedPane1 = new javax.swing.JTabbedPane(); jLabel1 = new j

31、avax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); id = new javax.swing.JTextField(); password = new javax.swing.JPasswordField(); dl = new javax.swing.JButton(); close = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON

32、_CLOSE); jLabel1.setText(實驗班班級通訊錄); jLabel2.setText(用戶名); jLabel3.setText(密碼); dl.setText(登錄); dl.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) dlActionPerformed(evt); ); close.setText(關閉); close.addActionListener(new java.awt.event

33、.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) closeActionPerformed(evt); ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane(); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout

34、.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2) .addComponent(jLabel3) .addGap(236, 236, 236) .addGroup(layou

35、t.createSequentialGroup() .addGap(51, 51, 51) .addComponent(close) .addGap(95, 95, 95) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(dl) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(id, javax.swin

36、g.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE) .addComponent(password) .addContainerGap(40, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1, javax.swi

37、ng.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(56, 56, 56) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(32, 32, 32) .addComponent(jLabel1) .addGap(55, 55, 55) .a

38、ddGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(47, 47, 47) .addGroup(layout.createParallelGroup(javax

39、.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle ponentPlacement.RELATED, 42, Short.MAX_VALUE) .addGroup

40、(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(close) .addComponent(dl) .addGap(42, 42, 42) ); pack(); / private void dlActionPerformed(java.awt.event.ActionEvent evt) String name = this.id.getText().trim(); String pw = this.password.getText().trim(); if (name.

41、equalsIgnoreCase() JOptionPane.showMessageDialog(this, 用戶名為空); return; if (pw.equalsIgnoreCase() JOptionPane.showMessageDialog(this, 密碼為空); return; if (!name.equalsIgnoreCase(123456) | !pw.equalsIgnoreCase(123456) JOptionPane.showMessageDialog(this, 用戶名/密碼錯誤!); return; if (name.equalsIgnoreCase(1234

42、56) & pw.equalsIgnoreCase(123456) new StudentManager().setVisible(true); this.dispose(); private void closeActionPerformed(java.awt.event.ActionEvent evt) this.dispose(); /* * param args the command line arguments */ / Variables declaration - do not modify private javax.swing.JButton close; private

43、javax.swing.JButton dl; private javax.swing.JTextField id; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JPasswordField password; / End of variables declaration public stat

44、ic void main(String args) new asd().setVisible(true); package Kn;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 學號,姓名,所學專業(yè),家庭住址,聯(lián)系 ; JRadioButton 男,女; JBu

45、tton 刪除; ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public Delete(File file) this.file=file; 學號=new JTextField(10); 刪除=new JButton(刪除); 學號.addActionListener(this); 刪除.addActionListene

46、r(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所學專業(yè)=new JTextField(10); 所學專業(yè).setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false); 聯(lián)系 =new JTextField(10); 聯(lián)系 .setEditable(false); 男=new JRadioButton(男,false); 女=new JRadioButton(女,false); group=new ButtonGroup(); group.add(男);

47、group.add(女); Box box1=Box.createHorizontalBox(); box1.add(new JLabel(輸入要刪除的學號:,JLabel.CENTER); box1.add(學號); box1.add(刪除); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(姓名:,JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel(性別:,JLabel.CENTER); box3.add(男

48、); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(所學專業(yè):,JLabel.CENTER); box4.add(所學專業(yè)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel(家庭住址:,JLabel.CENTER); box5.add(家庭住址); Box box6=Box.createHorizontalBox(); box6.add(new JLabel(聯(lián)系 :,JLabel.CENTER); box6.add(聯(lián)系 ); Box

49、boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(box5); boxH.add(box6); boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(boxH); setLayout(new BorderLayout(); add(pCenter,BorderLayout.CENTER); validate(); public void act

50、ionPerformed(ActionEvent e) if(e.getSource()=刪除|e.getSource()=學號) String number=; number=學號.getText(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.contain

51、sKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 所學專業(yè).setText(stu.getDisciping(); 家庭住址.setText(stu.getGrade(); 聯(lián)系 .setText(stu.getBorth(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); String m=確定要刪除該學號及全部信息嗎?; int ok=JOptionPane.showConfirmDi

52、alog(this,m,確認,JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(ok=JOptionPane.YES_OPTION) 基本信息表.remove(number); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 學號.setText(null); 姓名.setText(null); 所學

53、專業(yè).setText(null); 家庭住址.setText(null); 聯(lián)系 .setText(null); catch(Exception ee) System.out.println(ee); else if(ok=JOptionPane.NO_OPTION) 學號.setText(null); 姓名.setText(null); 所學專業(yè).setText(null); 家庭住址.setText(null); 聯(lián)系 .setText(null); else String warning=該學號不存在!; JOptionPane.showMessageDialog(this,warnin

54、g,警告,JOptionPane.WARNING_MESSAGE); else String warning=必須要輸入學號!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); package Kn;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements A

55、ctionListener Hashtable 基本信息表=null; JTextField 學號,姓名,所學專業(yè),家庭住址,聯(lián)系 ; JRadioButton 男,女; JButton 查詢; ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) super(f,查詢對話框,false); this.file=file; 學號=new JTextField(10); 查詢=new J

56、Button(查詢); 學號.addActionListener(this); 查詢.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所學專業(yè)=new JTextField(10); 所學專業(yè).setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false); 聯(lián)系 =new JTextField(10); 聯(lián)系 .setEditable(false); 男=new JRadioButton(男,false); 女=new JRa

57、dioButton(女,false); group=new ButtonGroup(); group.add(男); group.add(女); Box box1=Box.createHorizontalBox(); box1.add(new JLabel(輸入要查詢的學號:,JLabel.CENTER); box1.add(學號); box1.add(查詢); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(姓名:,JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizont

58、alBox(); box3.add(new JLabel(性別:,JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(所學專業(yè):,JLabel.CENTER); box4.add(所學專業(yè)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel(家庭住址:,JLabel.CENTER); box5.add(家庭住址); Box box6=Box.createHorizontalBox(); b

59、ox6.add(new JLabel(聯(lián)系 :,JLabel.CENTER); box6.add(聯(lián)系 ); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(box5); boxH.add(box6); boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(boxH); Container con=getContentPane();

60、con.add(pCenter,BorderLayout.CENTER); con.validate(); setVisible(false); setBounds(100,200,360,270); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) setVisible(false); ); public void actionPerformed(ActionEvent e) 姓名.setText(null); 所學專業(yè).setText(null); 家庭住址.setText(null

溫馨提示

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

評論

0/150

提交評論