![軟件工程專業(yè)實(shí)訓(xùn)報(bào)告.doc_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/efa72e5b-2293-4cf8-a8da-6f9839596d54/efa72e5b-2293-4cf8-a8da-6f9839596d541.gif)
![軟件工程專業(yè)實(shí)訓(xùn)報(bào)告.doc_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/efa72e5b-2293-4cf8-a8da-6f9839596d54/efa72e5b-2293-4cf8-a8da-6f9839596d542.gif)
![軟件工程專業(yè)實(shí)訓(xùn)報(bào)告.doc_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/efa72e5b-2293-4cf8-a8da-6f9839596d54/efa72e5b-2293-4cf8-a8da-6f9839596d543.gif)
![軟件工程專業(yè)實(shí)訓(xùn)報(bào)告.doc_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/efa72e5b-2293-4cf8-a8da-6f9839596d54/efa72e5b-2293-4cf8-a8da-6f9839596d544.gif)
![軟件工程專業(yè)實(shí)訓(xùn)報(bào)告.doc_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/efa72e5b-2293-4cf8-a8da-6f9839596d54/efa72e5b-2293-4cf8-a8da-6f9839596d545.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中原工學(xué)院軟件學(xué)院中原工學(xué)院軟件學(xué)院二二級(jí)級(jí)實(shí)實(shí)踐踐課課題題設(shè)設(shè)計(jì)計(jì)任任務(wù)務(wù)書書姓姓 名名 專業(yè) 班題題 目目通信錄系統(tǒng)的開發(fā)設(shè)設(shè)計(jì)計(jì)任任務(wù)務(wù)開發(fā)一個(gè)比較完善的基于 java 的通信錄服務(wù)系統(tǒng),包括校友交流所能用到的所有聯(lián)系方式,為軟件學(xué)院校友提供一個(gè)強(qiáng)大的通信網(wǎng)絡(luò)。主要功能包括:1. 對(duì)聯(lián)系人信息的增加:在通信錄中增加聯(lián)系人的信息;(獨(dú)立完成)2. 對(duì)聯(lián)系人信息的修改:在通信錄中修改聯(lián)系人的信息;(參與)3. 對(duì)聯(lián)系人信息的刪除:在通信錄中刪除聯(lián)系人的信息;(參與)4. 對(duì)聯(lián)系人信息的查詢:在通信錄中查詢聯(lián)系人的信息;(獨(dú)立完成)開發(fā)工具: java、photoshop時(shí)時(shí)間間進(jìn)進(jìn)度度第 1
2、 周(開始時(shí)間結(jié)束時(shí)間):學(xué)習(xí)編寫通信錄中所需要的相關(guān)的知識(shí),為后兩周的課題的編寫大下基礎(chǔ)。第 2 周(開始時(shí)間結(jié)束時(shí)間):開始編寫程序的界面代碼,參考各種資料,逐個(gè)實(shí)現(xiàn)程序的功能。第 3 周(開始時(shí)間結(jié)束時(shí)間):測(cè)試已編好的程序,找到程序中的不知,修改程序,使程序更加完善。原原 主主始始 要要資資 參參料料 考考與與 文文 獻(xiàn)獻(xiàn)01(美)梁(liang,y.d.). java 語言程序設(shè)計(jì)基礎(chǔ)篇(原書第 6 版)m:機(jī)械工業(yè)出版社 2008.602 凱德納黑德, 勒邁, 陳武. 21 天學(xué)通 java 2:專業(yè)參考版.m 人民郵電出版社 2004.0103 洪維恩 何嘉. java 2 面向
3、對(duì)象程序設(shè)計(jì).m 中國鐵道出版社 2005.0104 張靚 顧慧敏. java 案例開發(fā).m 中國水利水電出版社.2005.01指導(dǎo)教師簽字:指導(dǎo)教師簽字: 年年 月月 日日小小通信錄摘 要社會(huì)在不斷的進(jìn)步,紙制的通信錄已經(jīng)快要被淘汰了。電子通信錄已經(jīng)成為了主流。電子通信錄與原有的紙制通信錄相比,紙質(zhì)通訊錄有以下缺陷:儲(chǔ)存信息量少、查找不方便、信息容易丟失,且對(duì)于隱私保護(hù)不強(qiáng)。而電子通信錄則克服了這些缺陷,且具有占用空間小,查找方便,不易丟失等多個(gè)優(yōu)點(diǎn)。應(yīng)校友的需求我們編寫了程序:小小通信錄。它可以記錄學(xué)友的各項(xiàng)通信信息。方便校友盡快聯(lián)系需要聯(lián)系的人??筛玫脑鰪?qiáng)校友之間的聯(lián)系、友誼。本程序具
4、有界面簡便大方,使用戶不用學(xué)習(xí)操作指南也可以簡單操作。大大提高了工作效率。本程序是用 java 語言編寫的,程序占用系統(tǒng)資源相對(duì)較少,且可移植性很強(qiáng),可以適用各種操作系統(tǒng)。用戶還可以根據(jù)自己的需求不同對(duì)程序做出相應(yīng)的修改,使每個(gè)用戶都有最適用于自己的通信錄。這也是本程序的實(shí)用性所在。關(guān)鍵詞:通信錄; 方便; 簡單; 實(shí)用目 錄摘摘 要要.1第第 1 章章 項(xiàng)目分析項(xiàng)目分析.11.1 問題描述.11.2 技術(shù)分析.1第第 2 章章 實(shí)現(xiàn)實(shí)現(xiàn).22.1 程序開始模塊.32.1.1 流程圖.32.1.2 界面.42.1.3 代碼講解.52.2 程序界面顯示模塊.62.2.1 流程圖.72.2.2 界
5、面.82.2.3 代碼講解.82.3 聯(lián)系人信息模塊.132.3.1 代碼講解.132.4 程序的功能模塊.142.4.1 流程圖.142.4.2 界面.172.4.3 代碼講解.18第第 3 章章 結(jié)束語結(jié)束語.23附錄附錄 a: 附加圖、表附加圖、表.27附錄附錄 b: 主要源程序主要源程序.28第 1 章 項(xiàng)目分析為方便校友之間的聯(lián)系,儲(chǔ)存校友的聯(lián)系方式。使校友之間得到更好的聯(lián)系。所以我們組決定制作小小通信錄,以為同學(xué)們提供方便。1.1 問題描述程序需要有一個(gè)簡潔的界面,使同學(xué)們一看便知怎么操作。程序還需要實(shí)現(xiàn)增加、修改、刪除、查詢功能。由于對(duì)數(shù)據(jù)庫和 java 之間聯(lián)系的欠缺,本組決定
6、用文本儲(chǔ)存聯(lián)系人的基本信息。同時(shí)為解決用戶大意錯(cuò)誤修改聯(lián)系人,本程序在修改過聯(lián)系人以后還需要確認(rèn)要修改聯(lián)系人的姓名。為解決這些問題我們就得查詢個(gè)方面的資料,為更好的解決問題做好準(zhǔn)備。1.2 技術(shù)分析本程序中使用 jframe 類編寫程序的界面,運(yùn)用各種監(jiān)聽方法,監(jiān)聽窗口、按鍵、鼠標(biāo)的各種動(dòng)作。本程序的所有信息都儲(chǔ)存在文件當(dāng)中,所以本程序是使用 file 類來實(shí)現(xiàn)對(duì)文本的讀取、儲(chǔ)存、增加、修改、查詢。 為使程序簡單話,我們決定把整個(gè)程序分成 4 個(gè)類, 分別為usersystem.java、userservice.java、mysystem.java、user.java。分別實(shí)現(xiàn)程序的部分功能。
7、usersystem.java 該類是程序的主類,該類含有 main 方法,程序從該類開始執(zhí)行。mysystem.java 該類主要是實(shí)現(xiàn)圖形化界面的,實(shí)現(xiàn)按鈕,輸入框,標(biāo)簽等圖形化面。user.java 該類主要是聯(lián)系人的相關(guān)數(shù)據(jù)。userservice.java 該類主要是對(duì)各種操作方法的定義和實(shí)現(xiàn),是實(shí)現(xiàn)增刪改查等主要功能的服務(wù)類。第 2 章 實(shí)現(xiàn)程序的主流程圖: 圖 2-1 程序的主流程圖 程序的增加、修改、刪除、查詢,都是在程序中的 userservice.java 實(shí)現(xiàn)的。程序中的主界面主要是通過程序中的 mysystem.java 實(shí)現(xiàn)的。程序的開始也就是程序的主類是通過程序中的
8、 usersystem.java。各類之間的關(guān)系可以用下圖表示。程序開始程序主界面程序是否退出增加聯(lián)系人修改聯(lián)系人刪除聯(lián)系人查詢聯(lián)系人程序關(guān)閉是否 圖 2-2 程序各類之間的調(diào)用關(guān)系下面將為你講解我們程序功能實(shí)現(xiàn)的詳細(xì)細(xì)節(jié)。2.1 程序開始模塊程序的主模塊是由 usersystem.java 類實(shí)現(xiàn)的。該類中有對(duì)各個(gè)類的調(diào)用。該類的開始先檢驗(yàn)程序所需文件是否存在。如果系統(tǒng)沒有創(chuàng)建文件,程序會(huì)為你新創(chuàng)建文本。如果有程序會(huì)問你是否繼續(xù)使用已創(chuàng)建的通信錄。你也可以新建通信錄,重新輸入聯(lián)系人。接下來系統(tǒng)會(huì)顯示程序的主界面,這通過 mysystem.java 實(shí)現(xiàn)。2.1.1 流程圖usersystem
9、.java 類運(yùn)行的主要流程如下:usersystem.javamysystem.javauserservice.javauser.java調(diào)用調(diào)用調(diào)用 圖 2-3 開始類的流程圖2.1.2 界面 本類中將出現(xiàn)的界面:圖 2-4 系統(tǒng)中沒有所需的儲(chǔ)存文件時(shí),提示系統(tǒng)為用戶新建文件。程序開始判斷程序所需文件是否存在判斷用戶是否需要重建文件程序繼續(xù)運(yùn)行為用戶新建文件為用戶新建文件是否是否 圖 2-5 系統(tǒng)中已有文件存在,程序會(huì)提問你是否需要新建通信錄。 圖 2-6 為用戶重新建立文件,并提示用戶原通信錄已刪除。2.1.3 代碼講解import java.io.filenotfoundexcepti
10、on;在程序得開始我們向程序中導(dǎo)入了文件類(file 類) 。類是 java 系統(tǒng)中預(yù)定義類,類可以反復(fù)使用,而不必每次“重新編寫” 。file 類是文件名及其目錄路徑的一個(gè)包裝類,我們?cè)诔绦蛑惺褂?file 類獲得文件的屬性、刪除和重命名文件。但是,file 類沒有包含讀寫文件內(nèi)容的方法。所以在下一個(gè)類中我會(huì)講到用 printwriter 寫數(shù)據(jù),用 scanner 讀數(shù)據(jù)。import javax.swing.joptionpane;程序中我們還要用消息對(duì)話框顯示文本信息,所以我們還需向程序中導(dǎo)入joptionpane 類。我們使用 joptiongpane 類中的 showmessage
11、dialog 方法顯示文本信息,showinputdialog 方法獲得可輸入的對(duì)話框。public class usersystem 接下來我們創(chuàng)建 usersystem 類。在這個(gè)類中我們包含了 main 方法。public static void main(string args) throws filenotfoundexception 我們創(chuàng)建了 main 方法,每個(gè) java 應(yīng)用程序必須有一個(gè)用戶聲明的 main 方法,它定義了程序從何處開始。jvm 通過調(diào)用 main 方法執(zhí)行應(yīng)用程序。程序中還用到了 throws。throws 是用來聲明一個(gè)方法可能拋出的所有異常信息,注意,
12、是可能的,所有的異常信息,在 java 里面,大家很熟悉什么是類和對(duì)象,在這里,throws 要拋出的就是一個(gè)異常類,因?yàn)樗⒉恢谰唧w會(huì)出現(xiàn)哪種異常,所以就簡單拋出一個(gè)異常類,包含這個(gè)異常類下面所有可能的異常。throws 通常不用顯示的捕獲異常,而是由系統(tǒng)自動(dòng)將所有捕獲到的異常信息拋給上級(jí)方法來處理,舉個(gè)簡單的例子來說:a類聲明拋出了一個(gè)異常類,如果系統(tǒng)捕獲到該異常類下面某個(gè)具體的異常對(duì)象,則上交給 a 的父類 b 來處理,假如 b 不做處理,那么 b 繼續(xù)上拋,上拋給 b 的父類 c 來處理,以此類推,直至找到可以處理該異常的方法為止。java.io.file file = new ja
13、va.io.file(txl.txt);本語句為文件 txl.txt 創(chuàng)建一個(gè) file 對(duì)象。if (file.exists()else查看文件是否存在 file 類中的 exsits()方法。利用 if 語句判斷文件存在與不存在時(shí)的動(dòng)作。string s = joptionpane.showinputdialog(null,已有人使用本通信錄(文件位于 txl.txt) 。n 新建通信錄請(qǐng)按任意數(shù)字鍵n + 繼續(xù)使用請(qǐng)按數(shù)字鍵 1);當(dāng)文件存在時(shí),顯示消息對(duì)話框,提示用戶接下來的操作。并將用戶輸入的信息傳遞給 string 類型的 s。s 的值關(guān)系到程序的下一步運(yùn)行。if (s.equal
14、s(1) new mysystem();在上一步的選擇中如果用戶鍵入了數(shù)字 1。則表示用戶需要繼續(xù)使用已有的通信錄。系統(tǒng)則會(huì)調(diào)用程序的 mysystem()類,顯示程序主界面。equals( ) 如果此對(duì)象與指定對(duì)象相同,則返回 true。如果不相同,則返回 false。joptionpane.showmessagedialog(null,以為你創(chuàng)建好文件(文件位于 txl.txt) 。源文件已刪除! );new java.io.printwriter(file); new mysystem(); 在文件已存在時(shí)如果用戶鍵入其他鍵,則程序會(huì)為用戶重新建立文件。也會(huì)把原有的通信錄刪除。程序調(diào)用構(gòu)
15、造方法 new printwinter(string filename)創(chuàng)建一個(gè)新的文件。并把原有文件的內(nèi)容刪除。程序新建文件后會(huì)調(diào)用程序的 mysystem()類,顯示程序的主界面。使程序繼續(xù)運(yùn)行。2.2 程序界面顯示模塊程序的界面顯示主要是有 mysystem.java 類實(shí)現(xiàn)的。mysystem.java 主要是實(shí)現(xiàn)圖形化界面的,實(shí)現(xiàn)按鈕,輸入框,標(biāo)簽等圖形化界面.。這個(gè)類中的方法主要是java 語言程序設(shè)計(jì)基礎(chǔ)篇中第 3 篇 圖形用戶界面程序設(shè)計(jì)的知識(shí)。我們利用第一周的部分時(shí)間學(xué)習(xí)了這部分的知識(shí)。為我們?cè)谶@里編寫程序的界面打下了基礎(chǔ)。這個(gè)類中主要用的是不抽象窗口工具集(abstract
16、 window tookit, awt)。awt 使用于開發(fā)簡單的圖形用戶界面。而是使用的比 awt 用戶界面組件更穩(wěn)定、通用和靈活的 swing 組件庫取代。swing 組件更少地依賴目標(biāo)機(jī)器上的平臺(tái),更少使用本地的gui 資源。mysystem 類 uml 類圖: 圖 2-7 mysystem.java 類 uml 圖2.2.1 流程圖mysystem.java 類運(yùn)行的流程圖:mysystem+mysystem()+ actionperformed(actionevent e):void 圖 2-8 程序界面系統(tǒng)的流程圖2.2.2 界面 本類中出現(xiàn)程序的主界面,好程序退出時(shí)的界面,界面如
17、下圖:程序經(jīng)上一步調(diào)用程序顯示主界面增加鍵是否按下刪除鍵是否按下修改鍵是否按下查詢鍵是否按下退出按鍵是否按下調(diào)用增加方法調(diào)用刪除方法調(diào)用修改方法調(diào)用查找方法程序退出是是是是是 圖 2-9 程序的主界面 圖 2-10 程序的退出界面 2.2.3 代碼講解import java.awt.*;import javax.swing.*;由于本類是用于編寫程序的界面,所以本類中需要向程序中導(dǎo)入 java.awt 包和javax.swing 包。用于程序編譯界面。swing 組件不能取代 awt 的全部類,只能替代awt 的 gui 組建類。所以程序還需調(diào)用 java.awt 包。public class
18、 mysystem extends jframe implements actionlistener 建立 mysystem 類并繼承 jframe 類,繼承可訪問的數(shù)據(jù)域和方法。同時(shí)對(duì) mysystem類實(shí)現(xiàn) actionlistener 接口。接口是一種與類相似的結(jié)構(gòu),只包含常量和抽象的方法。接口在許多方面與抽象類相似,但是抽象類除了包含常量和抽象方法外,還可以包含變量和具體方法。在 java 中,接口被認(rèn)為是特殊的類。就像通常的類一樣,每個(gè)接口編譯為獨(dú)立的字節(jié)碼文件。與抽象類相似,不能使用 new 操作符創(chuàng)建接口的實(shí)例,但是大多數(shù)情況下,使用接口或多或少有點(diǎn)像使用抽象類。jbutton
19、b1 = new jbutton(查詢);jbutton b2 = new jbutton(增加);jbutton b3 = new jbutton(刪除);jbutton b4 = new jbutton(修改);jbutton b5 = new jbutton(退出);jbutton b11 = new jbutton(按姓名查詢);jbutton b12 = new jbutton(按號(hào)碼查詢);component 類是所有用戶界面類的父類,而 jcomponent 類是所有輕型 swing 組件的父類。由于 jcomponent 是一個(gè)抽象類,所以,不能用 new jcomponent
20、()創(chuàng)建 jcomponent的實(shí)例,但是,可以使用 jcomponent 具體子類的構(gòu)造方法來創(chuàng)建 jcomponent 的實(shí)例。所以可以直接使用 jbutton jbutton = new jbutton();來直接創(chuàng)建按鍵。本部分為程序創(chuàng)建了 7 個(gè)按鍵。container con = getcontentpane();container 用來組織組件??蚣?frame、面板 panel 和 applet 都是容器的例子。每個(gè)jframe 都包含一個(gè)內(nèi)容窗口。每個(gè)內(nèi)容窗格都是 java.awt.container 的一個(gè)實(shí)例??梢韵騝on 中添加按鍵、圖像。imageicon aicon
21、 = new imageicon(通信錄.jpg);imageicon icon=new imageicon(“”);語句創(chuàng)建一個(gè)圖像圖標(biāo)。mysystem() 這個(gè)類中顯示程序主界面的方法。界面的編寫在這個(gè)程序中實(shí)現(xiàn)。super(個(gè)人通信錄管理程序);設(shè)置窗口的題目。setsize(390, 460);設(shè)置窗口的大小。con.setlayout(new borderlayout();設(shè)置容器的布局管理器。borderlayout 管理器將窗口分成五個(gè)區(qū)域:東區(qū)、南區(qū)、西區(qū)、北區(qū)和中央。p1.setbackground(color.red);p3.setbackground(color.blu
22、e);設(shè)置區(qū)域 p1、p2 的顏色。p1.add(new jlabel();p3.add(b2);p3.add(b4);p3.add(b3);p3.add(b1);p3.add(b5);向 p1 中添加標(biāo)題,p3 中添加各個(gè)按鍵。add(new jlabel(aicon);con.add(north, p1);con.add(south, p3);dimension consize=getsize();int halfwidth = consize.width/2;int halfheight = consize.height/2;dimension screensize=toolkit.ge
23、tdefaulttoolkit().getscreensize();int centerx = screensize.width/2;int centery = screensize.height/2;setlocation(centerx-halfwidth,centery-halfheight);setvisible(true);本段代碼是確定程序窗口的位置,舉例說明:1、有一個(gè) 200*200 像素的窗口,想要把它放在 800*600 像素的屏幕中間,屏幕的位置應(yīng)是(800/2,600/2)=(400,300)2、為了設(shè)置該窗口左上角的位置,以使窗口中心與屏幕中心相吻合,必須符合 2 個(gè)
24、小條件(1)窗口的一半或 100 像素必須落在屏幕的中心的左邊(2)窗口的一半或 100 像素必須落在屏幕的中心的上方,因此窗口左上角的位置必須定位于(400-100,300-100)=(300,200) 。但在實(shí)際程序運(yùn)行的過程中,程序的運(yùn)行環(huán)境顯示屏幕的實(shí)際尺寸和像素清晰度是不盡相同的,我們必須能動(dòng)態(tài)的判斷運(yùn)行 java 程序的計(jì)算機(jī)屏幕的大小,以使程序不管運(yùn)行在什么計(jì)算機(jī)上都能居中,java 的 awt 提供了一個(gè) toolkit 類,以使我們做出判斷!具體應(yīng)用:1、在 toolkit 類上調(diào)用一個(gè)靜態(tài)方法 getdefaulttoolkit(),以便為這個(gè)平臺(tái)在 awt 的toolki
25、t 對(duì)象上獲得一個(gè)句柄。2、然后調(diào)用 toolkit 對(duì)象的 getscreensize()方法,該方法返回一個(gè) dimension(中文意為尺寸)類對(duì)象。demension 對(duì)象正好有兩個(gè) public int 屬性,即 width(以像素為單位),和heigth(以像素為單位)3、把這種方法調(diào)用“系”在一起,因?yàn)槲覀儾幌腴L時(shí)間的保持 toolkit 對(duì)象。我們只想暫時(shí)用它來恢復(fù)屏幕的 dimension 對(duì)象:代碼:dimension screensize=toolkit.getdefaulttoolkit().getscreensize();因此不必向引用變量分配 toolkit 對(duì)象的
26、句柄。addwindowlistener(new windowadapter() public void windowclosing(windowevent e) setvisible(false);system.exit(0););對(duì)窗口添加監(jiān)聽,當(dāng)窗口被關(guān)閉時(shí)系統(tǒng)退出b1.addactionlistener(this); b2.addactionlistener(this);b3.addactionlistener(this);b4.addactionlistener(this);b5.addactionlistener(this);b11.addactionlistener(this);
27、b12.addactionlistener(this);為各個(gè)按鍵添加監(jiān)聽,為按鍵后續(xù)實(shí)現(xiàn)功能做下鋪墊。public void actionperformed(actionevent e) 創(chuàng)建監(jiān)聽方法實(shí)現(xiàn)各個(gè)按鍵的監(jiān)聽。if (b1 = e.getsource() final jframe newf = new jframe(查詢方式);newf.setsize(200, 150);newf.setvisible(true);jbutton b13 = new jbutton(關(guān)閉);newf.setlayout(new gridlayout(3, 1, 5, 5);newf.add(b11
28、);newf.add(b12);newf.add(b13);b13.addmouselistener(new mouseadapter() public void mouseclicked(mouseevent ee) newf.setvisible(false););當(dāng)按鍵查詢被按下時(shí),顯示窗體讓用戶選擇查詢的方式。并對(duì)關(guān)閉按鍵添加鼠標(biāo)監(jiān)聽,當(dāng)鼠標(biāo)按下關(guān)閉按鍵時(shí)查詢窗體退出。if (b11 = e.getsource() userservice.cx();當(dāng)按下按姓名查詢時(shí),調(diào)用 userservice 類中的 cx()方法。實(shí)現(xiàn)按姓名查詢。if (b12 = e.getsource() u
29、serservice.cx1();當(dāng)按下按手機(jī)號(hào)查詢時(shí),調(diào)用 userservice 類中的 cx1()方法。實(shí)現(xiàn)按手機(jī)號(hào)查詢。if (b2 = e.getsource() ) userservice.add();當(dāng)按下增加鍵時(shí),調(diào)用 userservice 類的 add()方法,增加功能。if (b3 = e.getsource() userservice.delete();當(dāng)按下刪除鍵時(shí),調(diào)用 userservice 類的 delete()方法,刪除功能。if (b4 = e.getsource() userservice.xg();當(dāng)按下修改時(shí),調(diào)用 userservice 類的 xg(
30、)方法,實(shí)現(xiàn)修改功能。if (b5 = e.getsource()joptionpane.showmessagedialog(null,本通訊錄由劉旭輝,翟瑞東,張淵喆共同制作.n 謝謝使用,再見!);system.exit(0);當(dāng)按下退出時(shí),提示退出,退出系統(tǒng)。2.3 聯(lián)系人信息模塊聯(lián)系人的信息板塊主要是 user.java 類,該類主要是聯(lián)系人的相關(guān)數(shù)據(jù)。該類中建立聯(lián)系人對(duì)象包含了聯(lián)系人的各項(xiàng)信息,聯(lián)系人姓名、聯(lián)系人手機(jī)號(hào)、聯(lián)系人 qq 等。同時(shí)類中還包含了很多的方法,來得到相關(guān)的信息。user 類 uml 類圖: 圖 2-11 user 類 uml 圖2.3.1 代碼講解public
31、class user 為程序創(chuàng)建 user 類。public user() super();public user(int id, string name, string tel, string email, string phone,user+name; string+tel; string+email; string+phone; string+address; string+qq; string+user()+user(int id, string name, string tel, string email, string phone,string category, string a
32、ddress, string work, string q, string qq)+getqq():string+setqq(string qq):void+getname():string+setname(string name):void+gettel():string+settel(string tel):void+getemail():string+setemail(string email):void+getphone():string+setphone(string phone):void+getaddress():string+setaddress(string address)
33、:voidstring category, string address, string work, string q, string qq) super(); = name;this.tel = tel;this.email = email;this.phone = phone;this.address = address;this.qq = qq;user 類中的不含參構(gòu)造方法和含參構(gòu)造方法。當(dāng)從一個(gè)類繼承時(shí),子類和父類都有一個(gè)同名方法,也就是子類覆蓋了父類的方法,可是又想調(diào)用父類的方法,那么就要用super。 其他下面的代碼是為了實(shí)現(xiàn)對(duì)信息的讀寫。在此不做詳細(xì)的介紹。2
34、.4 程序的功能模塊程序的主要功能是在這個(gè) userservice.java 類實(shí)現(xiàn)的,該類是程序?qū)崿F(xiàn)功能的主要類。該類中包括 add()方法、add1(file file, user u)方法、delete()方法、delete1(file file)方法、xg()方法、xg1(file file)方法、xg11(file file, user u)方法、cx()方法、search1(file file)方法、cx1()方法、search12(file file)方法。分別實(shí)現(xiàn)程序的添加功能、刪除功能、修改功能、查詢功能。userservice 類的 uml 類圖:userservice+a
35、dd():void+add1(file file, user u):void+delete():void+delete1(file file):void+xg():void+xg1(file file):void+xg11(file file, user u):void+cx();void+search1(file file):void+cx1():void+search12(file file):void 圖 2-12 userservice.java 類 uml 圖2.4.1 流程圖 增加方法的流程圖:按下增加鍵顯示增加窗口讀取聯(lián)系人在文件中的個(gè)數(shù),確定聯(lián)系人的添加位置判斷用戶是否輸入聯(lián)系
36、人姓名判斷聯(lián)系人是否輸入聯(lián)系人的手機(jī)號(hào)從輸入框中獲得用戶輸入的信息以字符串的形式儲(chǔ)存到文件中儲(chǔ)存關(guān)閉文件結(jié)束提示用戶沒有輸入姓名提示用戶沒有輸入手機(jī)號(hào)否否是是是 圖 2-13 增加方法流程圖查詢功能的流程圖如下: 圖 2-14 程序查詢的流程圖按下查詢鍵顯示查詢窗口是否按下按姓名查詢鍵是否按下按手機(jī)號(hào)查詢鍵是否按下關(guān)閉鍵彈出按姓名查詢窗口彈出按手機(jī)號(hào)查詢窗口是否有要查詢的姓名是否有要查詢的手機(jī)號(hào)顯示聯(lián)系人顯示聯(lián)系人提示無此人提示無此人結(jié)束是是是是是否否2.4.2 界面本類中出現(xiàn)的界面: 圖 2-15 添加聯(lián)系人界面 圖 2-16 添加成功界面 圖 2-17 查詢界面 圖 2-18 修改聯(lián)系人界
37、面 圖 2-19 刪除聯(lián)系人成功界面2.4.3 代碼講解 這個(gè)類中需要導(dǎo)入很多的類,原理和前三個(gè)的一樣在這里不做過多的解釋。 本類中首先實(shí)現(xiàn)的是添加方法 add()。程序中先建立添加的窗口。bb1.addmouselistener(new mouseadapter() public void mouseclicked(mouseevent ee) user u = new user();u.setname(jtf1.gettext();u.setphone(jtf2.gettext();u.settel(jtf3.gettext();u.setqq(jtf4.gettext(); u.sete
38、mail(jtf5.gettext(); u.setaddress(jtf6.gettext();file file = new file(txl.txt);try add1(file, u); catch (filenotfoundexception e1) e1.printstacktrace();); 為確定按鍵,設(shè)置監(jiān)聽,并設(shè)置動(dòng)作。從輸入對(duì)話框中得到信息。并執(zhí)行 add1()方法,實(shí)現(xiàn)對(duì)聯(lián)系人的添加。bb2.addmouselistener(new mouseadapter() public void mouseclicked(mouseevent ee) newf.setvisib
39、le(false););為關(guān)閉按鍵添加監(jiān)聽。當(dāng)關(guān)閉按鍵按下時(shí),窗口關(guān)閉。接下來該類實(shí)現(xiàn) add1()方法,這個(gè)方法主要是讀取文件中聯(lián)系人的數(shù)目,并在相應(yīng)的位置添加鍵入的聯(lián)系人。while (input.hasnext() useri = new user(); = input.next();useri.phone = input.next();useri.tel = input.next();useri.qq = input.next();useri.email = input.next();useri.address = input.next();i+; 上述代碼的主要作
40、用是讀出文件中已有聯(lián)系人的數(shù)目,并由 i 記錄聯(lián)系人總數(shù)目。string m = u.getname();if (m = null | m.equals()break; 如果輸入的聯(lián)系人姓名為空,程序?qū)⑼顺觥or (j = 0; j i; j+) if (.equals(m) joptionpane.showmessagedialog(null, 此人已存在!);return; 本段代碼逐個(gè)檢測(cè)系統(tǒng)儲(chǔ)存的通信錄中是否存在同名的聯(lián)系人。string h = u.getphone();if (h = null | h.equals()break; 如果輸入的聯(lián)系人的手機(jī)號(hào)為空
41、,程序?qū)⑼顺?。for (j = 0; j i; j+) if (userj.phone.equals(h) joptionpane.showmessagedialog(null, 此手機(jī)號(hào)已存在!);return;本段代碼逐個(gè)檢測(cè)系統(tǒng)儲(chǔ)存的通信錄中是否存在同手機(jī)號(hào)的聯(lián)系人。useri = new user(); = m;useri.phone = h;useri.qq = z;useri.tel = t;useri.email = r;useri.address = g;i+;joptionpane.showmessagedialog(null, 添加成功!n 已有聯(lián)系人數(shù)
42、目為+i+n 新新增聯(lián)系人的信息為:+ n 姓名: + m + n 手機(jī)號(hào): + h + nqq: + z + n 固定電話:+ t + nemail: + r + n 地址: + g + ); 檢查出聯(lián)系人中沒有與索要添加聯(lián)系人信息相同的。則聯(lián)系人的信息分別從窗口中得到。并對(duì) i 進(jìn)行加 1,為在文件最后一個(gè)聯(lián)系人后面添加上新加入的聯(lián)系人的信息。printwriter output = new printwriter(file);for (int k = 0; k i; k+) string a = + + userk.tel + + userk.email + + u
43、serk.phone + + userk.address + + userk.qq + rn;output.print(a); 創(chuàng)建寫入方法并向文件的正確位置添加新增聯(lián)系人。到此增加方法結(jié)束。 下面為本系統(tǒng)查詢方法的講解。查詢方法還是需要先檢驗(yàn)文件中已有聯(lián)系人的數(shù)目。while (input.hasnext() useri = new user(); = input.next();useri.phone = input.next();useri.email = input.next();useri.tel = input.next();useri.address = inp
44、ut.next();useri.qq = input.next();i+;i 記錄聯(lián)系人的總數(shù)目。for (j = 0; j i; j+) if (.equals(t11)break;if (j = i - 1) joptionpane.showmessagedialog(null, 通信錄中沒有此人,按確定退出!);return; 在文件中查找是否有與輸入聯(lián)系人姓名相同的聯(lián)系人。如果有記下位置 j。joptionpane.showmessagedialog(null, 查到聯(lián)系人!n 您要查詢聯(lián)系人的當(dāng)前信息如下: + n 姓名:+ + n 電話:
45、+ userj.phone + n 固定電話:+ userj.tel + nqq: + userj.qq + nemail:+ userj.email + n 地址: + userj.address); 程序顯示查找到的聯(lián)系人。 對(duì)手機(jī)號(hào)的查找跟對(duì)姓名的查找都是一樣的在這里不做解釋。 其余兩個(gè)功能由本組的其他倆名成員完成,在他們的報(bào)告中會(huì)有詳細(xì)的講解。第 3 章 結(jié)束語本次的課題已經(jīng)較好的完成,只有部分功能沒有實(shí)現(xiàn)。還得通過以后的繼續(xù)學(xué)習(xí)來慢慢的完善。整個(gè)程序的效果還是很好的簡單使用,沒有錯(cuò)誤??梢詭椭脩艚⑼晟频耐ㄐ配?。程序中還有很多的不足,比如程序沒有模糊查詢的功能,只有用戶輸入與文本中
46、出入的相同的信息,系統(tǒng)才會(huì)檢索出來該聯(lián)系人。程序中還沒有列出所有聯(lián)系人的信息,這不方便用戶的各項(xiàng)操作。程序的添加功能也存在一定的不足,qq 必須添加,如果不添加程序就會(huì)出錯(cuò)。文件被打包后,程序的圖片無法顯示。當(dāng)程序中沒有聯(lián)系人信息時(shí),刪除、修改、查詢,雖然可以出東西但是程序出錯(cuò)。這些問題在后續(xù)的學(xué)習(xí)中我相信我一定會(huì)得到解決的方法。三周的課題實(shí)踐使我知道了自學(xué)能力的重要性。老師是不會(huì)把所有的知識(shí)都交給你的,老師也交不完。自學(xué)有的時(shí)候比老師講的要記憶的更加的深刻。通過自己的學(xué)習(xí)我學(xué)會(huì)了簡單界面的制作,為本程序制作了簡潔的界面。使程序不在是去年編的那樣出來一個(gè)黑框框,所有的操作都在那里實(shí)現(xiàn),而是有了
47、自己的窗口。在制作程序的各項(xiàng)功能的時(shí)候也遇到了很多的問題。雖然有很多問題老師已經(jīng)講過,但是經(jīng)過一個(gè)暑假,大部分知識(shí)都已經(jīng)忘記了。所以我以后要多多的復(fù)習(xí)以前學(xué)習(xí)的知識(shí),不能學(xué)著新的知識(shí),忘了以前學(xué)的知識(shí)。在寫程序階段我參考了很多書本上的程序,還有老師在課上寫的程序。其實(shí)我們的課題并不是很難,只要我們好好的學(xué)習(xí) java 根據(jù)課本,借助網(wǎng)絡(luò)其實(shí)我們會(huì)很容易的做出來。例如編寫程序時(shí),開始的時(shí)候我們記錄聯(lián)系人得文檔都是存儲(chǔ)在系統(tǒng)的 e 盤,系統(tǒng)所需要的圖片也是儲(chǔ)存在 e 盤。也就是說如果系統(tǒng)中沒有 e 盤我們的程序就沒有辦法使用,經(jīng)過我就課本的深入研究我從課本的 331 頁找到了答案,12.10 圖像
48、圖標(biāo) 以下的語句使用當(dāng)前類路徑下的 image 目錄的圖像文件 us.gif 來創(chuàng)建一個(gè)圖標(biāo): imageicon icon = new imageicon(“imageus.gif”);根據(jù)這個(gè)依據(jù)我也更改了文檔的目錄。在程序中我們會(huì)遇到很多不熟悉的用語,我們借助網(wǎng)絡(luò)懂得了這些方法的作用。并能 把他熟練的運(yùn)用到本程序中。網(wǎng)絡(luò)和圖書能讓我們知道新的技術(shù)。學(xué)到課本上沒有的東西。學(xué)到更簡單的方法。其實(shí)學(xué)習(xí)本來就是自己的事情,別人逼著學(xué)是不會(huì)真正的學(xué)進(jìn)去的。養(yǎng)成自學(xué)的習(xí)慣是很有助與以后 3 年的學(xué)習(xí)的。程序中的不足希望,我會(huì)通過大二的學(xué)習(xí),使程序中的問題得到解決,爭(zhēng)取做出一個(gè)完善、健全、強(qiáng)大的程序。
49、通過課題的編寫以及對(duì)相對(duì)資料的查詢,我重新認(rèn)識(shí)了 java。java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 pc、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。java 是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它繼承了 c+ 語言面向?qū)ο蠹夹g(shù)的核心,java 舍棄了 c +語言中容易引起錯(cuò)誤的指針(以引用取代) 、運(yùn)算符重載(operator overloading) 、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。 java 不同于一般的編譯執(zhí)行計(jì)
50、算機(jī)語言和解釋執(zhí)行計(jì)算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過,每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 java 程序的運(yùn)行效率。編寫程序的過程我也發(fā)現(xiàn)了自己的很多毛病,我發(fā)現(xiàn)自己做不下來看著長長的代碼,對(duì)著長長的代碼頭都疼。在檢查程序錯(cuò)誤時(shí)也沒有足夠的耐心。我要在以后的學(xué)習(xí)生活中改掉這些壞毛病,使自己具有一個(gè)程序員的良好品質(zhì)。參考文獻(xiàn):01(美)梁(liang,y.d.). java 語言程序設(shè)計(jì)基礎(chǔ)篇(原書第 6 版)m:機(jī)械工業(yè)出版社 2008.6
51、02 凱德納黑德, 勒邁, 陳武. 21 天學(xué)通 java 2:專業(yè)參考版.m 人民郵電出版社 2004.0103 洪維恩 何嘉. java 2 面向?qū)ο蟪绦蛟O(shè)計(jì).m 中國鐵道出版社 2005.0104 張靚 顧慧敏. java 案例開發(fā).m 中國水利水電出版社.2005.01指導(dǎo)教師評(píng)語 成績:指導(dǎo)教師簽名: 年 月 日 附錄 a: 附加圖、表mysystem 類 uml 類圖: 附表 1 mysystem.java 類 uml 圖user 類 uml 類圖: 附表 2 user 類 uml 圖 userservice 類的 uml 類圖:mysystem+mysystem()+ actio
52、nperformed(actionevent e):voiduser+name; string+tel; string+email; string+phone; string+address; string+qq; string+user()+user(int id, string name, string tel, string email, string phone,string category, string address, string work, string q, string qq)+getqq():string+setqq(string qq):void+getname()
53、:string+setname(string name):void+gettel():string+settel(string tel):void+getemail():string+setemail(string email):void+getphone():string+setphone(string phone):void+getaddress():string+setaddress(string address):void 附表 3 userservice.java 類 uml 圖附錄 b: 主要源程序系統(tǒng)的主程序:public class usersystem public stat
54、ic void main(string args) throws filenotfoundexception java.io.file file = new java.io.file(txl.txt);/ 檢查文件是否存在if (file.exists() string s = joptionpane.showinputdialog(null,已有人使用本通信錄。n 新建通信錄請(qǐng)按任意數(shù)字鍵n + 繼續(xù)使用請(qǐng)按數(shù)字鍵 1);if (s.equals(1) new mysystem(); else joptionpane.showmessagedialog(null,以為你創(chuàng)建好文件。源文件已刪
55、除! );new java.io.printwriter(file);/ 為用戶創(chuàng)建文件new mysystem();/ 調(diào)用窗口類,實(shí)現(xiàn)系統(tǒng)的顯示 else joptionpane.showmessagedialog(null,這是新的通信錄,以為你創(chuàng)建好文件。);new java.io.printwriter(file);new mysystem();userservice+add():void+add1(file file, user u):void+delete():void+delete1(file file):void+xg():void+xg1(file file):void+x
56、g11(file file, user u):void+cx();void+search1(file file):void+cx1():void+search12(file file):void系統(tǒng)的功能函數(shù):public class userservice / 本類是實(shí)現(xiàn)系統(tǒng)各項(xiàng)功能的類。public static void add() / 實(shí)現(xiàn)增加功能final jframe newf = new jframe(添加聯(lián)系人);/ 創(chuàng)建增加用戶界面newf.setsize(300, 400);newf.setvisible(true);newf.setlayout(new gridlayou
57、t(7, 2, 5, 5);jlabel jb1 = new jlabel(聯(lián)系人姓名: );final jtextfield jtf1 = new jtextfield(15);panel pp1 = new panel();pp1.add(jb1);pp1.add(jtf1);newf.add(pp1);jlabel jb2 = new jlabel(聯(lián)系人手機(jī)號(hào): );final jtextfield jtf2 = new jtextfield(15);panel pp2 = new panel();pp2.add(jb2);pp2.add(jtf2);newf.add(pp2);jla
58、bel jb3 = new jlabel(固 定 電 話: );final jtextfield jtf3 = new jtextfield(15);panel pp3 = new panel();pp3.add(jb3);pp3.add(jtf3);newf.add(pp3);jlabel jb4 = new jlabel(聯(lián)系人 qq : );final jtextfield jtf4 = new jtextfield(15);panel pp4 = new panel();pp4.add(jb4);pp4.add(jtf4);newf.add(pp4);jlabel jb5 = new
59、jlabel(聯(lián)系人 email: );final jtextfield jtf5 = new jtextfield(15);panel pp5 = new panel();pp5.add(jb5);pp5.add(jtf5);newf.add(pp5);jlabel jb6 = new jlabel(聯(lián)系人住地地址: );final jtextfield jtf6 = new jtextfield(15);panel pp6 = new panel();pp6.add(jb6);pp6.add(jtf6);newf.getcontentpane().add(pp6);jbutton bb1
60、= new jbutton(提交);jbutton bb2 = new jbutton(關(guān)閉);panel pp9 = new panel();pp9.add(bb1);pp9.add(bb2);newf.add(pp9);bb1.addmouselistener(new mouseadapter() / 對(duì)提交按鍵添加鼠標(biāo)監(jiān)聽public void mouseclicked(mouseevent ee) user u = new user();u.setname(jtf1.gettext();/ 從增加用戶窗口得到,用戶添加的數(shù)據(jù)u.setphone(jtf2.gettext();u.set
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公環(huán)境的網(wǎng)絡(luò)安全培訓(xùn)
- 未來學(xué)習(xí)模式基于網(wǎng)絡(luò)教育平臺(tái)的思考
- 現(xiàn)代辦公空間中的綠色環(huán)保用品設(shè)計(jì)思考
- 2024年四年級(jí)品德與社會(huì)上冊(cè) 第三單元 生活在這里真好 第11課《我家來了新鄰居》說課稿 粵教版001
- 2024-2025學(xué)年高中物理 第十二章 機(jī)械波 4 波的衍射和干涉說課稿4 新人教版選修3-4001
- Module 1 Unit 1 She's a nice teacher(說課稿)-2023-2024學(xué)年外研版(三起)英語四年級(jí)下冊(cè)
- 2023九年級(jí)化學(xué)上冊(cè) 第一章 大家都來學(xué)化學(xué)1.2 化學(xué)實(shí)驗(yàn)室之旅說課稿(新版)粵教版001
- 2025農(nóng)村養(yǎng)殖場(chǎng)場(chǎng)地租地合同
- 2025國際專利技術(shù)許可合同模板版
- Unit 5 Nature and Culture(說課稿)2023-2024學(xué)年人教新起點(diǎn)版英語六年級(jí)下冊(cè)
- 電動(dòng)汽車用驅(qū)動(dòng)電機(jī)系統(tǒng)-編制說明
- 江蘇卷2024年高三3月份模擬考試化學(xué)試題含解析
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺(tái)及通道安全技術(shù)要求
- 2024年四川省成都市新都區(qū)中考英語一診試卷(含解析)
- 醫(yī)療器械物價(jià)收費(fèi)申請(qǐng)流程
- 招聘專員轉(zhuǎn)正述職報(bào)告
- “一帶一路”背景下的西安市文化旅游外宣翻譯研究-基于生態(tài)翻譯學(xué)理論
- 2024年江蘇省昆山市六校中考聯(lián)考(一模)化學(xué)試題
- 大學(xué)生文學(xué)常識(shí)知識(shí)競(jìng)賽考試題庫500題(含答案)
- 國家電網(wǎng)智能化規(guī)劃總報(bào)告
- 邢臺(tái)市橋西區(qū)2024年事業(yè)單位考試《公共基礎(chǔ)知識(shí)》全真模擬試題含解析
評(píng)論
0/150
提交評(píng)論