JAVA畢業(yè)論文31884_第1頁
JAVA畢業(yè)論文31884_第2頁
JAVA畢業(yè)論文31884_第3頁
JAVA畢業(yè)論文31884_第4頁
JAVA畢業(yè)論文31884_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、商丘工學院畢業(yè)論文(設計)題目:局域網(wǎng)聊天軟件系 院:學生姓名:學 號: 專 業(yè):軟件技術 指導教師: 2013年4月摘 要在網(wǎng)絡越來越發(fā)達的今天,人們對網(wǎng)絡的依賴越來越多,越來越離不開網(wǎng)絡,由此而產(chǎn)生的聊天工具越來越多,例如,國外的ICQ、國內騰訊公司開發(fā)的OICQ。基于Java網(wǎng)絡編程的強大功能,本次畢業(yè)設計使用Java編寫一個聊天系統(tǒng)。 一般來說,聊天工具大多數(shù)由客戶端程序和服務器程序外加服務器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,本系統(tǒng)采用客戶機/服務器架構模式通過Java提供的Socket類來連接客戶機和服務器并使客戶機和服務器之間相互通信,由于聊天是多點對多點的而Java提供的多線程功能

2、用多線程可完成多點對多點的聊天,數(shù)據(jù)庫管理系統(tǒng)用SQL Server2000完成并通過JDBC-ODBC橋訪問數(shù)據(jù)庫。本系統(tǒng)建立在JAVA平臺上,系統(tǒng)的設計使用了面向對象技術和面向對象的設計原則。系統(tǒng)采用C/S結構,客戶端與客戶端以及客戶端與服務器端之間通過Socket傳送消息。使用JAVA語言編寫,開發(fā)工具采用Eclipse。服務器端設計與實現(xiàn)過程中,采用了多線程技術,可以在單個程序當中同時運行多個不同的線程,執(zhí)行不同的任務。大大增強了程序對服務器資源的利用。聊天系統(tǒng)完成后將可進行多人對多人的聊天,對好友進行添加、刪除,對新用戶的注冊,發(fā)送消息、接受消息等等功能。關鍵字:多線程 ;客戶機/服

3、務器 ;JAVA ; Socket ; Eclipse ; 目 錄第一章 需求分析11.1可行性分析11.1.1 可行性分析1系統(tǒng)功能需求11.1.3 系統(tǒng)性能需求21.1.4 系統(tǒng)運行需求21.2 數(shù)據(jù)流圖21.2.1 頂層數(shù)據(jù)流圖21.2.2 一層數(shù)據(jù)流圖3第二章 概要設計42.1系統(tǒng)實現(xiàn)原理42.2 系統(tǒng)實現(xiàn)層次圖:52.3各模塊詳細功能5服務器端結構52.3.2 客戶端結構6第三章 詳細設計73.1 系統(tǒng)流程圖73.1.1 系統(tǒng)總體流程圖73.1.2 系統(tǒng)客戶端流程圖83.2 編寫服務器端程序83.2.1 問題陳述83.2.2 解決方案93.3客戶端程序編寫133.3.1 用戶登錄13

4、收集用戶登錄信息133.3.3 聊天室14結 論20參考文獻21致謝22第一章 需求分析1.1可行性分析1.1.1 可行性分析經(jīng)濟可行性:由于本系統(tǒng)的主要背景是畢業(yè)課程設計,不注重直接的經(jīng)濟效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟要求也不高,只要有一臺能運行Java軟件的電腦便可,所以不用考慮到經(jīng)濟問題。技術可行性: 本系統(tǒng)的開發(fā)利用Microsoft SQL Server2000作為本系統(tǒng)的數(shù)據(jù)庫,它是一個支持多用戶的新型數(shù)據(jù)庫,適用于大中規(guī)模的數(shù)據(jù)量需求。學校校園網(wǎng)的建設也為新系統(tǒng)服務器/客戶端的結構提供了硬件的支持。使用Java作為系統(tǒng)開發(fā)的開發(fā)環(huán)境,它提供完善的

