Java面向?qū)ο笳n程設(shè)計.doc_第1頁
Java面向?qū)ο笳n程設(shè)計.doc_第2頁
Java面向?qū)ο笳n程設(shè)計.doc_第3頁
Java面向?qū)ο笳n程設(shè)計.doc_第4頁
Java面向?qū)ο笳n程設(shè)計.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、淮 海 工 學(xué) 院 計算機(jī)工程學(xué)院課程設(shè)計報告設(shè)計名稱:計算機(jī)面向?qū)ο笤O(shè)計姓名:學(xué)號:專業(yè)班級:D 軟件 092系 (院):計算機(jī)工程學(xué)院設(shè)計時間:2011.6.13 2011.6.24設(shè)計地點(diǎn):東港機(jī)房 D2-308指導(dǎo)教師評語:成績:簽名:年月日計算機(jī)面向?qū)ο笳n程設(shè)計報告第2頁,共12頁1課程設(shè)計目的一、設(shè)計目的:Java課程設(shè)計是對所學(xué)面向?qū)ο笳n程的小結(jié),是提高學(xué)生對所學(xué)知識綜合應(yīng)用能力的一種方式,是集中實(shí)踐性環(huán)節(jié)之一。要求同學(xué)們對理論課中所學(xué)習(xí)到的知識綜合運(yùn)用,實(shí)現(xiàn)有一定規(guī)模的Java應(yīng)用。二、 設(shè)計要求:1、課程設(shè)計以小組為單位進(jìn)行,每小組的人數(shù)在3 人左右,每個小組中的每位同學(xué)要有

2、在課程設(shè)計中的明確分工,以便檢查。課程設(shè)計材料提交的以小組為單位,每人提交一份紙質(zhì)課程設(shè)計報告,每組提交一份課程設(shè)計的源代碼電子版,報告代碼的電子版壓縮后以班級 -組別 -設(shè)計名稱命名,提交到指導(dǎo)老師處。2、學(xué)生必須獨(dú)立完成設(shè)計任務(wù),嚴(yán)禁抄襲,一經(jīng)發(fā)現(xiàn),成績以不及格計。3、課程設(shè)計期間要嚴(yán)格遵守學(xué)校紀(jì)律,按時上機(jī),服務(wù)機(jī)房管理人員管理,不得無故曠課、遲到與早退,課程設(shè)計期間缺勤 1/3 以上者,成績以不及格記。三、成績評定:通過設(shè)計答辯等方式, 結(jié)合學(xué)生的動手能力、 獨(dú)立分析解決問題的能力和創(chuàng)新精神, 由指導(dǎo)教師根據(jù)考勤、設(shè)計說明書質(zhì)量、答辯表現(xiàn)以及學(xué)習(xí)態(tài)度等綜合評定設(shè)計成績。成績分優(yōu)、良、中

3、、及格和不及格五個級別。2課程設(shè)計任務(wù)與要求:選題:局域網(wǎng)聊天程序的設(shè)計與實(shí)現(xiàn)該程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的聊天功能,包括服務(wù)器端程序和客戶端程序兩部分??蛻舳顺绦颍?可連接到服務(wù)器, 并將消息發(fā)送到服務(wù)器端和接受服務(wù)器端發(fā)送來的信息。課程設(shè)計可選用 NetBeans、Eclipse 、JBuilder等作為開發(fā)平臺以提高開發(fā)效率,盡可能熟練掌握其中一種集成開發(fā)環(huán)境。通過這次設(shè)計,要求掌握以下內(nèi)容:1)面向?qū)ο蠹夹g(shù)中的繼承與多態(tài)(重載和覆蓋)機(jī)制、各種修飾符的使用2)類、包、接口的定義與使用3)一些常用工具類與算法的實(shí)現(xiàn)4) Java 的異常處理機(jī)制計算機(jī)面向?qū)ο笳n程設(shè)計報告第3頁,共12頁3課程設(shè)計說

