軟件工程專業實訓報告_第1頁
軟件工程專業實訓報告_第2頁
軟件工程專業實訓報告_第3頁
軟件工程專業實訓報告_第4頁
軟件工程專業實訓報告_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、中原工學院軟件學院中原工學院軟件學院 二二級級實實踐踐課課題題設設計計任任務務書書 姓姓 名名 專業 班 題題 目目通信錄系統的開發 設設 計計 任任 務務 開發一個比較完善的基于 java 的通信錄服務系統,包括校友交流所能用到的所有聯系 方式,為軟件學院校友提供一個強大的通信網絡。 主要功能包括: 1. 對聯系人信息的增加:在通信錄中增加聯系人的信息;(獨立完成) 2. 對聯系人信息的修改:在通信錄中修改聯系人的信息;(參與) 3. 對聯系人信息的刪除:在通信錄中刪除聯系人的信息;(參與) 4. 對聯系人信息的查詢:在通信錄中查詢聯系人的信息;(獨立完成) 開發工具: java、photo

2、shop 時時 間間 進進 度度 第 1 周(開始時間結束時間): 學習編寫通信錄中所需要的相關的知識,為后兩周的課題的編寫大下基礎。 第 2 周(開始時間結束時間): 開始編寫程序的界面代碼,參考各種資料,逐個實現程序的功能。 第 3 周(開始時間結束時間): 測試已編好的程序,找到程序中的不知,修改程序,使程序更加完善。 原原 主主 始始 要要 資資 參參 料料 考考 與與 文文 獻獻 01(美)梁(liang,y.d.). java 語言程序設計基礎篇(原書第 6 版)m:機械工業出版 社 2008.6 02 凱德納黑德, 勒邁, 陳武. 21 天學通 java 2:專業參考版.m 人民

3、郵電出版社 2004.01 03 洪維恩 何嘉. java 2 面向對象程序設計.m 中國鐵道出版社 2005.01 04 張靚 顧慧敏. java 案例開發.m 中國水利水電出版社.2005.01 指導教師簽字:指導教師簽字: 年年 月月 日日 小小通信錄 摘 要 社會在不斷的進步,紙制的通信錄已經快要被淘汰了。電子通信錄已經成為了主流。 電子通信錄與原有的紙制通信錄相比,紙質通訊錄有以下缺陷:儲存信息量少、查找不 方便、信息容易丟失,且對于隱私保護不強。而電子通信錄則克服了這些缺陷,且具有 占用空間小,查找方便,不易丟失等多個優點。 應校友的需求我們編寫了程序:小小通信錄。它可以記錄學友的

4、各項通信信息。方 便校友盡快聯系需要聯系的人。可更好的增強校友之間的聯系、友誼。 本程序具有界面簡便大方,使用戶不用學習操作指南也可以簡單操作。大大提高了 工作效率。 本程序是用 java 語言編寫的,程序占用系統資源相對較少,且可移植性很強,可 以適用各種操作系統。用戶還可以根據自己的需求不同對程序做出相應的修改,使每個 用戶都有最適用于自己的通信錄。這也是本程序的實用性所在。 關鍵詞:通信錄; 方便; 簡單; 實用 目 錄 摘摘 要要.1 第第 1 章章 項目分析項目分析.1 1.1 問題描述.1 1.2 技術分析.1 第第 2 章章 實現實現.2 2.1 程序開始模塊.3 2.1.1 流

5、程圖.3 2.1.2 界面.4 2.1.3 代碼講解.5 2.2 程序界面顯示模塊.6 2.2.1 流程圖.7 2.2.2 界面.8 2.2.3 代碼講解.8 2.3 聯系人信息模塊.13 2.3.1 代碼講解.13 2.4 程序的功能模塊.14 2.4.1 流程圖.14 2.4.2 界面.17 2.4.3 代碼講解.18 第第 3 章章 結束語結束語.23 附錄附錄 a: 附加圖、表附加圖、表.27 附錄附錄 b: 主要源程序主要源程序.28 第 1 章 項目分析 為方便校友之間的聯系,儲存校友的聯系方式。使校友之間得到更好的聯系。所以 我們組決定制作小小通信錄,以為同學們提供方便。 1.1