5、指令控制語句、類與對象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能系統(tǒng)提供的保障為開發(fā)滿足客戶要求的系統(tǒng),保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對新系統(tǒng)的擴展與修改。運行可行性: 本系統(tǒng)為一個小型的局域網(wǎng)聊天系統(tǒng),所耗費的資源非常的小,現(xiàn)在一般的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運行上是可行的。綜上所述,本系統(tǒng)的設計與開發(fā)在技術上和硬件設備上的條件都是滿足的因此,它在技術上是可行的。1.1.2系統(tǒng)功能需求本系統(tǒng)主要通過客戶端,服務器端來體現(xiàn)聊天系統(tǒng)的基本功能。(1)服務器端1.處理用戶注冊2.處理用戶登錄3.處理用戶發(fā)送信息,服務器監(jiān)控聊天內容,服務器過濾非法內容

6、4.處理用戶得到信息5.處理用戶退出8. 服務器踢人。9. 保存服務器日志。 10.保存用戶聊天信息。(2)客戶端 1.用戶注冊界面及結果2.用戶登錄界面及結果3.用戶發(fā)送信息界面及結果4.用戶得到信息界面及結果5.用戶退出界面及結果1.1.3 系統(tǒng)性能需求實用性:為局域網(wǎng)聊天提供方便,有效進行作業(yè)管理。操作簡單:本系統(tǒng)應該適用于不同水平的使用者,包括事業(yè)單位和企業(yè)單位,同時系統(tǒng)不應太復雜和煩瑣,因此要求系統(tǒng)的操作盡可能簡單易行。技術先進:產(chǎn)品的系統(tǒng)設計和開發(fā)應緊跟著整個計算機發(fā)展潮流,采用當時最先進的設計思想,利用最新的開發(fā)技術和開發(fā)工具。使系統(tǒng)能夠無論在功能設計上,還是在技術實現(xiàn)上,都處于

7、同行業(yè)的領先地位。安裝使用簡便:服務器端的安裝簡潔明了,客戶機無需再裝任何軟件就可以直接注冊登陸聊天。適應性:應該能廣泛應用于不同類型的企事業(yè)單位。系統(tǒng)采用模塊化設計,用戶可以根據(jù)自己的實際情況自行組合,使系統(tǒng)在不同的硬件環(huán)境下都能得以應用。 代碼可讀性好:文中的代碼將盡可能簡潔,易懂。1.1.4 系統(tǒng)運行需求 運行環(huán)境:Windows 9x、2000、xp、2003,Linux必要環(huán)境:JDK 1.5 以上硬件環(huán)境:CPU 400MHz以上,內存64MB以上1.2 數(shù)據(jù)流圖1.2.1 頂層數(shù)據(jù)流圖圖2-1 頂層數(shù)據(jù)流圖1.2.2 一層數(shù)據(jù)流圖. 圖2-2 一層數(shù)據(jù)流圖1.2.3 二層數(shù)據(jù)流圖

8、圖2-3 系統(tǒng)二層數(shù)據(jù)流圖第二章 概要設計2.1系統(tǒng)實現(xiàn)原理聊天系統(tǒng)的設計跟普通網(wǎng)站設計有著許多不同的地方,普通網(wǎng)站設計所考慮的因素,例如,普通網(wǎng)站需要對布局進入大量美化以及動畫設計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。因此,在設計聊天系統(tǒng)的過程中,必須要考慮好以下幾個設計要點:在Internet上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務器端和客戶端兩部分程序。圖3-1 系統(tǒng)實現(xiàn)原理圖2.2 系統(tǒng)實現(xiàn)層次圖:圖3-2 系統(tǒng)實現(xiàn)層次圖2

9、.3各模塊詳細功能2.3.1服務器端結構圖3-3 服務器端結構圖ServeFrame.java 為服務器端程序界面,負責為服務器的啟動提供界面服務。AppServer.java 為服務器端啟動界面,負責監(jiān)聽服務器的狀態(tài),在線人數(shù),最多在線人數(shù),服務器名稱,訪問協(xié)議,服務器IP,服務器端口以及用戶信息的管理,日志的保存。Connection.java 是連接服務器和客戶端的橋梁,主要負責將客戶端的信息傳送給服務器,并將服務器端的信息反饋給客戶端,即所謂的“三次握手”。也是Socket編程的重要部分。WordFilter.java 負責將聊天過程中不合法的話語文件等過濾掉,返回合法內容。2.3.2

