




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java程序設計——基于JDK1.7.0和NetBeans6.9.1實現Java程序設計《通訊錄管理系統(tǒng)》PAGE2PAGE1《Java程序設計》課程設計專業(yè)班級:2013級計算機科學與技術一班目錄摘要 1一、概述 21.需求分析 22.任務分析 3二、總體設計 31.設計要求 32.設計任務 33.設計思路 4三、程序類 41.類AddressListSystem 41.1繼承與JFrame類 41.2定義組件 41.3ArrayList 52.Note類 52.1實現Serializable接口 52.2定義類 5四、程序的功能 51.錄入聯(lián)系人信息 51.1聯(lián)系人信息表 51.2實現添加聯(lián)系人方法 62.查詢聯(lián)系人 62.1查詢的方法 62.2實現查詢聯(lián)系人方法 63.刪除指定的聯(lián)系人信息 63.1刪除的方法 63.2實現刪除聯(lián)系人方法 64.退出通訊錄管理系統(tǒng) 7五、程序運行壞境 7六、系統(tǒng)測試 71.通訊錄管理系統(tǒng)運行圖形用戶界面 72.聯(lián)系人信息添加 82.聯(lián)系人信息查找 93.刪除指定聯(lián)系人的信息 104.退出通訊錄管理系統(tǒng) 12七、結論 121.結束語 122.致謝 133.參考文獻 13附: 14程序源代碼: 14摘要隨著當今世界經濟的快速發(fā)展,通訊技術日益成熟,個人間的聯(lián)系增加,個人對自己聯(lián)系人信息的管理成為一個重要的環(huán)節(jié)。與此同時,通訊錄便產生了。形形色色的關于通訊錄對的越來越方便著人們的生活。通訊錄管理軟件使用于同學、朋友等日常生活的聯(lián)系人進行的相關的信息的編輯功能,便于用戶隨時查找所需要的聯(lián)系人的所有信息。該通訊錄管理系統(tǒng)十分便捷,用戶可以通過它方便地進行添加、查找、修改、刪除等基本通訊錄管理所需的功能。軟件操作窗口平時可以隱藏于屏幕邊緣,用戶鼠標移至該處及顯示操作界面,用只需輸入關鍵詞(聯(lián)系人姓名)即可方便地查找所需的通訊錄信息。關鍵詞Java通訊錄管理簡易快捷一、概述1.需求分析隨著計算機科學技術的發(fā)達、全世界經濟的快速發(fā)展,人們的日益繁多的交往使得我們之間的通訊更加頻繁,每個人的聯(lián)系方式會時常的更改,與之聯(lián)系的家人、朋友、同事等大量的通訊信息,通訊錄能夠為我們帶來所需要的相關信息。隨著科學技術的發(fā)展,計算機領域不斷取得新的研究成果。計算機在代替和延伸腦力勞動方面發(fā)揮越來越重要的作用,不僅在工業(yè)方面而且在高校的信息化建設中也越來越離不開計算機。通過計算機這個途徑,開發(fā)一個通訊錄管理系統(tǒng),用戶可以方便的自己電腦的通訊錄管理系統(tǒng),來隨時查閱所需要的信息,而擺脫傳統(tǒng)式筆記本或者電話簿等繁瑣不快捷的方式。 通訊錄管理系統(tǒng)主要是實現方便的管理通訊錄管理,可以很好的進行存儲用戶聯(lián)系方式以及一些簡單的個人信息的實用管理系統(tǒng),大大減少了時間用于查找和處理等一些操作的過程。2.任務分析通訊錄管理系統(tǒng)將會為個人信息聯(lián)系的現代化管理提供一個良好的平臺,它也是針對人們之間大量信息處理工作而開發(fā)的管理軟件,每個人的個人信息的統(tǒng)計和錄入功能,隨著人與人之間的交往更加頻繁,利用JDK1.7.0和NetBeans6.9.1軟件,設計并實現圖形用戶界面,其中管理自己聯(lián)系人信息管理,以提高我們辦事效率為目的,經過多方面的思考與查詢,設計出通訊錄管理系統(tǒng)相應的功能。通訊錄管理包含對聯(lián)系人信息輸入、查詢、維護和輸出等功能。二、總體設計1.設計要求通訊錄中包括一般通訊錄中的基本信息,也需要實現普通的檢索功能,通過將聯(lián)系人寫入文件,程序執(zhí)行時,需要從文件中導入數據,程序退出后再將數據文件保存到文件中。2.設計任務錄入聯(lián)系人信息查詢聯(lián)系人刪除指定的聯(lián)系人信息退出通訊錄管理系統(tǒng)3.設計思路一個程序的主類是進入系統(tǒng),進行圖形交互的界面設計;通過建立使用ArrayList動態(tài)數組、結合文件輸入與輸出流的操作方式,進行添加、查找、刪除等;通過按鈕添加、查找、刪除、退出的addActionListener()方法實現事件響應。通過FileDescriptor在標準輸入流上建立文件輸入流,然后通過鍵盤的輸入讀取數據,并把讀取的數據到指定的文件“readfromkeyboard.txt”中,然后再建立文件的輸入流,通過FileDescriptor在標準輸出流上建立的文件輸出流,將文件中的數據顯示在屏幕上。三、程序類1.類AddressListSystem1.1繼承與JFrame類 通過導入javax.swing.*,然后才能使用JFrame類,主類繼承使用1.2定義組件JLabeltitle=newJLabel("通訊錄管理"); JLabelname=newJLabel("姓名"); JLabelzip=newJLabel("郵政編碼"); JLabeladdress=newJLabel("通信地址"); JLabeltelephone=newJLabel("電話號碼"); JLabelmobile=newJLabel("手機號碼"); JLabelemail=newJLabel("email"); JTextFieldjtxtname=newJTextField(); JTextFieldjtxtzip=newJTextField(); JTextFieldjtxtaddr=newJTextField(); JTextFieldjtxttel=newJTextField(); JTextFieldjtxtmob=newJTextField(); JTextFieldjtxtemail=newJTextField(); Fontfont=newFont("TimersRoman",Font.BOLD,40); JButtonjbtadd=newJButton("添加"); JButtonjbtfind=newJButton("查找"); JButtonjbtclear=newJButton("清空"); JButtonjbtexit=newJButton("退出"); ArrayListal=newArrayList();1.3ArrayList 動態(tài)數組ArrayList,能夠進行動態(tài)的增加和減少元素和靈活設置數組的大小,它本身實現了IOCollection和Ilist接口。 ArrayListal=newArrayList();聲明的同時創(chuàng)建了動態(tài)數組al,后來程序中的添加、查找、刪除、修改等都是通過對al操作來實現的。2.Note類2.1實現Serializable接口 為需要被序列化對象就是以類Note建立的對象實現Serializable接口,該接口沒有要實現的方法,implementsSerializable只是為了標注該對象是可被系列化的,然后使用一個輸出流來構造一個對象,接著使用ObjectOutputStream對象的writeObject(Objectobj)方法就可以將參數為obj的對象寫出,要恢復的話則用輸入流。2.2定義類 publicStringname; //姓名 publicStringzip; //郵政編碼 publicStringaddress; //通信地址 publicStringtelephone; //電話號碼 publicStringmobile; //手機號碼 publicStringemail; //email publicNote(){} //默認的構造函數四、程序的功能1.錄入聯(lián)系人信息1.1聯(lián)系人信息表表1聯(lián)系人的信息表姓名郵政編碼通信地址電話號碼手機號碼email李永蘭223532安徽省蚌埠龍子湖區(qū)677689188956222121910924543@孫乃香300171天津市河東區(qū)12345618895685078118418861@李萍萍200030上海市徐匯區(qū)23456718895601887879790571@陳臣050000河北省石家莊市34567818895684770632748498@黃智超231200安徽省合肥市肥西縣456789188956067162418968369@劉姣210000江蘇省南京市345980132855265501948180943@葉曄100010北京市東城區(qū)678905188956374581491641068@進入程序運行界面后,單擊按鈕“添加”,依次將上表1中的聯(lián)系人添加進入文件“note.dat”。1.2實現添加聯(lián)系人方法 jbtadd.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){} });2.查詢聯(lián)系人2.1查詢的方法在姓名標簽里輸入“XXX”,單擊下按鈕查詢,就在圖形用戶界面上顯示出相應的信息。2.2實現查詢聯(lián)系人方法jbtfind.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){}});3.刪除指定的聯(lián)系人信息3.1刪除的方法先在姓名標簽中寫入“XXX”(需要刪除人的姓名),單擊按鈕“查詢”后,顯示出的信息,然后單擊按鈕“清除”,將XXX聯(lián)系人的信息刪除。3.2實現刪除聯(lián)系人方法 jbtclear.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){} });4.退出通訊錄管理系統(tǒng) jbtexit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){} });五、程序運行壞境 Windows7操作系統(tǒng)、JavaJDK1.7.0_0.02和NetBeans6.9.1集成開發(fā)環(huán)境六、系統(tǒng)測試1.通訊錄管理系統(tǒng)運行圖形用戶界面 2.聯(lián)系人信息添加 添加完每個聯(lián)系人的信息后,按鈕“添加”是被激活狀態(tài)的,若該聯(lián)系人已經添加過了,將會出現“錯誤提示”對話框,內容為“已經存在此記錄”單擊確定后,通訊錄管理系統(tǒng)界面各個標簽后的內容將自動清空。 若不小心忘記添加姓名標簽內容,則會彈出“錯誤提示”對話框,內容為“無法添加名字為空的記錄”。 2.聯(lián)系人信息查找若制定查找姓名為“李永蘭”的聯(lián)系人信息,在姓名標簽文本里輸入“李永蘭”,單擊按鈕“查找”按鈕,就出現如下界面: 若輸入的姓名“XXX”,文件中不含有的話,系統(tǒng)會彈出一個“溫馨提示”對話框,內容為“無此記錄哦”。單擊“確定”按鈕或者關閉,將返回圖形用戶界面。 出現以下界面: 3.刪除指定聯(lián)系人的信息若刪除聯(lián)系人“李萍萍”的通訊錄信息,首先在姓名標簽文本里輸入“李萍萍”,按下按鈕“查找”按鈕,顯示李萍萍聯(lián)系人的信息;如下圖圖形用戶界面: 然后鼠標單擊“清空”按鈕,就完成刪除“李萍萍”聯(lián)系人的功能。完成此步驟后,“清空”按鈕被激活。如下圖圖形用戶界面所示: 4.退出通訊錄管理系統(tǒng)鼠標單擊按鈕“退出”,將關閉圖形用戶界面,并且退出系統(tǒng)。七、結論1.結束語通過這次通訊錄管理系統(tǒng)的設計,我了解了更多關于軟件開發(fā)的基礎知識,了解了開發(fā)一項軟件的難度,但是此次的課程設計時間有限,而且本人才疏學淺,有待更加進行學習和提高。通訊錄管理軟件開發(fā)項目的實施執(zhí)行過程中遇到了很多的難題,但總的說來還算成功,該軟件的各種功能性能都能滿足設計規(guī)格需求的要求,也能夠基本滿足用戶的需求。而事實上,該軟件產品并不十分完美。沒有能夠實現:對輸入內容進行判別,檢查出錯誤或是不合理規(guī)則的輸入,并進行對異常進行處理;對聯(lián)系人信息保存到數據文件,并可以在下一次執(zhí)行程序時繼續(xù)使用;還可以給文件添加索引;還有一些創(chuàng)新的功能,比如為通訊錄管理系統(tǒng)添加登錄界面,連接數據文件進行登錄驗證等。
本通訊錄管理系統(tǒng)軟件需要進一步改進和提高開發(fā)技術,完善系統(tǒng)功能。2.致謝在本次課程設計過程中,從馬程老師給的課程設計題目,我有認真的完成此次任務,但是其中出現了很多的問題,老師您也有細心地細心指導,使我對計算機編程有了更深刻的了解和認識,學到了在此表示衷心地感謝。在整個過程中,我在圖書館圖書室中查閱了大量的有關書籍,并借閱管理系統(tǒng)的資料和網站,在自己的努力和朋友、同學的鼓勵下,終于完成了本次課程設計。在此也感謝朋友與同學的支持。在為期兩周的課程設計過程中,使我熟悉了Java編程語言,但也充分展現自己的不足方面還很多,希望在以后的學習生活當中努力學習,積極參與實踐,提高編程的水平,為成為計算機人才打好基礎。3.參考文獻[1]宋波.Java程序設計——基于JDK6和NetBeans實現.北京:清華大學出版社,2013[2]宋波.Java應用開發(fā)教程.北京:電子工業(yè)出版社,2002[3]宋波,董曉梅.Java應用設計.北京:人民郵電出版社,2002[4]PatrickKeegan,LudovicChampenois等著,吳玉亮(譯).NetBeansIDE中文版用戶指南。北京:機械工業(yè)出版社,2006[5]朗波.Java語言程序設計.北京:清華大學出版社,2005附:程序源代碼:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.util.*;classNoteimplementsSerializable{publicStringname;publicStringzip;publicStringaddress;publicStringtelephone;publicStringmobile;publicStringemail;publicNote(){}}publicclassAddressListSystemextendsJFrame{JLabeltitle=newJLabel("通訊錄管理"); JLabelname=newJLabel("姓名"); JLabelzip=newJLabel("郵政編碼"); JLabeladdress=newJLabel("通信地址"); JLabeltelephone=newJLabel("電話號碼"); JLabelmobile=newJLabel("手機號碼"); JLabelemail=newJLabel("email"); JTextFieldjtxtname=newJTextField(); JTextFieldjtxtzip=newJTextField(); JTextFieldjtxtaddr=newJTextField(); JTextFieldjtxttel=newJTextField(); JTextFieldjtxtmob=newJTextField(); JTextFieldjtxtemail=newJTextField(); Fontfont=newFont("TimersRoman",Font.BOLD,40); JButtonjbtadd=newJButton("添加"); JButtonjbtfind=newJButton("查找"); JButtonjbtclear=newJButton("清空"); JButtonjbtexit=newJButton("退出"); ArrayListal=newArrayList(); AddressListSystem(Strings){ super(s); Containercp=getContentPane();cp.setBackground(Color.PINK); cp.setLayout(null); title.setFont(font);title.setForeground(Color.cyan); title.setBounds(130,20,300,60); name.setBounds(50,100,75,25); zip.setBounds(50,150,75,25); address.setBounds(50,200,75,25); telephone.setBounds(50,250,75,25); mobile.setBounds(50,300,75,25); email.setBounds(50,350,75,25); jtxtname.setBounds(150,100,100,25); jtxtzip.setBounds(150,150,100,25); jtxtaddr.setBounds(150,200,250,25); jtxttel.setBounds(150,250,150,25); jtxtmob.setBounds(150,300,150,25); jtxtemail.setBounds(150,350,250,25); jbtadd.setBounds(50,400,75,25); jbtfind.setBounds(150,400,75,25); jbtclear.setBounds(250,400,75,25); jbtexit.setBounds(350,400,75,25); jbtadd.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ if(jtxtname.getText().equalsIgnoreCase("")){ JOptionPane.showMessageDialog(null,"無法添加名字為空的記錄","錯誤提示",JOptionPane.INFORMATION_MESSAGE); jtxtname.setText(""); jtxtzip.setText(""); jtxtaddr.setText(""); jtxttel.setText(""); jtxtmob.setText(""); jtxtemail.setText(""); return;}Notenote=newNote();=jtxtname.getText();note.zip=jtxtzip.getText();note.address=jtxtaddr.getText();note.telephone=jtxttel.getText();note.mobile=jtxtmob.getText();note.email=jtxtemail.getText();try{ObjectInputStreamin=newObjectInputStream(newFileInputStream("note.dat"));al=(ArrayList)in.readObject();in.close();}catch(Exceptionex){System.out.println("添加信息時文件輸入有誤哦");}try{ObjectOutputStreamout=newObjectOutputStream(newFileOutputStream("note.dat",true));Notetemp=newNote();inti;for(i=0;i<al.size();i++){ temp=(Note)al.get(i); if(.equalsIgnoreCase(jtxtname.getText()))break;}if(!al.isEmpty()&&i!=al.size()){ JOptionPane.showMessageDialog(null,"已經存在此記錄","錯誤提示",JOptionPane.INFORMATION_MESSAGE);}else{al.add(note);out.writeObject(al);}out.close();}catch(Exceptionex){System.out.println("添加信息時文件輸出有誤哦");}jtxtname.setText("");jtxtzip.setText("");jtxtaddr.setText("");jtxttel.setText("");jtxtmob.setText("");jtxtemail.setText("");}});jbtfind.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ try{ObjectInputStreamin=newObjectInputStream(newFileInputStream("note.dat"));al=(ArrayList)in.readObject();in.close();}catch(Exceptionex){System.out.println("查詢時文件打開有誤哦");}Notetemp=newNote();inti;for(i=0;i<al.size();i++){temp=(Note)al.get(i);if(.equalsIgnoreCase(jtxtname.getText()))break;}if(!al.isEmpty()&&i!=al.size()){jtxtzip.setText(temp.zip);jtxtaddr.setText(temp.address);jtxttel.setText(temp.telephone);jtxtmob.setText(temp.mobile);jtxtemail.setText(temp.email);}else{jtxtname.setText("");jtxtzip.setText("");jtxtaddr.setText("");jtxttel.setText("");jtxtmob.setText("");jtxtemail.setText("");JOptionPane.showMessageDialog(null,"無此記錄哦","溫馨提示",JOptionPane.INFORMATION_MESSAGE);}}});jbtclear.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){try{ObjectOutputStreamout=newObjectOutputStream(newFileOutputStream("note.dat"));al.clear();out.close();}catch(Exceptionex){System.out.println("清除文件時有誤哦");}jtxt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘藝版音樂八年級上冊第一單元國家 教案
- 2025年編輯加工軟件合作協(xié)議書
- 2025年醫(yī)用化驗設備器具合作協(xié)議書
- 中職新教材數學課件
- 企業(yè)高效運營的關鍵如何運用智能和區(qū)塊鏈進行管理升級
- 大數據時代的教育評估與反饋機制研究
- 醫(yī)療教育改革中的教師法律地位
- 中職數學排列講課課件
- 教育大數據分析學習效果顯著提升的秘訣
- 中職教育旅游者課件
- 2025年山東省中考道德與法治試卷真題(含答案)
- (高清版)DB11∕T 2429-2025 補充耕地質量調查與評價技術規(guī)范
- 湖北省襄陽市2024-2025學年高一下學期7月期末統(tǒng)一調研測試地理試卷
- 2025年貴州省6月28日納雍事業(yè)單位教師崗考試真題及答案
- 機場行李安檢安全培訓心得體會
- 睪丸扭轉超聲診斷
- 建筑施工企業(yè)2025年半年業(yè)績總結和下半年工作計劃
- 2025年天津市中考英語試卷(含標準答案及解析)
- 2025高考英語全國II卷試題分析及備考策略指導課件
- 提高冠脈介入手術術前準備的合格率護理品管圈QCC成果匯報課件(完整內容可編輯修改)
- GB∕T 386-2021 柴油十六烷值測定法
評論
0/150
提交評論