4、明書一、需求分析該程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的聊天功能,包括服務(wù)器端程序和客戶端程序兩部分。功能分析:客戶端程序:可連接到服務(wù)器,并將消息發(fā)送到服務(wù)器端和接受服務(wù)器端發(fā)送來的信息。服務(wù)器端程序:可將消息發(fā)送到客戶端和接受客戶端發(fā)送來的信息二、概要設(shè)計本程序根據(jù)功能設(shè)置了兩個界面:服務(wù)器端和客戶端的聊天界面這兒主要介紹客戶端。模塊描述局域網(wǎng)聊天程序的設(shè)計與實(shí)現(xiàn)主要包括服務(wù)端和客戶端,服務(wù)端與客戶端之間通過套接口Socket(TCP)連接。其中默認(rèn) IP 地址為: 127.0.0.1客戶端模塊圖:聊天室客戶端用連發(fā)送退戶接/接收出登設(shè)聊 天錄置消息連接設(shè)置:用戶可以設(shè)置自己的服務(wù)器的IP 地址,默認(rèn)的連接地

5、址為:127.0.0.1;用戶登錄:只能在聊天室服務(wù)端已開啟的情況下,用戶才能登錄, 用戶登錄之后才能開始聊天,登錄后不能再修改用戶設(shè)置和連接設(shè)置;發(fā)送和接收聊天信息:客戶端可以給服務(wù)器端發(fā)送信息,并能收到服務(wù)器端發(fā)送過來的消息;退出:關(guān)閉所有聊天并退出客戶端。計算機(jī)面向?qū)ο笳n程設(shè)計報告第4頁,共12頁客戶端類圖:JFrameActionListenerChatClient-outFrame:JTextArea-userLinkList:UserLinkList-inputBox:JTextField-message=:string-chatServer:string+ ChatClient(

6、srvhost :String):public +init():public void +ConnectClient():public void +closeConnection():void +SendMsg(message:String): void三、詳細(xì)設(shè)計1.客戶端主要包括以下文件,它們的功能如下:(1)ChatClient.java:包含名為 ChatClient 的 public 類,其主要功能為定義客戶端的界面,添加事件偵聽與事件處理。該類定義了 ConnectServer()與 processConnection()方法實(shí)現(xiàn)與服務(wù)器的連接與斷開連接。當(dāng)?shù)卿浀街付ǖ姆?wù)器時,調(diào)

7、用 ClientReceive 類實(shí)現(xiàn)消息收發(fā),同時該類還定義了 SendMsg()方法來向服務(wù)器端發(fā)送消息。(2)ClientReceive.java:該類是實(shí)現(xiàn)服務(wù)器端與客戶端消息收發(fā)的類。2. 客戶端的程序創(chuàng)建了一個 Socket 對象,用來與服務(wù)器端建立連接通信。 inputstream 用來從Socket 的 inputstream 輸入流讀取文本行, outputstream 向 Socket 的 outputstream 輸出文本行??蛻舳藦臉?biāo)準(zhǔn)輸入中讀取數(shù)據(jù)并輸出,當(dāng)讀到信息“服務(wù)器端:終止”的時候關(guān)閉輸入輸出流3.In 和 out 是客戶端和服務(wù)器端通信的關(guān)鍵。把發(fā)送功能寫在

8、了發(fā)送按鈕的事件響應(yīng)代碼中;由于接收是要保持監(jiān)聽狀態(tài)的,所以把接收功能寫在了一個進(jìn)程中??旖萱I即鍵盤監(jiān)聽功能寫在輸入文本框中以實(shí)現(xiàn)輸入完信息后按enter 就能等于發(fā)送按鈕。計算機(jī)面向?qū)ο笳n程設(shè)計報告第5頁,共12頁四、用戶手冊服務(wù)器端:打開服務(wù)器端界面,在文件夾中是 ChatServer.java ,通過運(yùn)行文件會有顯示服務(wù)器已經(jīng)啟動接下來就等待客戶端連接反應(yīng)了, 只要有用戶請求連接, 則會有顯示新用戶接入, 客戶端的聊天記錄也會在服務(wù)器端顯示:某某: . 。最后關(guān)閉窗口,即可斷開服務(wù)器、 。客戶端:通過運(yùn)行文件 ChatClient.java,進(jìn)入客戶端窗口后就可以開始與服務(wù)器端相互聊天了

9、。注:圖形界面的 Application 程序 ,用以實(shí)現(xiàn)常見的聊天功能 ,僅考慮一對一的聊天 . 用 TextPad 作為系統(tǒng)開發(fā)環(huán)境 。五、測試成果1. 當(dāng)先運(yùn)行 ChatClient 程序時出現(xiàn)顯示連接的界面如圖一所示(沒有開啟服務(wù)器端)圖一計算機(jī)面向?qū)ο笳n程設(shè)計報告第6頁,共12頁2. 運(yùn)行 ChatServer 程序得到服務(wù)器端等待連接的界面圖二所示圖二3. 關(guān)閉 1 中的客戶端界面,重新運(yùn)行得到客戶端連接到: 127.0.0.1 (應(yīng)該先運(yùn)行服務(wù)器端),如圖三所示:圖三計算機(jī)面向?qū)ο笳n程設(shè)計報告第7頁,共12頁4. 客戶端發(fā)送信息,下圖四顯示的是客戶端發(fā)送信息后的結(jié)果:圖四5客戶端