10、 客戶端結構圖3-4 客戶端結構圖ChatClient.java 為客戶端程序啟動類,負責客戶端的啟動和退出。Login.java 為客戶端程序登錄界面,負責用戶帳號信息的驗證與反饋。Register.java 為客戶端程序注冊界面,負責用戶帳號信息的注冊驗證與反饋。ChatRoom.java 為客戶端程序聊天室主界面,負責接收、發(fā)送聊天內容與服務器端的Connection.java 親密合作。Windowclose 為ChatRoom.java的內部類,負責監(jiān)聽聊天室界面的操作,當用戶退出時返回給服務器信息。Clock.java 為客戶端程序的一個小程序,實現(xiàn)的一個石英鐘功能。第三章 詳細設

11、計3.1 系統(tǒng)流程圖3.1.1 系統(tǒng)總體流程圖圖4-1 系統(tǒng)總體流程圖3.1.2 系統(tǒng)客戶端流程圖圖4-2 客戶端流程圖3.2 編寫服務器端程序3.2.1 問題陳述 1. 接受用戶注冊信息并保存在一個基于文件的對象型數(shù)據(jù)庫。 2. 能夠允許注冊過的用戶登錄聊天界面并可以聊天。 能夠接受私聊信息并發(fā)送給特定的用戶。 4. 服務器運行在自定義的端口上1001. 5. 服務器監(jiān)控用戶列表和用戶聊天信息(除私聊外)。 6. 服務器踢人,發(fā)送通知。 7. 服務器保存日志。3.2.2 解決方案 3.2.2.1 后臺數(shù)據(jù)庫設計基于服務器跨平臺運行的構想,服務器的后臺數(shù)據(jù)庫使用了SQL Server2000。

12、(1)login 表:Login表(2)register表register表此表主要包含了用戶帳戶基本信息。聊天系統(tǒng)采用用戶名作為用戶帳號,并給每個用戶生成一個唯一ID來做系統(tǒng)內部的用戶標識。3.2.2用戶注冊1.去數(shù)據(jù)庫讀數(shù)據(jù) 首先創(chuàng)建一個File文件類,載入“user.txt”,再用對象輸入流ObjectInputStream將用戶信息導入到系統(tǒng)中。2.客戶端請求注冊 客戶端通過Register.java請求注冊,填寫注冊信息,并驗證密碼是否符合規(guī)定,是否兩次輸入一致,如不一致會提示重新輸入,最后將請求信息發(fā)送給服務器端。int flag = 0; / 是否重名判斷標志Register_C

13、ustomer clientMessage = (Register_Customer) obj;File fList = new File("user.txt");if (fList.length() != 0)/ 判斷是否是第一個注冊用戶ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(fList);vList = (Vector) objInput.readObject();/ 判斷是否有重名for (int i = 0; i < vList.size(); i+) Reg