6、 問題描述 程序需要有一個簡潔的界面,使同學們一看便知怎么操作。程序還需要實現增加、 修改、刪除、查詢功能。由于對數據庫和 java 之間聯系的欠缺,本組決定用文本儲存 聯系人的基本信息。同時為解決用戶大意錯誤修改聯系人,本程序在修改過聯系人以后 還需要確認要修改聯系人的姓名。為解決這些問題我們就得查詢個方面的資料,為更好 的解決問題做好準備。 1.2 技術分析 本程序中使用 jframe 類編寫程序的界面,運用各種監聽方法,監聽窗口、按鍵、鼠 標的各種動作。本程序的所有信息都儲存在文件當中,所以本程序是使用 file 類來實現 對文本的讀取、儲存、增加、修改、查詢。 為使程序簡單話,我們決定

7、把整個程序分成 4 個類, 分別為 usersystem.java、userservice.java、mysystem.java、user.java。分別實現程序的部分功能。 usersystem.java 該類是程序的主類,該類含有 main 方法,程序從該類開始執行。 mysystem.java 該類主要是實現圖形化界面的,實現按鈕,輸入框,標簽等圖形化面。 user.java 該類主要是聯系人的相關數據。 userservice.java 該類主要是對各種操作方法的定義和實現,是實現增刪改查等主要 功能的服務類。 第 2 章 實現 程序的主流程圖: 圖 2-1 程序的主流程圖 程序的增加

8、、修改、刪除、查詢,都是在程序中的 userservice.java 實現的。程序中 的主界面主要是通過程序中的 mysystem.java 實現的。程序的開始也就是程序的主類是通 過程序中的 usersystem.java。各類之間的關系可以用下圖表示。 程序開始 程序主界面 程序是否退出 增加聯系人修改聯系人刪除聯系人查詢聯系人 程序關閉 是 否 圖 2-2 程序各類之間的調用關系 下面將為你講解我們程序功能實現的詳細細節。 2.1 程序開始模塊 程序的主模塊是由 usersystem.java 類實現的。該類中有對各個類的調用。該類的開 始先檢驗程序所需文件是否存在。如果系統沒有創建文件

9、,程序會為你新創建文本。如 果有程序會問你是否繼續使用已創建的通信錄。你也可以新建通信錄,重新輸入聯系人。 接下來系統會顯示程序的主界面,這通過 mysystem.java 實現。 2.1.1 流程圖 usersystem.java 類運行的主要流程如下: usersystem.java mysystem.java userservice.java user.java 調用 調用 調用 圖 2-3 開始類的流程圖 2.1.2 界面 本類中將出現的界面: 圖 2-4 系統中沒有所需的儲存文件時,提示系統為用戶新建文件。 程序開始 判斷程序所需文件 是否存在 判斷用戶是否需要 重建文件 程序繼續運

10、行 為用戶新建文件 為用戶新建文件 是 否 是 否 圖 2-5 系統中已有文件存在,程序會提問你是否需要新建通信錄。 圖 2-6 為用戶重新建立文件,并提示用戶原通信錄已刪除。 2.1.3 代碼講解 import java.io.filenotfoundexception; 在程序得開始我們向程序中導入了文件類(file 類) 。類是 java 系統中預定義類,類 可以反復使用,而不必每次“重新編寫” 。file 類是文件名及其目錄路徑的一個包裝類, 我們在程序中使用 file 類獲得文件的屬性、刪除和重命名文件。但是,file 類沒有包含讀 寫文件內容的方法。所以在下一個類中我會講到用 pr

11、intwriter 寫數據,用 scanner 讀數據。 import javax.swing.joptionpane; 程序中我們還要用消息對話框顯示文本信息,所以我們還需向程序中導入 joptionpane 類。我們使用 joptiongpane 類中的 showmessagedialog 方法顯示文本信息, showinputdialog 方法獲得可輸入的對話框。 public class usersystem 接下來我們創建 usersystem 類。在這個類中我們包含了 main 方法。 public static void main(string args) throws file

