




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淮 海 工 學(xué) 院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:計(jì)算機(jī)面向?qū)ο笤O(shè)計(jì)姓名:學(xué)號(hào):專業(yè)班級(jí):D 軟件 092系 (院):計(jì)算機(jī)工程學(xué)院設(shè)計(jì)時(shí)間:2011.6.13 2011.6.24設(shè)計(jì)地點(diǎn):東港機(jī)房 D2-308指導(dǎo)教師評(píng)語(yǔ):成績(jī):簽名:年月日計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第2頁(yè),共12頁(yè)1課程設(shè)計(jì)目的一、設(shè)計(jì)目的:Java課程設(shè)計(jì)是對(duì)所學(xué)面向?qū)ο笳n程的小結(jié),是提高學(xué)生對(duì)所學(xué)知識(shí)綜合應(yīng)用能力的一種方式,是集中實(shí)踐性環(huán)節(jié)之一。要求同學(xué)們對(duì)理論課中所學(xué)習(xí)到的知識(shí)綜合運(yùn)用,實(shí)現(xiàn)有一定規(guī)模的Java應(yīng)用。二、 設(shè)計(jì)要求:1、課程設(shè)計(jì)以小組為單位進(jìn)行,每小組的人數(shù)在3 人左右,每個(gè)小組中的每位同學(xué)要有
2、在課程設(shè)計(jì)中的明確分工,以便檢查。課程設(shè)計(jì)材料提交的以小組為單位,每人提交一份紙質(zhì)課程設(shè)計(jì)報(bào)告,每組提交一份課程設(shè)計(jì)的源代碼電子版,報(bào)告代碼的電子版壓縮后以班級(jí) -組別 -設(shè)計(jì)名稱命名,提交到指導(dǎo)老師處。2、學(xué)生必須獨(dú)立完成設(shè)計(jì)任務(wù),嚴(yán)禁抄襲,一經(jīng)發(fā)現(xiàn),成績(jī)以不及格計(jì)。3、課程設(shè)計(jì)期間要嚴(yán)格遵守學(xué)校紀(jì)律,按時(shí)上機(jī),服務(wù)機(jī)房管理人員管理,不得無(wú)故曠課、遲到與早退,課程設(shè)計(jì)期間缺勤 1/3 以上者,成績(jī)以不及格記。三、成績(jī)?cè)u(píng)定:通過(guò)設(shè)計(jì)答辯等方式, 結(jié)合學(xué)生的動(dòng)手能力、 獨(dú)立分析解決問(wèn)題的能力和創(chuàng)新精神, 由指導(dǎo)教師根據(jù)考勤、設(shè)計(jì)說(shuō)明書質(zhì)量、答辯表現(xiàn)以及學(xué)習(xí)態(tài)度等綜合評(píng)定設(shè)計(jì)成績(jī)。成績(jī)分優(yōu)、良、中
3、、及格和不及格五個(gè)級(jí)別。2課程設(shè)計(jì)任務(wù)與要求:選題:局域網(wǎng)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)該程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的聊天功能,包括服務(wù)器端程序和客戶端程序兩部分??蛻舳顺绦颍?可連接到服務(wù)器, 并將消息發(fā)送到服務(wù)器端和接受服務(wù)器端發(fā)送來(lái)的信息。課程設(shè)計(jì)可選用 NetBeans、Eclipse 、JBuilder等作為開(kāi)發(fā)平臺(tái)以提高開(kāi)發(fā)效率,盡可能熟練掌握其中一種集成開(kāi)發(fā)環(huán)境。通過(guò)這次設(shè)計(jì),要求掌握以下內(nèi)容:1)面向?qū)ο蠹夹g(shù)中的繼承與多態(tài)(重載和覆蓋)機(jī)制、各種修飾符的使用2)類、包、接口的定義與使用3)一些常用工具類與算法的實(shí)現(xiàn)4) Java 的異常處理機(jī)制計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第3頁(yè),共12頁(yè)3課程設(shè)計(jì)說(shuō)
4、明書一、需求分析該程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的聊天功能,包括服務(wù)器端程序和客戶端程序兩部分。功能分析:客戶端程序:可連接到服務(wù)器,并將消息發(fā)送到服務(wù)器端和接受服務(wù)器端發(fā)送來(lái)的信息。服務(wù)器端程序:可將消息發(fā)送到客戶端和接受客戶端發(fā)送來(lái)的信息二、概要設(shè)計(jì)本程序根據(jù)功能設(shè)置了兩個(gè)界面:服務(wù)器端和客戶端的聊天界面這兒主要介紹客戶端。模塊描述局域網(wǎng)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)主要包括服務(wù)端和客戶端,服務(wù)端與客戶端之間通過(guò)套接口Socket(TCP)連接。其中默認(rèn) IP 地址為: 127.0.0.1客戶端模塊圖:聊天室客戶端用連發(fā)送退戶接/接收出登設(shè)聊 天錄置消息連接設(shè)置:用戶可以設(shè)置自己的服務(wù)器的IP 地址,默認(rèn)的連接地
5、址為:127.0.0.1;用戶登錄:只能在聊天室服務(wù)端已開(kāi)啟的情況下,用戶才能登錄, 用戶登錄之后才能開(kāi)始聊天,登錄后不能再修改用戶設(shè)置和連接設(shè)置;發(fā)送和接收聊天信息:客戶端可以給服務(wù)器端發(fā)送信息,并能收到服務(wù)器端發(fā)送過(guò)來(lái)的消息;退出:關(guān)閉所有聊天并退出客戶端。計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第4頁(yè),共12頁(yè)客戶端類圖: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è)計(jì)1.客戶端主要包括以下文件,它們的功能如下:(1)ChatClient.java:包含名為 ChatClient 的 public 類,其主要功能為定義客戶端的界面,添加事件偵聽(tīng)與事件處理。該類定義了 ConnectServer()與 processConnection()方法實(shí)現(xiàn)與服務(wù)器的連接與斷開(kāi)連接。當(dāng)?shù)卿浀街付ǖ姆?wù)器時(shí),調(diào)
7、用 ClientReceive 類實(shí)現(xiàn)消息收發(fā),同時(shí)該類還定義了 SendMsg()方法來(lái)向服務(wù)器端發(fā)送消息。(2)ClientReceive.java:該類是實(shí)現(xiàn)服務(wù)器端與客戶端消息收發(fā)的類。2. 客戶端的程序創(chuàng)建了一個(gè) Socket 對(duì)象,用來(lái)與服務(wù)器端建立連接通信。 inputstream 用來(lái)從Socket 的 inputstream 輸入流讀取文本行, outputstream 向 Socket 的 outputstream 輸出文本行??蛻舳藦臉?biāo)準(zhǔn)輸入中讀取數(shù)據(jù)并輸出,當(dāng)讀到信息“服務(wù)器端:終止”的時(shí)候關(guān)閉輸入輸出流3.In 和 out 是客戶端和服務(wù)器端通信的關(guān)鍵。把發(fā)送功能寫在
8、了發(fā)送按鈕的事件響應(yīng)代碼中;由于接收是要保持監(jiān)聽(tīng)狀態(tài)的,所以把接收功能寫在了一個(gè)進(jìn)程中。快捷鍵即鍵盤監(jiān)聽(tīng)功能寫在輸入文本框中以實(shí)現(xiàn)輸入完信息后按enter 就能等于發(fā)送按鈕。計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第5頁(yè),共12頁(yè)四、用戶手冊(cè)服務(wù)器端:打開(kāi)服務(wù)器端界面,在文件夾中是 ChatServer.java ,通過(guò)運(yùn)行文件會(huì)有顯示服務(wù)器已經(jīng)啟動(dòng)接下來(lái)就等待客戶端連接反應(yīng)了, 只要有用戶請(qǐng)求連接, 則會(huì)有顯示新用戶接入, 客戶端的聊天記錄也會(huì)在服務(wù)器端顯示:某某: . 。最后關(guān)閉窗口,即可斷開(kāi)服務(wù)器、 ??蛻舳耍和ㄟ^(guò)運(yùn)行文件 ChatClient.java,進(jìn)入客戶端窗口后就可以開(kāi)始與服務(wù)器端相互聊天了
9、。注:圖形界面的 Application 程序 ,用以實(shí)現(xiàn)常見(jiàn)的聊天功能 ,僅考慮一對(duì)一的聊天 . 用 TextPad 作為系統(tǒng)開(kāi)發(fā)環(huán)境 。五、測(cè)試成果1. 當(dāng)先運(yùn)行 ChatClient 程序時(shí)出現(xiàn)顯示連接的界面如圖一所示(沒(méi)有開(kāi)啟服務(wù)器端)圖一計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第6頁(yè),共12頁(yè)2. 運(yùn)行 ChatServer 程序得到服務(wù)器端等待連接的界面圖二所示圖二3. 關(guān)閉 1 中的客戶端界面,重新運(yùn)行得到客戶端連接到: 127.0.0.1 (應(yīng)該先運(yùn)行服務(wù)器端),如圖三所示:圖三計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第7頁(yè),共12頁(yè)4. 客戶端發(fā)送信息,下圖四顯示的是客戶端發(fā)送信息后的結(jié)果:圖四5客戶端
10、發(fā)送消息,服務(wù)器端接收到信息如圖五所示:圖五計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第8頁(yè),共12頁(yè)6. 服務(wù)器端接收到客戶端信息后也可以向其傳輸信息如圖六所示:圖六7. 圖七所示為客戶端接收到服務(wù)器所發(fā)送的信息:圖七六附錄(源程序清單)計(jì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第9頁(yè),共12頁(yè)我負(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ì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第
12、10頁(yè),共12頁(yè)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ì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第11頁(yè),共12頁(yè)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ì)算機(jī)面向?qū)ο笳n程設(shè)計(jì)報(bào)告第12頁(yè),共12頁(yè)4. 課程設(shè)計(jì)心得經(jīng)過(guò)這次 java 課程設(shè)計(jì)的親自實(shí)踐,我對(duì)自己的不足有了進(jìn)一步的發(fā)現(xiàn),在設(shè)計(jì)的過(guò)程中不時(shí)的會(huì)發(fā)
15、現(xiàn)不會(huì)的知識(shí)點(diǎn), 在查找書籍的過(guò)程中也是對(duì)自己知識(shí)的鞏固,能幫助自己回憶起老師講過(guò)的內(nèi)容,在加深印象的基礎(chǔ)上更好的通過(guò)實(shí)踐理解。我負(fù)責(zé)的客戶端程序中只是簡(jiǎn)單的實(shí)行發(fā)送接收服務(wù)器端的信息。 在設(shè)計(jì)程序之前先要考慮的是這個(gè)程序想要實(shí)現(xiàn)什么功能 , 根據(jù)要求先畫出類圖, 理清思路,不要一開(kāi)始就想著去編寫源代碼,因?yàn)樵诰帉懙倪^(guò)程中也許就會(huì)發(fā)現(xiàn)自己還有些遺漏點(diǎn)。 在畫好類圖后再根據(jù)類圖編輯源代碼。 在編寫過(guò)程中,最重要的是細(xì)心,并不是一定要做到面面俱到,但也要考慮到作業(yè)的需求和現(xiàn)實(shí)意義,只有運(yùn)用到實(shí)際應(yīng)用中,才具有現(xiàn)實(shí)意義。所以在準(zhǔn)備工作中要正確分析社會(huì)需求了解現(xiàn)實(shí)應(yīng)用,畫出流程圖,把大體框架做好,然后再逐一細(xì)化。我們一定要做到步步扎實(shí),要保持清醒的頭腦,讓自己的每一行代碼都能實(shí)現(xiàn)自己的意義 。雖然要
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)水果種植行業(yè)投資分析及發(fā)展戰(zhàn)略研究咨詢報(bào)告
- 軟件可靠性和安全性設(shè)計(jì)報(bào)告
- 鋼質(zhì)門安裝合同范本
- 2025-2030年中國(guó)書釘項(xiàng)目投資可行性研究分析報(bào)告
- 2024年移動(dòng)式中轉(zhuǎn)站項(xiàng)目深度研究分析報(bào)告
- 短期用人合同范本
- 2025年度危險(xiǎn)品柴油運(yùn)輸全程跟蹤管理合同
- 2025年中國(guó)榛子油行業(yè)市場(chǎng)前瞻與投資戰(zhàn)略規(guī)劃分析報(bào)告
- 2025年羊反絨革項(xiàng)目投資可行性研究分析報(bào)告
- 2025年玻璃微纖維隔熱氈項(xiàng)目建議書
- 壘球教案完整版本
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 2024年蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)含答案
- 發(fā)展?jié)h語(yǔ)初級(jí)口語(yǔ)I-第11課課件
- 《柔性棚洞防護(hù)結(jié)構(gòu)技術(shù)規(guī)程》
- 危險(xiǎn)廢物綜合利用與處置技術(shù)規(guī)范 通則
- 植物組織培養(yǎng)技術(shù)應(yīng)用研究進(jìn)展
- 教育心理學(xué)課件(完整版)
- YYT 1898-2024 血管內(nèi)導(dǎo)管導(dǎo)絲 親水性涂層牢固度試驗(yàn)方法
- 2023年安徽電氣工程職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能試題及答案解析
- JIS-D1601-1995-汽車零部件振動(dòng)試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論