Java課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第1頁
Java課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第2頁
Java課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第3頁
Java課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第4頁
Java課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計(jì)——基于JDK1.7.0和NetBeans6.9.1實(shí)現(xiàn)Java程序設(shè)計(jì)《通訊錄管理系統(tǒng)》PAGE2PAGE1《Java程序設(shè)計(jì)》課程設(shè)計(jì)專業(yè)班級(jí):2013級(jí)計(jì)算機(jī)科學(xué)與技術(shù)一班目錄摘要 1一、概述 21.需求分析 22.任務(wù)分析 3二、總體設(shè)計(jì) 31.設(shè)計(jì)要求 32.設(shè)計(jì)任務(wù) 33.設(shè)計(jì)思路 4三、程序類 41.類AddressListSystem 41.1繼承與JFrame類 41.2定義組件 41.3ArrayList 52.Note類 52.1實(shí)現(xiàn)Serializable接口 52.2定義類 5四、程序的功能 51.錄入聯(lián)系人信息 51.1聯(lián)系人信息表 51.2實(shí)現(xiàn)添加聯(lián)系人方法 62.查詢聯(lián)系人 62.1查詢的方法 62.2實(shí)現(xiàn)查詢聯(lián)系人方法 63.刪除指定的聯(lián)系人信息 63.1刪除的方法 63.2實(shí)現(xiàn)刪除聯(lián)系人方法 64.退出通訊錄管理系統(tǒng) 7五、程序運(yùn)行壞境 7六、系統(tǒng)測試 71.通訊錄管理系統(tǒng)運(yùn)行圖形用戶界面 72.聯(lián)系人信息添加 82.聯(lián)系人信息查找 93.刪除指定聯(lián)系人的信息 104.退出通訊錄管理系統(tǒng) 12七、結(jié)論 121.結(jié)束語 122.致謝 133.參考文獻(xiàn) 13附: 14程序源代碼: 14摘要隨著當(dāng)今世界經(jīng)濟(jì)的快速發(fā)展,通訊技術(shù)日益成熟,個(gè)人間的聯(lián)系增加,個(gè)人對自己聯(lián)系人信息的管理成為一個(gè)重要的環(huán)節(jié)。與此同時(shí),通訊錄便產(chǎn)生了。形形色色的關(guān)于通訊錄對的越來越方便著人們的生活。通訊錄管理軟件使用于同學(xué)、朋友等日常生活的聯(lián)系人進(jìn)行的相關(guān)的信息的編輯功能,便于用戶隨時(shí)查找所需要的聯(lián)系人的所有信息。該通訊錄管理系統(tǒng)十分便捷,用戶可以通過它方便地進(jìn)行添加、查找、修改、刪除等基本通訊錄管理所需的功能。軟件操作窗口平時(shí)可以隱藏于屏幕邊緣,用戶鼠標(biāo)移至該處及顯示操作界面,用只需輸入關(guān)鍵詞(聯(lián)系人姓名)即可方便地查找所需的通訊錄信息。關(guān)鍵詞Java通訊錄管理簡易快捷一、概述1.需求分析隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)達(dá)、全世界經(jīng)濟(jì)的快速發(fā)展,人們的日益繁多的交往使得我們之間的通訊更加頻繁,每個(gè)人的聯(lián)系方式會(huì)時(shí)常的更改,與之聯(lián)系的家人、朋友、同事等大量的通訊信息,通訊錄能夠?yàn)槲覀儙硭枰南嚓P(guān)信息。隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)領(lǐng)域不斷取得新的研究成果。計(jì)算機(jī)在代替和延伸腦力勞動(dòng)方面發(fā)揮越來越重要的作用,不僅在工業(yè)方面而且在高校的信息化建設(shè)中也越來越離不開計(jì)算機(jī)。通過計(jì)算機(jī)這個(gè)途徑,開發(fā)一個(gè)通訊錄管理系統(tǒng),用戶可以方便的自己電腦的通訊錄管理系統(tǒng),來隨時(shí)查閱所需要的信息,而擺脫傳統(tǒng)式筆記本或者電話簿等繁瑣不快捷的方式。 通訊錄管理系統(tǒng)主要是實(shí)現(xiàn)方便的管理通訊錄管理,可以很好的進(jìn)行存儲(chǔ)用戶聯(lián)系方式以及一些簡單的個(gè)人信息的實(shí)用管理系統(tǒng),大大減少了時(shí)間用于查找和處理等一些操作的過程。2.任務(wù)分析通訊錄管理系統(tǒng)將會(huì)為個(gè)人信息聯(lián)系的現(xiàn)代化管理提供一個(gè)良好的平臺(tái),它也是針對人們之間大量信息處理工作而開發(fā)的管理軟件,每個(gè)人的個(gè)人信息的統(tǒng)計(jì)和錄入功能,隨著人與人之間的交往更加頻繁,利用JDK1.7.0和NetBeans6.9.1軟件,設(shè)計(jì)并實(shí)現(xiàn)圖形用戶界面,其中管理自己聯(lián)系人信息管理,以提高我們辦事效率為目的,經(jīng)過多方面的思考與查詢,設(shè)計(jì)出通訊錄管理系統(tǒng)相應(yīng)的功能。通訊錄管理包含對聯(lián)系人信息輸入、查詢、維護(hù)和輸出等功能。二、總體設(shè)計(jì)1.設(shè)計(jì)要求通訊錄中包括一般通訊錄中的基本信息,也需要實(shí)現(xiàn)普通的檢索功能,通過將聯(lián)系人寫入文件,程序執(zhí)行時(shí),需要從文件中導(dǎo)入數(shù)據(jù),程序退出后再將數(shù)據(jù)文件保存到文件中。2.設(shè)計(jì)任務(wù)錄入聯(lián)系人信息查詢聯(lián)系人刪除指定的聯(lián)系人信息退出通訊錄管理系統(tǒng)3.設(shè)計(jì)思路一個(gè)程序的主類是進(jìn)入系統(tǒng),進(jìn)行圖形交互的界面設(shè)計(jì);通過建立使用ArrayList動(dòng)態(tài)數(shù)組、結(jié)合文件輸入與輸出流的操作方式,進(jìn)行添加、查找、刪除等;通過按鈕添加、查找、刪除、退出的addActionListener()方法實(shí)現(xiàn)事件響應(yīng)。通過FileDescriptor在標(biāo)準(zhǔn)輸入流上建立文件輸入流,然后通過鍵盤的輸入讀取數(shù)據(jù),并把讀取的數(shù)據(jù)到指定的文件“readfromkeyboard.txt”中,然后再建立文件的輸入流,通過FileDescriptor在標(biāo)準(zhǔn)輸出流上建立的文件輸出流,將文件中的數(shù)據(jù)顯示在屏幕上。三、程序類1.類AddressListSystem1.1繼承與JFrame類 通過導(dǎo)入javax.swing.*,然后才能使用JFrame類,主類繼承使用1.2定義組件JLabeltitle=newJLabel("通訊錄管理"); JLabelname=newJLabel("姓名"); JLabelzip=newJLabel("郵政編碼"); JLabeladdress=newJLabel("通信地址"); JLabeltelephone=newJLabel("電話號(hào)碼"); JLabelmobile=newJLabel("手機(jī)號(hào)碼"); 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 動(dòng)態(tài)數(shù)組ArrayList,能夠進(jìn)行動(dòng)態(tài)的增加和減少元素和靈活設(shè)置數(shù)組的大小,它本身實(shí)現(xiàn)了IOCollection和Ilist接口。 ArrayListal=newArrayList();聲明的同時(shí)創(chuàng)建了動(dòng)態(tài)數(shù)組al,后來程序中的添加、查找、刪除、修改等都是通過對al操作來實(shí)現(xiàn)的。2.Note類2.1實(shí)現(xiàn)Serializable接口 為需要被序列化對象就是以類Note建立的對象實(shí)現(xiàn)Serializable接口,該接口沒有要實(shí)現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對象是可被系列化的,然后使用一個(gè)輸出流來構(gòu)造一個(gè)對象,接著使用ObjectOutputStream對象的writeObject(Objectobj)方法就可以將參數(shù)為obj的對象寫出,要恢復(fù)的話則用輸入流。2.2定義類 publicStringname; //姓名 publicStringzip; //郵政編碼 publicStringaddress; //通信地址 publicStringtelephone; //電話號(hào)碼 publicStringmobile; //手機(jī)號(hào)碼 publicStringemail; //email publicNote(){} //默認(rèn)的構(gòu)造函數(shù)四、程序的功能1.錄入聯(lián)系人信息1.1聯(lián)系人信息表表1聯(lián)系人的信息表姓名郵政編碼通信地址電話號(hào)碼手機(jī)號(hào)碼email李永蘭223532安徽省蚌埠龍子湖區(qū)677689188956222121910924543@孫乃香300171天津市河?xùn)|區(qū)12345618895685078118418861@李萍萍200030上海市徐匯區(qū)23456718895601887879790571@陳臣050000河北省石家莊市34567818895684770632748498@黃智超231200安徽省合肥市肥西縣456789188956067162418968369@劉姣210000江蘇省南京市345980132855265501948180943@葉曄100010北京市東城區(qū)678905188956374581491641068@進(jìn)入程序運(yùn)行界面后,單擊按鈕“添加”,依次將上表1中的聯(lián)系人添加進(jìn)入文件“note.dat”。1.2實(shí)現(xiàn)添加聯(lián)系人方法 jbtadd.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){} });2.查詢聯(lián)系人2.1查詢的方法在姓名標(biāo)簽里輸入“XXX”,單擊下按鈕查詢,就在圖形用戶界面上顯示出相應(yīng)的信息。2.2實(shí)現(xiàn)查詢聯(lián)系人方法jbtfind.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){}});3.刪除指定的聯(lián)系人信息3.1刪除的方法先在姓名標(biāo)簽中寫入“XXX”(需要?jiǎng)h除人的姓名),單擊按鈕“查詢”后,顯示出的信息,然后單擊按鈕“清除”,將XXX聯(lián)系人的信息刪除。3.2實(shí)現(xiàn)刪除聯(lián)系人方法 jbtclear.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){} });4.退出通訊錄管理系統(tǒng) jbtexit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){} });五、程序運(yùn)行壞境 Windows7操作系統(tǒng)、JavaJDK1.7.0_0.02和NetBeans6.9.1集成開發(fā)環(huán)境六、系統(tǒng)測試1.通訊錄管理系統(tǒng)運(yùn)行圖形用戶界面 2.聯(lián)系人信息添加 添加完每個(gè)聯(lián)系人的信息后,按鈕“添加”是被激活狀態(tài)的,若該聯(lián)系人已經(jīng)添加過了,將會(huì)出現(xiàn)“錯(cuò)誤提示”對話框,內(nèi)容為“已經(jīng)存在此記錄”單擊確定后,通訊錄管理系統(tǒng)界面各個(gè)標(biāo)簽后的內(nèi)容將自動(dòng)清空。 若不小心忘記添加姓名標(biāo)簽內(nèi)容,則會(huì)彈出“錯(cuò)誤提示”對話框,內(nèi)容為“無法添加名字為空的記錄”。 2.聯(lián)系人信息查找若制定查找姓名為“李永蘭”的聯(lián)系人信息,在姓名標(biāo)簽文本里輸入“李永蘭”,單擊按鈕“查找”按鈕,就出現(xiàn)如下界面: 若輸入的姓名“XXX”,文件中不含有的話,系統(tǒng)會(huì)彈出一個(gè)“溫馨提示”對話框,內(nèi)容為“無此記錄哦”。單擊“確定”按鈕或者關(guān)閉,將返回圖形用戶界面。 出現(xiàn)以下界面: 3.刪除指定聯(lián)系人的信息若刪除聯(lián)系人“李萍萍”的通訊錄信息,首先在姓名標(biāo)簽文本里輸入“李萍萍”,按下按鈕“查找”按鈕,顯示李萍萍聯(lián)系人的信息;如下圖圖形用戶界面: 然后鼠標(biāo)單擊“清空”按鈕,就完成刪除“李萍萍”聯(lián)系人的功能。完成此步驟后,“清空”按鈕被激活。如下圖圖形用戶界面所示: 4.退出通訊錄管理系統(tǒng)鼠標(biāo)單擊按鈕“退出”,將關(guān)閉圖形用戶界面,并且退出系統(tǒng)。七、結(jié)論1.結(jié)束語通過這次通訊錄管理系統(tǒng)的設(shè)計(jì),我了解了更多關(guān)于軟件開發(fā)的基礎(chǔ)知識(shí),了解了開發(fā)一項(xiàng)軟件的難度,但是此次的課程設(shè)計(jì)時(shí)間有限,而且本人才疏學(xué)淺,有待更加進(jìn)行學(xué)習(xí)和提高。通訊錄管理軟件開發(fā)項(xiàng)目的實(shí)施執(zhí)行過程中遇到了很多的難題,但總的說來還算成功,該軟件的各種功能性能都能滿足設(shè)計(jì)規(guī)格需求的要求,也能夠基本滿足用戶的需求。而事實(shí)上,該軟件產(chǎn)品并不十分完美。沒有能夠?qū)崿F(xiàn):對輸入內(nèi)容進(jìn)行判別,檢查出錯(cuò)誤或是不合理規(guī)則的輸入,并進(jìn)行對異常進(jìn)行處理;對聯(lián)系人信息保存到數(shù)據(jù)文件,并可以在下一次執(zhí)行程序時(shí)繼續(xù)使用;還可以給文件添加索引;還有一些創(chuàng)新的功能,比如為通訊錄管理系統(tǒng)添加登錄界面,連接數(shù)據(jù)文件進(jìn)行登錄驗(yàn)證等。