12、notfoundexception 我們創建了 main 方法,每個 java 應用程序必須有一個用戶聲明的 main 方法,它定 義了程序從何處開始。jvm 通過調用 main 方法執行應用程序。 程序中還用到了 throws。throws 是用來聲明一個方法可能拋出的所有異常信息,注意, 是可能的,所有的異常信息,在 java 里面,大家很熟悉什么是類和對象,在這里, throws 要拋出的就是一個異常類,因為它并不知道具體會出現哪種異常,所以就簡單拋 出一個異常類,包含這個異常類下面所有可能的異常。throws 通常不用顯示的捕獲異常, 而是由系統自動將所有捕獲到的異常信息拋給上級方法來

13、處理,舉個簡單的例子來說:a 類聲明拋出了一個異常類,如果系統捕獲到該異常類下面某個具體的異常對象,則上交 給 a 的父類 b 來處理,假如 b 不做處理,那么 b 繼續上拋,上拋給 b 的父類 c 來處理, 以此類推,直至找到可以處理該異常的方法為止。 java.io.file file = new java.io.file(txl.txt); 本語句為文件 txl.txt 創建一個 file 對象。 if (file.exists()else 查看文件是否存在 file 類中的 exsits()方法。利用 if 語句判斷文件存在與不存在時的 動作。 string s = joptionpa

14、ne.showinputdialog(null,已有人使用本通信錄(文件位于 txl.txt) 。 n 新建通信錄請按任意數字鍵n + 繼續使用請按數字鍵 1); 當文件存在時,顯示消息對話框,提示用戶接下來的操作。并將用戶輸入的信息傳 遞給 string 類型的 s。s 的值關系到程序的下一步運行。 if (s.equals(1) new mysystem(); 在上一步的選擇中如果用戶鍵入了數字 1。則表示用戶需要繼續使用已有的通信錄。 系統則會調用程序的 mysystem()類,顯示程序主界面。equals( ) 如果此對象與指定對象 相同,則返回 true。如果不相同,則返回 fals

15、e。 joptionpane.showmessagedialog(null,以為你創建好文件(文件位于 txl.txt) 。源文件 已刪除! ); new java.io.printwriter(file); new mysystem(); 在文件已存在時如果用戶鍵入其他鍵,則程序會為用戶重新建立文件。也會把原有 的通信錄刪除。程序調用構造方法 new printwinter(string filename)創建一個新的文件。并 把原有文件的內容刪除。程序新建文件后會調用程序的 mysystem()類,顯示程序的主界 面。使程序繼續運行。 2.2 程序界面顯示模塊 程序的界面顯示主要是有 my

16、system.java 類實現的。mysystem.java 主要是實現圖形 化界面的,實現按鈕,輸入框,標簽等圖形化界面.。 這個類中的方法主要是java 語言程序設計基礎篇中第 3 篇 圖形用戶界面程序設 計的知識。我們利用第一周的部分時間學習了這部分的知識。為我們在這里編寫程序的 界面打下了基礎。這個類中主要用的是不抽象窗口工具集(abstract window tookit, awt)。 awt 使用于開發簡單的圖形用戶界面。而是使用的比 awt 用戶界面組件更穩定、通用 和靈活的 swing 組件庫取代。swing 組件更少地依賴目標機器上的平臺,更少使用本地的 gui 資源。 my

17、system 類 uml 類圖: 圖 2-7 mysystem.java 類 uml 圖 2.2.1 流程圖 mysystem.java 類運行的流程圖: mysystem +mysystem() + actionperformed(actionevent e):void 圖 2-8 程序界面系統的流程圖 2.2.2 界面 本類中出現程序的主界面,好程序退出時的界面,界面如下圖: 程序經上一步調用 程序顯示主界面 增加鍵是否按 下 刪除鍵是否按 下 修改鍵是否按 下 查詢鍵是否按 下 退出按鍵是否 按下 調用增加方法調用刪除方法調用修改方法調用查找方法 程序退出 是是是 是 是 圖 2-9 程

18、序的主界面 圖 2-10 程序的退出界面 2.2.3 代碼講解 import java.awt.*; import javax.swing.*; 由于本類是用于編寫程序的界面,所以本類中需要向程序中導入 java.awt 包和 javax.swing 包。用于程序編譯界面。swing 組件不能取代 awt 的全部類,只能替代 awt 的 gui 組建類。所以程序還需調用 java.awt 包。 public class mysystem extends jframe implements actionlistener 建立 mysystem 類并繼承 jframe 類,繼承可訪問的數據域和方法

19、。同時對 mysystem 類實現 actionlistener 接口。接口是一種與類相似的結構,只包含常量和抽象的方法。接 口在許多方面與抽象類相似,但是抽象類除了包含常量和抽象方法外,還可以包含變量 和具體方法。 在 java 中,接口被認為是特殊的類。就像通常的類一樣,每個接口編譯為獨立的字 節碼文件。與抽象類相似,不能使用 new 操作符創建接口的實例,但是大多數情況下, 使用接口或多或少有點像使用抽象類。 jbutton b1 = new jbutton(查詢); jbutton b2 = new jbutton(增加); jbutton b3 = new jbutton(刪除);

20、jbutton b4 = new jbutton(修改); jbutton b5 = new jbutton(退出); jbutton b11 = new jbutton(按姓名查詢); jbutton b12 = new jbutton(按號碼查詢); component 類是所有用戶界面類的父類,而 jcomponent 類是所有輕型 swing 組件的 父類。由于 jcomponent 是一個抽象類,所以,不能用 new jcomponent()創建 jcomponent 的實例,但是,可以使用 jcomponent 具體子類的構造方法來創建 jcomponent 的實例。 所以可以直接

21、使用 jbutton jbutton = new jbutton();來直接創建按鍵。本部分為程序創建 了 7 個按鍵。 container con = getcontentpane(); container 用來組織組件。框架 frame、面板 panel 和 applet 都是容器的例子。每個 jframe 都包含一個內容窗口。每個內容窗格都是 java.awt.container 的一個實例。可以向 con 中添加按鍵、圖像。 imageicon aicon = new imageicon(通信錄.jpg); imageicon icon=new imageicon(“”); 語句創建一

22、個圖像圖標。 mysystem() 這個類中顯示程序主界面的方法。界面的編寫在這個程序中實現。 super(個人通信錄管理程序); 設置窗口的題目。 setsize(390, 460); 設置窗口的大小。 con.setlayout(new borderlayout(); 設置容器的布局管理器。borderlayout 管理器將窗口分成五個區域:東區、南區、西 區、北區和中央。 p1.setbackground(color.red); p3.setbackground(color.blue); 設置區域 p1、p2 的顏色。 p1.add(new jlabel(); p3.add(b2); p

23、3.add(b4); p3.add(b3); p3.add(b1); p3.add(b5); 向 p1 中添加標題,p3 中添加各個按鍵。 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.getdefaulttoolkit().getscreensize(); int

24、centerx = screensize.width/2; int centery = screensize.height/2; setlocation(centerx-halfwidth,centery-halfheight); setvisible(true); 本段代碼是確定程序窗口的位置,舉例說明: 1、有一個 200*200 像素的窗口,想要把它放在 800*600 像素的屏幕中間,屏幕的位 置應是(800/2,600/2)=(400,300) 2、為了設置該窗口左上角的位置,以使窗口中心與屏幕中心相吻合,必須符合 2 個 小條件(1)窗口的一半或 100 像素必須落在屏幕的中心的左

25、邊(2)窗口的一半或 100 像素必 須落在屏幕的中心的上方,因此窗口左上角的位置必須定位于(400-100,300-100) =(300,200) 。 但在實際程序運行的過程中,程序的運行環境顯示屏幕的實際尺寸和像素清晰度是 不盡相同的,我們必須能動態的判斷運行 java 程序的計算機屏幕的大小,以使程序不管 運行在什么計算機上都能居中,java 的 awt 提供了一個 toolkit 類,以使我們做出判 斷! 具體應用: 1、在 toolkit 類上調用一個靜態方法 getdefaulttoolkit(),以便為這個平臺在 awt 的 toolkit 對象上獲得一個句柄。 2、然后調用 t

26、oolkit 對象的 getscreensize()方法,該方法返回一個 dimension(中文意 為尺寸)類對象。demension 對象正好有兩個 public int 屬性,即 width(以像素為單位),和 heigth(以像素為單位) 3、把這種方法調用“系”在一起,因為我們不想長時間的保持 toolkit 對象。我們只 想暫時用它來恢復屏幕的 dimension 對象:代碼: dimension screensize=toolkit.getdefaulttoolkit().getscreensize(); 因此不必向引用變量分配 toolkit 對象的句柄。 addwindowl

27、istener(new windowadapter() public void windowclosing(windowevent e) setvisible(false); system.exit(0); ); 對窗口添加監聽,當窗口被關閉時系統退出 b1.addactionlistener(this); b2.addactionlistener(this); b3.addactionlistener(this); b4.addactionlistener(this); b5.addactionlistener(this); b11.addactionlistener(this); b12.

28、addactionlistener(this); 為各個按鍵添加監聽,為按鍵后續實現功能做下鋪墊。 public void actionperformed(actionevent e) 創建監聽方法實現各個按鍵的監聽。 if (b1 = e.getsource() final jframe newf = new jframe(查詢方式); newf.setsize(200, 150); newf.setvisible(true); jbutton b13 = new jbutton(關閉); newf.setlayout(new gridlayout(3, 1, 5, 5); newf.add

29、(b11); newf.add(b12); newf.add(b13); b13.addmouselistener(new mouseadapter() public void mouseclicked(mouseevent ee) newf.setvisible(false); ); 當按鍵查詢被按下時,顯示窗體讓用戶選擇查詢的方式。并對關閉按鍵添加鼠標 監聽,當鼠標按下關閉按鍵時查詢窗體退出。 if (b11 = e.getsource() userservice.cx(); 當按下按姓名查詢時,調用 userservice 類中的 cx()方法。實現按姓名查詢。 if (b12 = e.

30、getsource() userservice.cx1(); 當按下按手機號查詢時,調用 userservice 類中的 cx1()方法。實現按手機號查詢。 if (b2 = e.getsource() ) userservice.add(); 當按下增加鍵時,調用 userservice 類的 add()方法,增加功能。 if (b3 = e.getsource() userservice.delete(); 當按下刪除鍵時,調用 userservice 類的 delete()方法,刪除功能。 if (b4 = e.getsource() userservice.xg(); 當按下修改時,調

31、用 userservice 類的 xg()方法,實現修改功能。 if (b5 = e.getsource()joptionpane.showmessagedialog(null,本通訊錄由劉旭輝,翟瑞東, 張淵喆共同制作.n 謝謝使用,再見!); system.exit(0); 當按下退出時,提示退出,退出系統。 2.3 聯系人信息模塊 聯系人的信息板塊主要是 user.java 類,該類主要是聯系人的相關數據。該類中建 立聯系人對象包含了聯系人的各項信息,聯系人姓名、聯系人手機號、聯系人 qq 等。同 時類中還包含了很多的方法,來得到相關的信息。 user 類 uml 類圖: 圖 2-11

32、user 類 uml 圖 2.3.1 代碼講解 public class user 為程序創建 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 ema

33、il, string phone, string category, string address, 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

34、):void +getaddress():string +setaddress(string address):void string 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 類中的不含參構造方法和含參構造方法。當從一個類繼承時,子類和父類都有 一個同名方法,也就是子

35、類覆蓋了父類的方法,可是又想調用父類的方法,那么就要用 super。 其他下面的代碼是為了實現對信息的讀寫。在此不做詳細的介紹。 2.4 程序的功能模塊 程序的主要功能是在這個 userservice.java 類實現的,該類是程序實現功能的主要 類。該類中包括 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

36、file)方法。分別實現程序的添加功能、刪除功能、修改功 能、查詢功能。 userservice 類的 uml 類圖: userservice +add():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 use

37、rservice.java 類 uml 圖 2.4.1 流程圖 增加方法的流程圖: 按下增加鍵 顯示增加窗口 讀取聯系人在文件 中的個數,確定聯 系人的添加位置 判斷用戶是否輸入 聯系人姓名 判斷聯系人是否輸 入聯系人的手機號 從輸入框中獲得用 戶輸入的信息 以字符串的形式儲 存到文件中 儲存關閉文件 結束 提示用戶沒有輸入 姓名 提示用戶沒有輸入 手機號 否 否 是 是 是 圖 2-13 增加方法流程圖 查詢功能的流程圖如下: 圖 2-14 程序查詢的流程圖 按下查詢鍵 顯示查詢窗口 是否按下按姓 名查詢鍵 是否按下按手 機號查詢鍵 是否按下關閉 鍵 彈出按姓名查 詢窗口 彈出按手機號 查詢

38、窗口 是否有要查詢 的姓名 是否有要查詢 的手機號 顯示聯系人顯示聯系人提示無此人提示無此人 結束 是 是 是 是 是否否 2.4.2 界面 本類中出現的界面: 圖 2-15 添加聯系人界面 圖 2-16 添加成功界面 圖 2-17 查詢界面 圖 2-18 修改聯系人界面 圖 2-19 刪除聯系人成功界面 2.4.3 代碼講解 這個類中需要導入很多的類,原理和前三個的一樣在這里不做過多的解釋。 本類中首先實現的是添加方法 add()。程序中先建立添加的窗口。 bb1.addmouselistener(new mouseadapter() public void mouseclicked(mou

39、seevent ee) user u = new user(); u.setname(jtf1.gettext(); u.setphone(jtf2.gettext(); u.settel(jtf3.gettext(); u.setqq(jtf4.gettext(); u.setemail(jtf5.gettext(); u.setaddress(jtf6.gettext(); file file = new file(txl.txt); try add1(file, u); catch (filenotfoundexception e1) e1.printstacktrace(); ); 為

40、確定按鍵,設置監聽,并設置動作。從輸入對話框中得到信息。并執行 add1()方 法,實現對聯系人的添加。 bb2.addmouselistener(new mouseadapter() public void mouseclicked(mouseevent ee) newf.setvisible(false); ); 為關閉按鍵添加監聽。當關閉按鍵按下時,窗口關閉。 接下來該類實現 add1()方法,這個方法主要是讀取文件中聯系人的數目,并在相應 的位置添加鍵入的聯系人。 while (input.hasnext() useri = new user(); = input

41、.next(); useri.phone = input.next(); useri.tel = input.next(); useri.qq = input.next(); useri.email = input.next(); useri.address = input.next(); i+; 上述代碼的主要作用是讀出文件中已有聯系人的數目,并由 i 記錄聯系人總數目。 string m = u.getname(); if (m = null | m.equals() break; 如果輸入的聯系人姓名為空,程序將退出。 for (j = 0; j i; j+) if (userj.nam

42、e.equals(m) joptionpane.showmessagedialog(null, 此人已存在!); return; 本段代碼逐個檢測系統儲存的通信錄中是否存在同名的聯系人。 string h = u.getphone(); if (h = null | h.equals() break; 如果輸入的聯系人的手機號為空,程序將退出。 for (j = 0; j i; j+) if (userj.phone.equals(h) joptionpane.showmessagedialog(null, 此手機號已存在!); return; 本段代碼逐個檢測系統儲存的通信錄中是否存在同手機

43、號的聯系人。 useri = new user(); = m; useri.phone = h; useri.qq = z; useri.tel = t; useri.email = r; useri.address = g; i+; joptionpane.showmessagedialog(null, 添加成功!n 已有聯系人數目為 +i+n 新新增聯系人的信息為:+ n 姓名: + m + n 手機號: + h + nqq: + z + n 固定電話:+ t + nemail: + r + n 地址: + g + ); 檢查出聯系人中沒有與索要添加聯系人信息相同的。

44、則聯系人的信息分別從窗口中 得到。并對 i 進行加 1,為在文件最后一個聯系人后面添加上新加入的聯系人的信息。 printwriter output = new printwriter(file); for (int k = 0; k i; k+) string a = + + userk.tel + + userk.email + + userk.phone + + userk.address + + userk.qq + rn; output.print(a); 創建寫入方法并向文件的正確位置添加新增聯系人。到此增加方法結束。 下面為本系統查詢方法的講解。 查詢方法還

45、是需要先檢驗文件中已有聯系人的數目。 while (input.hasnext() useri = new user(); = input.next(); useri.phone = input.next(); useri.email = input.next(); useri.tel = input.next(); useri.address = input.next(); useri.qq = input.next(); i+; i 記錄聯系人的總數目。 for (j = 0; j i; j+) if (.equals(t11) break; if

46、 (j = i - 1) joptionpane.showmessagedialog(null, 通信錄中沒有此人, 按確定退出!); return; 在文件中查找是否有與輸入聯系人姓名相同的聯系人。如果有記下位置 j。 joptionpane.showmessagedialog(null, 查到聯系人!n 您要查詢聯系人的當前信息如下: + n 姓名: + + n 電話: + userj.phone + n 固定電話: + userj.tel + nqq: + userj.qq + nemail: + userj.email + n 地址: + userj.addres

47、s); 程序顯示查找到的聯系人。 對手機號的查找跟對姓名的查找都是一樣的在這里不做解釋。 其余兩個功能由本組的其他倆名成員完成,在他們的報告中會有詳細的講解。 第 3 章 結束語 本次的課題已經較好的完成,只有部分功能沒有實現。還得通過以后的繼續學習來 慢慢的完善。整個程序的效果還是很好的簡單使用,沒有錯誤。可以幫助用戶建立完善 的通信錄。程序中還有很多的不足,比如程序沒有模糊查詢的功能,只有用戶輸入與文 本中出入的相同的信息,系統才會檢索出來該聯系人。程序中還沒有列出所有聯系人的 信息,這不方便用戶的各項操作。程序的添加功能也存在一定的不足,qq 必須添加,如 果不添加程序就會出錯。文件被打

48、包后,程序的圖片無法顯示。當程序中沒有聯系人信 息時,刪除、修改、查詢,雖然可以出東西但是程序出錯。這些問題在后續的學習中我 相信我一定會得到解決的方法。 三周的課題實踐使我知道了自學能力的重要性。老師是不會把所有的知識都交給你 的,老師也交不完。自學有的時候比老師講的要記憶的更加的深刻。通過自己的學習我 學會了簡單界面的制作,為本程序制作了簡潔的界面。使程序不在是去年編的那樣出來 一個黑框框,所有的操作都在那里實現,而是有了自己的窗口。 在制作程序的各項功能的時候也遇到了很多的問題。雖然有很多問題老師已經講過, 但是經過一個暑假,大部分知識都已經忘記了。所以我以后要多多的復習以前學習的知 識

49、,不能學著新的知識,忘了以前學的知識。在寫程序階段我參考了很多書本上的程序, 還有老師在課上寫的程序。其實我們的課題并不是很難,只要我們好好的學習 java 根據 課本,借助網絡其實我們會很容易的做出來。 例如編寫程序時,開始的時候我們記錄聯系人得文檔都是存儲在系統的 e 盤,系統 所需要的圖片也是儲存在 e 盤。也就是說如果系統中沒有 e 盤我們的程序就沒有辦法使 用,經過我就課本的深入研究我從課本的 331 頁找到了答案,12.10 圖像圖標 以下的語 句使用當前類路徑下的 image 目錄的圖像文件 us.gif 來創建一個圖標: imageicon icon = new imageic

50、on(“imageus.gif”);根據這個依據我也更改了文檔的目錄。 在程序中我們會遇到很多不熟悉的用語,我們借助網絡懂得了這些方法的作用。并 能 把他熟練的運用到本程序中。 網絡和圖書能讓我們知道新的技術。學到課本上沒有的東西。學到更簡單的方法。 其實學習本來就是自己的事情,別人逼著學是不會真正的學進去的。養成自學的習慣是 很有助與以后 3 年的學習的。 程序中的不足希望,我會通過大二的學習,使程序中的問題得到解決,爭取做出一 個完善、健全、強大的程序。 通過課題的編寫以及對相對資料的查詢,我重新認識了 java。 java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人

51、 pc、 數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開 發者專業社群。 java 是一個純的面向對象的程序設計語言,它繼承了 c+ 語言面向對象技術的核心, java 舍棄了 c +語言中容易引起錯誤的指針(以引用取代) 、運算符重載(operator overloading) 、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被 引用的對象所占據的內存空間,使得程序員不用再為內存管理而擔憂。 java 不同于一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編 譯成二進制字節碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執

52、行字節碼,從 而實現了“一次編譯、到處執行”的跨平臺特性。不過,每次的編譯執行需要消耗一定的時 間,這同時也在一定程度上降低了 java 程序的運行效率。 編寫程序的過程我也發現了自己的很多毛病,我發現自己做不下來看著長長的代碼, 對著長長的代碼頭都疼。在檢查程序錯誤時也沒有足夠的耐心。我要在以后的學習生活 中改掉這些壞毛病,使自己具有一個程序員的良好品質。 參考文獻: 01(美)梁(liang,y.d.). java 語言程序設計基礎篇(原書第 6 版)m:機械工業出版社 2008.6 02 凱德納黑德, 勒邁, 陳武. 21 天學通 java 2:專業參考版.m 人民郵電出版社 2004.

53、01 03 洪維恩 何嘉. java 2 面向對象程序設計.m 中國鐵道出版社 2005.01 04 張靚 顧慧敏. java 案例開發.m 中國水利水電出版社.2005.01 指導教師評語 成績: 指導教師簽名: 年 月 日 附錄 a: 附加圖、表 mysystem 類 uml 類圖: 附表 1 mysystem.java 類 uml 圖 user 類 uml 類圖: 附表 2 user 類 uml 圖 userservice 類的 uml 類圖: mysystem +mysystem() + actionperformed(actionevent e):void user +name; s

54、tring +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():string +setname(string name):v

55、oid +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: 主要源程序 系統的主程序: public class usersystem public static void main(string

56、 args) throws filenotfoundexception java.io.file file = new java.io.file(txl.txt);/ 檢查文件是否存在 if (file.exists() string s = joptionpane.showinputdialog(null, 已有人使用本通信錄。n 新建通信錄請按任意數字鍵n + 繼續使用請按數字 鍵 1); if (s.equals(1) new mysystem(); else joptionpane.showmessagedialog(null, 以為你創建好文件。源文件已刪除! ); new java

57、.io.printwriter(file);/ 為用戶創建文件 new mysystem();/ 調用窗口類,實現系統的顯示 else joptionpane.showmessagedialog(null, 這是新的通信錄,以為你創建好文件。); 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 +xg

58、11(file file, user u):void +cx();void +search1(file file):void +cx1():void +search12(file file):void 系統的功能函數: public class userservice / 本類是實現系統各項功能的類。 public static void add() / 實現增加功能 final jframe newf = new jframe(添加聯系人);/ 創建增加用戶界面 newf.setsize(300, 400); newf.setvisible(true); newf.setlayout(new

59、 gridlayout(7, 2, 5, 5); jlabel jb1 = new jlabel(聯系人姓名: ); final jtextfield jtf1 = new jtextfield(15); panel pp1 = new panel(); pp1.add(jb1); pp1.add(jtf1); newf.add(pp1); jlabel jb2 = new jlabel(聯系人手機號: ); final jtextfield jtf2 = new jtextfield(15); panel pp2 = new panel(); pp2.add(jb2); pp2.add(jt

60、f2); newf.add(pp2); jlabel 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(聯系人 qq : ); final jtextfield jtf4 = new jtextfield(15); panel pp4 = new panel(); pp4.add(jb4); pp4.add(jtf4

溫馨提示

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

評論

0/150

提交評論