10、發(fā)送消息,服務(wù)器端接收到信息如圖五所示:圖五計算機(jī)面向?qū)ο笳n程設(shè)計報告第8頁,共12頁6. 服務(wù)器端接收到客戶端信息后也可以向其傳輸信息如圖六所示:圖六7. 圖七所示為客戶端接收到服務(wù)器所發(fā)送的信息:圖七六附錄(源程序清單)計算機(jī)面向?qū)ο笳n程設(shè)計報告第9頁,共12頁我負(fù)責(zé)部分的主要代碼:連接服務(wù)器private void ConnectServer() throws IOExceptionoutFrame.setText( 連接中n );toclient = new Socket(InetAddress.getByName(chatServer),4000);連接信息顯示outFrame.ap

11、pend( 連接至 : +toclient.getInetAddress().getHostName() );private void processConnection() throws IOException/ 輸出框inputBox.setEnabled( true );do / 讀入信息并輸出 trymessage = ( String ) inputS.readObject(); outFrame.append( n + message ); outFrame.setCaretPosition( outFrame.getText().length() );計算機(jī)面向?qū)ο笳n程設(shè)計報告第

12、10頁,共12頁catch ( ClassNotFoundException classNotFoundException )outFrame.append( nUnknown object type received );while ( !message.equals( 服務(wù)器端 TERMINATE ) );/關(guān)閉輸入輸出流 ,關(guān)閉連接 ,注意順序private void closeConnection() throws IOExceptionoutFrame.append( n User terminated connection );outputStream.close();inputS

13、tream.close();toclient.close();/ 給服務(wù)器端發(fā)消息private void sendMsg( String message )tryoutputS.writeObject( 客戶端 + message ); outputS.flush();計算機(jī)面向?qū)ο笳n程設(shè)計報告第11頁,共12頁outFrame.append( n客戶端 + message );catch ( IOException ioException )outFrame.append( nError writing object );/main()方法public static void main(

14、String args )ChatClient beginning;if ( args.length = 0 )beginning = new ChatClient( 127.0.0.1 );elsebeginning = new ChatClient( args 0 );beginning.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );beginning.connectClient();計算機(jī)面向?qū)ο笳n程設(shè)計報告第12頁,共12頁4. 課程設(shè)計心得經(jīng)過這次 java 課程設(shè)計的親自實(shí)踐,我對自己的不足有了進(jìn)一步的發(fā)現(xiàn),在設(shè)計的過程中不時的會發(fā)

15、現(xiàn)不會的知識點(diǎn), 在查找書籍的過程中也是對自己知識的鞏固,能幫助自己回憶起老師講過的內(nèi)容,在加深印象的基礎(chǔ)上更好的通過實(shí)踐理解。我負(fù)責(zé)的客戶端程序中只是簡單的實(shí)行發(fā)送接收服務(wù)器端的信息。 在設(shè)計程序之前先要考慮的是這個程序想要實(shí)現(xiàn)什么功能 , 根據(jù)要求先畫出類圖, 理清思路,不要一開始就想著去編寫源代碼,因?yàn)樵诰帉懙倪^程中也許就會發(fā)現(xiàn)自己還有些遺漏點(diǎn)。 在畫好類圖后再根據(jù)類圖編輯源代碼。 在編寫過程中,最重要的是細(xì)心,并不是一定要做到面面俱到,但也要考慮到作業(yè)的需求和現(xiàn)實(shí)意義,只有運(yùn)用到實(shí)際應(yīng)用中,才具有現(xiàn)實(shí)意義。所以在準(zhǔn)備工作中要正確分析社會需求了解現(xiàn)實(shí)應(yīng)用,畫出流程圖,把大體框架做好,然后再逐一細(xì)化。我們一定要做到步步扎實(shí),要保持清醒的頭腦,讓自己的每一行代碼都能實(shí)現(xiàn)自己的意義 。雖然要

溫馨提示

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

評論

0/150

提交評論