本通訊錄管理系統(tǒng)軟件需要進(jìn)一步改進(jìn)和提高開發(fā)技術(shù),完善系統(tǒng)功能。2.致謝在本次課程設(shè)計(jì)過程中,從馬程老師給的課程設(shè)計(jì)題目,我有認(rèn)真的完成此次任務(wù),但是其中出現(xiàn)了很多的問題,老師您也有細(xì)心地細(xì)心指導(dǎo),使我對計(jì)算機(jī)編程有了更深刻的了解和認(rèn)識(shí),學(xué)到了在此表示衷心地感謝。在整個(gè)過程中,我在圖書館圖書室中查閱了大量的有關(guān)書籍,并借閱管理系統(tǒng)的資料和網(wǎng)站,在自己的努力和朋友、同學(xué)的鼓勵(lì)下,終于完成了本次課程設(shè)計(jì)。在此也感謝朋友與同學(xué)的支持。在為期兩周的課程設(shè)計(jì)過程中,使我熟悉了Java編程語言,但也充分展現(xiàn)自己的不足方面還很多,希望在以后的學(xué)習(xí)生活當(dāng)中努力學(xué)習(xí),積極參與實(shí)踐,提高編程的水平,為成為計(jì)算機(jī)人才打好基礎(chǔ)。3.參考文獻(xiàn)[1]宋波.Java程序設(shè)計(jì)——基于JDK6和NetBeans實(shí)現(xiàn).北京:清華大學(xué)出版社,2013[2]宋波.Java應(yīng)用開發(fā)教程.北京:電子工業(yè)出版社,2002[3]宋波,董曉梅.Java應(yīng)用設(shè)計(jì).北京:人民郵電出版社,2002[4]PatrickKeegan,LudovicChampenois等著,吳玉亮(譯).NetBeansIDE中文版用戶指南。北京:機(jī)械工業(yè)出版社,2006[5]朗波.Java語言程序設(shè)計(jì).北京:清華大學(xué)出版社,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("電話號(hào)碼"); JLabelmobile=newJLabel("手機(jī)號(hào)碼"); 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,"無法添加名字為空的記錄","錯(cuò)誤提示",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("添加信息時(shí)文件輸入有誤哦");}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,"已經(jīng)存在此記錄","錯(cuò)誤提示",JOptionPane.INFORMATION_MESSAGE);}else{al.add(note);out.writeObject(al);}out.close();}catch(Exceptionex){System.out.println("添加信息時(shí)文件輸出有誤哦");}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("查詢時(shí)文件打開有誤哦");}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("清除文件時(shí)有誤哦");}jtxt

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論