14、ister_Customer reg = (Register_Customer) vList.elementAt(i);if (reg.custName.equals(clientMessage.custName) toClient.println("注冊名重復,請另外選擇");flag = 1;break; else if (reg.custName.equals("所有人") toClient.println("禁止使用此注冊名,請另外選擇");flag = 1;break;3.服務器端響應 服務器端得到注冊請求會將對象輸入流轉化

15、為文件輸出流,并反饋給客戶端??蛻舳说玫阶孕畔⒑髸谇芭_填寫注冊信息,然后創(chuàng)建文件輸出流,再用對象輸出流包裝后寫入本地文件將其持久化。最后關閉對象輸出流和文件輸入流。/ 將向量中的類寫回文件FileOutputStream file = new FileOutputStream(fList);ObjectOutputStream objout = new ObjectOutputStream(file);objout.writeObject(vList);4.給客戶端返回信息 將用戶注冊成功或失敗的信息用打印流包裝Socket以后,輸出給客戶端注冊結果的詳細信息。/ 發(fā)送注冊成功信息toCl

16、ient.println(clientMessage.custName + "注冊成功");Date t = new Date();log("用戶" + clientMessage.custName + "注冊成功, " + "注冊時間:"+ t.toLocaleString() + "n");5.關閉Socket連接 當以上的程序都正常運行后,需要關閉Socket連接,否則將會浪費服務器與客戶端之間的資源。3.2.2.3用戶登陸1.去數(shù)據(jù)庫讀用戶數(shù)據(jù) 打開用戶數(shù)據(jù)庫文件“User.txt”,將

17、用戶數(shù)據(jù)對象集載入內存,以供下面的程序使用。/ 讀文件FileInputStream file3 = new FileInputStream("user.txt");ObjectInputStream objInput1 = new ObjectInputStream(file3);vList = (Vector) objInput1.readObject();2.驗證用戶名是否存在 在對象數(shù)據(jù)庫中查找是否有與登錄用戶的用戶名相同的記錄,如果有繼續(xù)驗證,否則退出驗證處理,返回“沒有此用戶”錯誤用戶登陸程序模塊如下:if (reg.custName.equals(client

18、Message2.custName) find = 1;if (!reg.custPassword.equals(clientMessage2.custPassword) toClient.println("密碼不正確");break; else / 判斷是否已經(jīng)登錄int login_flag = 0;for (int a = 0; a < userOnline.size(); a+) String _custName = (Customer) userOnline.elementAt(a).custName;if (clientMessage2.custName.

19、equals(_custName) login_flag = 1;break;if (userOnline.size() >= 50) toClient.println("登錄人數(shù)過多,請稍候再試");break;3.2.2.4用戶退出1.接收退出信息 當用戶退出時,客戶端將會用基于Socket的對象輸出流發(fā)送給服務器退出對象。2.在線列表中刪除用戶 用戶退出后應該把用戶從在線列表中刪除,否則用戶退出用戶還在在線列表中,那么該用戶下次將會無法登錄。3.更新在線列表 用戶退出后將服務器端監(jiān)控界面的用戶列表更新。否則用戶數(shù)據(jù)將會不同步。用戶退出模塊程序:public vo

20、id serverExit() Exit exit = new Exit();exit = (Exit) obj;removeUser(exit);/ chenminif (sFrame.ti.equals(exit.exitname) sFrame.ti = ""Date t = new Date();log("用戶" + exit.exitname + "已經(jīng)退出, " + "退出時間:" + t.toLocaleString();freshServerUserList();3.2.2.5 接收用戶聊天信息1.

21、接收用戶聊天信息 當用戶發(fā)送聊天信息時,服務端將會收到客戶端用Socket傳輸過來的聊天信息對象,然后將其強制轉換為Chat對象。2.過濾用戶聊天內容的非法信息 分析聊天信息對象的聊天內容,用語言過濾類將非法字符過濾掉。語言過濾的時候將會打開“badword.txt”文件,不允許出現(xiàn)的關鍵詞將會存儲在文件中,關鍵字之間以逗號分割。當聊天內容中出現(xiàn)要過渡的關鍵字是將會被系統(tǒng)屏蔽,而聊天內容3.接收服務器端的系統(tǒng)消息 當有其他用戶登陸時,系統(tǒng)會給在線的所有用戶發(fā)送用戶登陸信息,并且通過服務器可以給各用戶發(fā)送系統(tǒng)消息。系統(tǒng)消息發(fā)出后,如再有登錄者也可以接收到系統(tǒng)消息。4.返回給客戶端 當以上信息都封

22、裝成功后,打開與客戶端連接的Socket的輸出流,然后再用ObjectOutputStream對象輸出流包裝后輸出給客戶端。public void serverChat() / 將接收到的對象值賦給聊天信息的序列化對象Chat cObj = new Chat();cObj = (Chat) obj;/ chenmincObj.chatMessage = WordFilter.filter(cObj.chatMessage);chatLog(cObj);/ 將聊天信息的序列化對象填加到保存聊天信息的矢量中userChat.addElement(Chat) cObj);return;3.3客戶端程

23、序編寫程序將通過Register.java用戶注冊界面收集用戶的用戶名、密碼、年齡、電子郵箱。如圖4-7客戶端用戶注冊信息模塊程序: /連接到服務器 Socket toServer; toServer = new Socket(strServerIp,1001); ObjectOutputStream streamToServer=new ObjectOutputStream (toServer.getOutputStream(); /寫客戶詳細資料到服務器socket streamToServer.writeObject(Register_Customer)data); /讀來自服務器soc

24、ket的登陸狀態(tài) BufferedReader fromServer=new BufferedReader(new InputStreamReader(toServer.getInputStream(); String status=fromServer.readLine(); /顯示成功消息 JOptionPane op=new JOptionPane(); op.showMessageDialog(null,status); if(status.equals(data.custName+"注冊成功") txtUserName.setText("");

25、 pwdUserPassword.setText(""); pwdConfirmPass.setText(""); txtAge.setText(""); txtEmail.setText(""); 3.3.1 用戶登錄3.3.2收集用戶登錄信息程序將通過Login.java用戶登錄界面收集用戶的用戶名、密碼,如圖圖4-15 收集用戶登錄信息圖/ 接受客戶的詳細資料try / 連接到服務器Socket toServer;toServer = new Socket(strServerIp, 1001);ObjectO

26、utputStream streamToServer = new ObjectOutputStream(toServer.getOutputStream();/ 寫客戶詳細資料到服務器socketstreamToServer.writeObject(Customer) data);/ 讀來自服務器socket的登錄狀態(tài)BufferedReader fromServer = new BufferedReader(new InputStreamReader(toServer.getInputStream();String status = fromServer.readLine();if (sta

27、tus.equals("登錄成功") new ChatRoom(String) data.custName, strServerIp);this.dispose();/ 關閉流對象streamToServer.close();fromServer.close();toServer.close(); else JOptionPane.showMessageDialog(null, status);streamToServer.close();fromServer.close();toServer.close(); / login()結束3.3.3 聊天室 當用戶登錄成功后,用

28、戶的登錄界面將會隱藏,然后創(chuàng)建用戶聊天室窗口,在界面的標題欄將會顯示當前登錄用戶的用戶名,以防止一個機器上的用戶開多個賬號進入聊天室后分不清哪個窗口是哪個用戶登錄的,界面第一行將顯示當前在線人數(shù)。位于界面正中的兩個控件分別是List和TextBox用來顯示當前服務器上的在線會員名單列表和公共聊天信息。位于界面下方的就是一些用于聊天的功能控件和聊天內容個性化配置控件。包括聊天對象,聊天語氣,聊天內容,聊天字體,風格,大小,顏色.1 用戶發(fā)送信息用戶需要發(fā)送信息時,在聊天內容里寫下要發(fā)送的信息,然后點擊發(fā)送就可以發(fā)送到其他客戶端,也可以選擇私聊,聊天表情,聊天信息通過服務器發(fā)送到其他客戶端。如圖:

29、當多個用戶同時在線時可以對某個人私聊,而第三個人的聊天界面會被屏蔽掉。/ "發(fā)送"按鈕public void sendMessage() Chat chatobj = new Chat();chatobj.chatUser = strLoginName;chatobj.chatMessage = txtMessage.getText();chatobj.chatToUser = String.valueOf(cmbUser.getSelectedItem();chatobj.whisper = chPrivateChat.isSelected() ? true : fals

30、e;chatobj.emote = emote.getSelectedItem().toString();/ 向服務器發(fā)送信息try Socket toServer = new Socket(strServerIp, 1001);ObjectOutputStream outObj = new ObjectOutputStream(toServer.getOutputStream();outObj.writeObject(chatobj);txtMessage.setText(""); / 清空文本框outObj.close();toServer.close(); catch

31、 (Exception e) / sendMessage()結束3.3.3.3 保存聊天記錄 當用戶需要保存聊天記錄時可以直接點擊“保存”按鈕,為了防止多用戶聊天記錄文件沖突問題,聊天記錄將會以“用戶名_message.txt”為文件名,將信息保存在當前應用程序目錄下。如圖保持模塊程序:/ "保存"按鈕public void saveMessage() try FileOutputStream fileoutput = new FileOutputStream(this.strLoginName + "_message.txt", true);Strin

32、g temp = taUserMessage.getText();/ System.out.println(temp);fileoutput.write(temp.getBytes();fileoutput.close();JOptionPane.showMessageDialog(null, "聊天記錄保存在" + this.strLoginName+ "_message.txt"); catch (Exception e) System.out.println(e);.4 顯示系統(tǒng)時間當用戶需要查看當前時間時,可以直接點擊“時鐘”按鈕,將會啟動一個漂

33、亮的電子時鐘,時鐘模塊程序: public void actionPerformed(ActionEvent e) timer.restart(); public void paint( Graphics g ) Insets insets = getInsets(); int L0 = (insets.left)/2, T0 = (insets.top)/2; int hh,mm,ss; String st; h=getSize().height; /繪制圓形 /獲取時間 Calendar now=Calendar.getInstance(); hh=now.get(Calendar.HOU

34、R_OF_DAY);/小時 mm=now.get(Calendar.MINUTE);/分鐘 ss=now.get(Calendar.SECOND);/ 秒 g.setColor(Color.pink); g.fillRect(L0,T0,60,28);/填充的矩形 g.setColor(Color.blue); if (hh < 10) st="0"+hh; else st=""+hh; if (mm < 10) st=st+":0"+mm; else st=st+":"+mm; if (ss <

35、 10) st=st+":0"+ss; else st=st+":"+ss; g.drawString(st,L0,T0+25); /計算時間和圖形的關系 sdo=90-ss*6; mdo=90-mm*6; hdo=90-hh*30-mm/2; /擦除秒針 /繪制秒針 g.setColor(Color.yellow); x=(int)(r-8)*Math.cos(RAD*sdo)+x0); y=(int)(r-8)*Math.sin(RAD*sdo)+y0)-2*T0; g.drawLine(x0,y0,x,(h-y); old_X=x; old_Y=y

36、; /繪制分針 line(g,mdo,(int)(r*0.7),Color.green); /繪制時針 line(g,hdo,(int)(r*0.5),Color.red); / end paint 圖4-22 屏蔽聊天信息FileReader fileReader = new FileReader(files);BufferedReader read = new BufferedReader(fileReader);while (true) String line = read.readLine();if (line = null) break;fileString += (line);/

37、fileString += (line + "n");read.close();/ System.out.println(fileString); catch (FileNotFoundException e) / TODO 自動生成 catch 塊e.printStackTrace(); catch (IOException e) / TODO 自動生成 catch 塊e.printStackTrace();return fileString;3.3.6 退出聊天系統(tǒng)當前用戶點擊“退出”按鈕或者關閉窗口時,系統(tǒng)將會把用戶退出的信息打包成對象發(fā)送給服務器,并退出客戶端程序。

38、/ "退出"按鈕public void exit() Exit exit = new Exit();exit.exitname = strLoginName;/ 發(fā)送退出信息try Socket toServer = new Socket(strServerIp, 1001);/ 向服務器發(fā)送信息ObjectOutputStream outObj = new ObjectOutputStream(toServer.getOutputStream();outObj.writeObject(exit);outObj.close();toServer.close();frmCha

39、t.dispose();/ this.destroy(); catch (Exception e) private void exitChatRoom() exit();3.3.3.7出現(xiàn)異常信息在用戶聊天時,當服務器關閉或者與服務器無法連接時,客戶端將會給出“不能連接到服務器!”的信息。并在用戶查看后退出客戶端。結 論通過這次的畢業(yè)作業(yè),使自己在JAVA編程語言的使用方面得到一個全面鍛煉自己的機會,在這個模塊的界面開發(fā)方面,充分的學習和利用了JAVA Swing界面開發(fā)技術,使自己在界面應用和布局方面得到更多的實踐,應用Socket技術實現(xiàn)網(wǎng)絡連接功能,對網(wǎng)絡的實現(xiàn)和通信方面有了進一步的理解

40、,并通過多線程方面的應用,使客戶端和服務端可以實現(xiàn)多任務功能,在整個開發(fā)過程當中應用軟件工程的開發(fā)步驟,使自己專業(yè)理論知識的到進一步的鞏固,項目開發(fā)經(jīng)驗有不少的收獲。(一) 軟件存在的問題軟件已經(jīng)編寫好了,但是還有許多可以改進的地方;同時還存在著一些小問題。還有一些功能上的缺陷,這里我列舉一下,并提出一些解決的辦法,希望以后可以改進。 操作的方便性、比如可以為一些常用按鈕設置快捷鍵,象登入系統(tǒng)時,輸入完用戶名和密碼后直接回車;在用戶輸入完要發(fā)送的內容時,設置發(fā)送內容的快捷方式ctrl+回車等。(2)在功能方面可以進一步增加,如實現(xiàn)用戶間的文件傳輸,并可以進行視屏,共享音樂等高級功能。(3)執(zhí)行效率方面可以有待提高,優(yōu)化代碼結構,減少系統(tǒng)內存泄露,提高運行穩(wěn)定性等(二)使界面變得更加美觀由于一直專注于功能的實現(xiàn),從而忽略了界面的設計,本軟件今后可以為用戶添加不同的頭像,并可以使窗體風格更合理和更美觀,并且要使用戶有更多的自定義功能,設置自己的喜好和風格。通過完成這次畢業(yè)設計的項目,使自己在項目實際開發(fā)方面有了進一步的提高,并使自己感覺到成功的喜悅,并對自己在專業(yè)的未來發(fā)展更充滿信心,對自己在今后的工作中有更好的幫助。參考文獻1 孟凡榮數(shù)據(jù)庫原理與應用中國礦業(yè)大學,2009(8)28-302

溫馨提示

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

評論

0/150

提交評論