java聊天室詳細(xì)設(shè)計(jì)文檔.doc_第1頁(yè)
java聊天室詳細(xì)設(shè)計(jì)文檔.doc_第2頁(yè)
java聊天室詳細(xì)設(shè)計(jì)文檔.doc_第3頁(yè)
java聊天室詳細(xì)設(shè)計(jì)文檔.doc_第4頁(yè)
java聊天室詳細(xì)設(shè)計(jì)文檔.doc_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄第一部分 項(xiàng)目概況1.項(xiàng)目說(shuō)明.42.項(xiàng)目背景.4第二部分 項(xiàng)目計(jì)劃1.項(xiàng)目目標(biāo) 42.項(xiàng)目范圍 43.項(xiàng)目策略 44.項(xiàng)目開(kāi)發(fā)周期 45.每項(xiàng)任務(wù)所需技能 . .56.所采用的工具和技術(shù)清單.5第三部分項(xiàng)目設(shè)計(jì)1需求分析.52軟件功能.53概要設(shè)計(jì).64詳細(xì)設(shè)計(jì).6第四部分 項(xiàng)目測(cè)試1.測(cè)試階段2程序界面.73程序運(yùn)行的條件4參考的資料第五部分 活動(dòng)總結(jié)第一部分 項(xiàng)目概況1.項(xiàng)目說(shuō)明項(xiàng)目名稱:JAVA聊天室系統(tǒng)。客戶:一般大眾。2、項(xiàng)目背景軟件學(xué)院兩年多的辦學(xué)歷程中,采用了印度NIIT的先進(jìn)教學(xué)法,學(xué)生從中極大地提高了專業(yè)知識(shí)能力,對(duì)于學(xué)生的動(dòng)手能力也得到了明顯的提高。為了進(jìn)一步地考察學(xué)生的專業(yè)知識(shí)能力,讓其能夠明確自我專業(yè)知識(shí)水平,提高學(xué)習(xí)的興趣,弄清專業(yè)發(fā)展方向,為以后的就業(yè)打好基礎(chǔ),現(xiàn)特向我院領(lǐng)導(dǎo)申請(qǐng)舉辦軟件學(xué)院首屆“軟件科技月”活動(dòng)。本次活動(dòng)面向全校計(jì)算機(jī)愛(ài)好者,并且與成都多所高校及IT企業(yè)聯(lián)合開(kāi)展系列活動(dòng)?;顒?dòng)以軟件學(xué)院學(xué)生為主體對(duì)象,主張“接觸IT企業(yè),明確專業(yè)方向,苦修專業(yè)知識(shí)”。第二部分 項(xiàng)目計(jì)劃1.項(xiàng)目目標(biāo)(1),允許新用戶注冊(cè),同時(shí)開(kāi)設(shè)帳戶。(2),允許用戶進(jìn)行在線的公聊和私聊。(3),可以創(chuàng)建留言版面并且留言。(4),允許用戶創(chuàng)建私人包間、查找包間并且在包間內(nèi)聊天。(5),可通過(guò)帳戶ID號(hào)對(duì)用戶資料進(jìn)行查詢。(6),友好的歡迎界面并顯示上次登陸時(shí)間。2.項(xiàng)目范圍本軟件適用于一般大眾。3.項(xiàng)目策略通過(guò)可視化編程的JAVA程序和SQL數(shù)據(jù)庫(kù)的方式進(jìn)行實(shí)現(xiàn)。通過(guò)增量開(kāi)發(fā)的方法進(jìn)行此項(xiàng)目的設(shè)計(jì)與開(kāi)發(fā)。使用套節(jié)字進(jìn)行客戶與服務(wù)端的通訊。4項(xiàng)目開(kāi)發(fā)周期第一周需求分析及初步設(shè)計(jì)階段(決定每個(gè)功能所需的類及數(shù)據(jù)類型)第二周根據(jù)相應(yīng)功能設(shè)計(jì)出各類所用到的方法及數(shù)據(jù)類型第三周具體實(shí)現(xiàn)各個(gè)類中的各個(gè)方法第四周對(duì)各個(gè)界面和服務(wù)器進(jìn)行調(diào)整及測(cè)試完善工作5.每項(xiàng)任務(wù)所需技能數(shù)據(jù)庫(kù)建立:熟練的SQL數(shù)據(jù)庫(kù)編程。服務(wù)端與客戶端的連接:熟悉網(wǎng)絡(luò)編程中的協(xié)議及數(shù)據(jù)流程序界面設(shè)計(jì):可視化編程技能。代碼實(shí)現(xiàn):JAVA與數(shù)據(jù)庫(kù)編程。6.所采用的工具開(kāi)發(fā)工具:Microsoft JAVALE(jdk1.3)+ Microsoft SQL Server開(kāi)發(fā)環(huán)境:windows2000+個(gè)人電腦第三部分項(xiàng)目設(shè)計(jì)1.需求分析隨著經(jīng)濟(jì)的日益發(fā)展,網(wǎng)絡(luò)的觀念深入人心。人們?cè)絹?lái)越需要通過(guò)網(wǎng)絡(luò)高效簡(jiǎn)捷的交流,聊天室就是其中的一個(gè)工具。2.軟件主要功能(1),允許新用戶注冊(cè),同時(shí)開(kāi)設(shè)帳戶。(2),允許用戶進(jìn)行在線的公聊和私聊。(3),可以創(chuàng)建留言版面并且留言。(4),允許用戶創(chuàng)建私人包間、查找包間并且在包間內(nèi)聊天。(5),可通過(guò)帳戶ID號(hào)對(duì)用戶資料進(jìn)行查詢。(6),友好的歡迎界面并顯示上次登陸時(shí)間。程序中要用到的類1、客戶端BaojianNew創(chuàng)建包間BaoJianFind查找包間加入包間BaoJianEnter進(jìn)入包間BaoJianQu包間區(qū)聊天NewPanel界面背景圖處理PrivateMessage私聊功能UserFind查找用戶功能Register注冊(cè)功能EnterGUI登陸功能ChatRoom公共聊天功能LiuYan留言板SocketConstants接口(包含服務(wù)端IP地址,以及自定義端口號(hào)#6655)2、服務(wù)端Server處理聊天內(nèi)容三、設(shè)計(jì)細(xì)節(jié)與構(gòu)造(一)編寫(xiě)服務(wù)端程序()問(wèn)題陳述需要在中開(kāi)發(fā)一個(gè)中間層服務(wù)器應(yīng)用程序,其功能如下:a.接受用戶注冊(cè)信息并保存在一個(gè)表中(需連接數(shù)據(jù)庫(kù))b.執(zhí)行用戶的設(shè)定的查找功能c.能夠允許注冊(cè)過(guò)的用戶登陸聊天界面并可以聊天d.能夠接受私聊信息并發(fā)送給特定的用戶e.能夠接受用戶創(chuàng)建的包間信息并保存到一張表中BaoJianf.能夠允許用戶查找,登陸,加入包間并進(jìn)行聊天g.能夠接受用戶的留言,并保存到以用戶名為文件名的文件內(nèi)h.服務(wù)器運(yùn)行在自定義的端口上1001()計(jì)劃解答a.選擇創(chuàng)建網(wǎng)絡(luò)服務(wù)器應(yīng)用程序所需引用的類和方法。b、確定用戶自定義的類、他們的目的、方法。c、確定用戶自定義的類中的數(shù)據(jù)類型和變量。d、確定服務(wù)器的IP地址和端口號(hào)。e、確定何時(shí)連接到數(shù)據(jù)庫(kù)中。f、確定查詢參數(shù)。g、確定要處理的例外。h、確定例外的出錯(cuò)信息。任務(wù)a.選擇創(chuàng)建網(wǎng)絡(luò)服務(wù)器應(yīng)用程序所需引用的類和方法。任務(wù)解答來(lái)源結(jié)果選擇創(chuàng)建網(wǎng)絡(luò)服務(wù)器應(yīng)用程序所需引用的類和方法。類方法Serversocketaccept ()ThreadStart(),run()SocketgetInputStream(),getOutputstream()ObjectInputStreamreadObject()ObjectOutputStreamwriteObject()BufferedReaderreadLine()VectoraddElement(),removeElement()任務(wù)b、確定用戶自定義的類、他們的目的、方法。任務(wù)解答來(lái)源結(jié)果確定用戶自定義的類、他們的目的、方法。類目的方法Serversocket監(jiān)聽(tīng)客戶請(qǐng)求run(), ServerSocket()Connect處理客戶端的各種操作Connect(),enter(),register(),find()send(),enter(),time()Members保留申請(qǐng)人信息BaoJian保留包間信息Applicant保留留言信息任務(wù)c、確定用戶自定義的類中的數(shù)據(jù)類型和變量。任務(wù)解答來(lái)源結(jié)果確定用戶自定義的類中的數(shù)據(jù)類型和變量。類數(shù)據(jù)類型變量ServersocketServerSocketSocketThreadServerFromClientserverThreadConnectMembersObjectInputStreamObjectOutputStreamPrintStreamBufferedReaderStringStringBufferVectorVectorVectorVectorResultdataObjInstreamFromClientoutinuservmessagevprivate,vprivatemessagevbaojian,vbaojianmessagevbaojianClientvpeopleresult2MembersStringStringStringStringStringStringStringStringmemberID;memberName;memberPassword;memberSex;memberAddress;memberPosition;memberAge;memberInterest;BaoJianStringStringStringBaoJianIDBaoJianName;BaoJianMiaoShu;ApplicantStringutxt任務(wù)d、確定服務(wù)器的IP地址和端口號(hào)。任務(wù)解答來(lái)源結(jié)果確定服務(wù)器的IP地址和端口號(hào)。地址:本機(jī)IP地址端口:1001任務(wù)e、確定何時(shí)連接到數(shù)據(jù)庫(kù)中。任務(wù)解答來(lái)源結(jié)果確定何時(shí)連接到數(shù)據(jù)庫(kù)中。()當(dāng)用戶注冊(cè)時(shí),插入注冊(cè)信息()當(dāng)用戶登陸時(shí),檢驗(yàn)是否存在()當(dāng)用戶查找時(shí),選出有關(guān)信息()當(dāng)用戶創(chuàng)建,查找,加入,進(jìn)入包間時(shí)任務(wù)f、確定查詢參數(shù)。任務(wù)解答來(lái)源結(jié)果確定查詢參數(shù)。vMemberPassword,vMemberName,vBaoJianID任務(wù)g、確定要處理的例外。任務(wù)解答來(lái)源結(jié)果確定要處理的例外。例外發(fā)生場(chǎng)合ExceptionIOExceptionInvalidClassExceptionNotSerializableException創(chuàng)建Thread對(duì)象時(shí),當(dāng)調(diào)用accept()方法時(shí),當(dāng)調(diào)用getInputStream()以及getOutputStream()方法時(shí),當(dāng)調(diào)用writeObject(),println (),readLine()方法時(shí)當(dāng)連接數(shù)據(jù)庫(kù)時(shí)當(dāng)調(diào)用readObject()方法時(shí)當(dāng)調(diào)用readObject()方法時(shí)當(dāng)調(diào)用readObject()方法時(shí)任務(wù)h、確定例外的出錯(cuò)信息。任務(wù)解答來(lái)源結(jié)果確定例外的出錯(cuò)信息。例外出錯(cuò)信息ExceptionIOExceptionInvalidClassExceptionNotSerializableExceptionCannot start the Threadnot listen to the clientthe wrong is this :+ethe wrong is here :+ethe wrong is here:+ethe wrong is here3 :+ethe wrong . :+ecannot read from client :+ecannot write the vmessage+ecannot serialize Members class+eObject is not serializable+e()實(shí)施解答a.編寫(xiě)服務(wù)器程序b.保存程序c.編譯程序d.運(yùn)行程序()驗(yàn)證解答:在創(chuàng)建好客戶端后進(jìn)行驗(yàn)證(二)編寫(xiě)客戶端程序、編寫(xiě)注冊(cè)界面程序()問(wèn)題陳述:編寫(xiě)一個(gè)客戶端程序?qū)⒂脩糇?cè)的信息發(fā)送給服務(wù)端()計(jì)劃解答a.選擇創(chuàng)建該程序所需要引用的類和方法b.確定用戶自定義的包、類、它們的目的及方法c.確定用戶定義類中的數(shù)據(jù)類型和變量d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)e.確定提交到服務(wù)器上的數(shù)據(jù)f.確定何時(shí)提交數(shù)據(jù)g.確定要處理的例外h.確定例外的出錯(cuò)信息任務(wù)a.選擇創(chuàng)建該程序所需要引用的類和方法任務(wù)解答來(lái)源結(jié)果選擇創(chuàng)建該程序所需要引用的類和方法類方法SocketObjectOutputStreamPrintStreamBufferedReaderObjectInputStreamPrintStream out=null;BufferedReader in=null;ObjectInputStream objIn;ObjectOutputStream objOut=nPrintStream out=null;BufferedReader in=null;ObjectInputStream objIn;ObjectOutputStream objOut=nPrintStream out=nuBufferedReadergetOutputStream()writeObject()println();readLine();readObject();任務(wù)b.確定用戶自定義的包、類、它們的目的及方法任務(wù)解答來(lái)源結(jié)果.確定用戶自定義的包、類、它們的目的及方法類目的方法Members保留申請(qǐng)人信息Register實(shí)現(xiàn)界面及功能openRegister()main()register()actionPerformed()任務(wù)c.確定用戶定義類中的數(shù)據(jù)類型和變量任務(wù)解答來(lái)源結(jié)果確定用戶定義類中的數(shù)據(jù)類型和變量類數(shù)據(jù)類型變量MembersStringStringStringStringStringStringStringStringmemberID;memberName;memberPassword;memberSex;memberAddress;memberPosition;memberAge;memberInterest;RegisterSocketObjectOutputStream以及其中的許多空控件ClientSocketobjOut任務(wù)d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)任務(wù)解答來(lái)源結(jié)果d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)地址:本機(jī)IP地址端口號(hào):1001任務(wù)e.確定提交到服務(wù)器上的數(shù)據(jù)任務(wù)解答來(lái)源結(jié)果e.確定提交到服務(wù)器上的數(shù)據(jù)Members類中的一個(gè)對(duì)象任務(wù)f.確定何時(shí)提交數(shù)據(jù)任務(wù)解答來(lái)源結(jié)果確定何時(shí)提交數(shù)據(jù)點(diǎn)擊buttonHandIn按鈕時(shí)任務(wù)g.確定要處理的例外任務(wù)解答來(lái)源結(jié)果.確定要處理的例外例外發(fā)生場(chǎng)合InvalidClassExceptionNotSerializableExceptionIOException當(dāng)調(diào)用writeObject()方法時(shí)當(dāng)調(diào)用writeObject()方法時(shí)當(dāng)調(diào)用writeObject()方法時(shí)任務(wù)h.確定例外的出錯(cuò)信息任務(wù)解答來(lái)源結(jié)果確定例外的出錯(cuò)信息例外出錯(cuò)信息InvalidClassExceptionNotSerializableExceptionIOExceptionThe RegisterApply class is invalid :+e1The object is not serializable :+e2Cannot write to the server :+e3()實(shí)施解答()驗(yàn)證解答、編寫(xiě)查找界面程序()問(wèn)題陳述編寫(xiě)一個(gè)查找界面的程序,將信息顯示在文本框內(nèi)()計(jì)劃解答(略)()實(shí)施解答a.編寫(xiě)注冊(cè)界面程序b.保存程序c.編譯程序d.運(yùn)行程序()驗(yàn)證解答:輸入一個(gè)已經(jīng)注冊(cè)的執(zhí)行后看有關(guān)信息是否顯示;輸入一個(gè)沒(méi)有注冊(cè)的執(zhí)行后看其效果;、編寫(xiě)登陸界面程序()問(wèn)題陳述()計(jì)劃解答(略)a.選擇創(chuàng)建該程序所需要引用的類和方法b.確定用戶自定義的包、類、它們的目的及方法c.確定用戶定義類中的數(shù)據(jù)類型和變量d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)e.確定提交到服務(wù)器上的數(shù)據(jù)f.確定何時(shí)提交數(shù)據(jù)g.確定要處理的例外h.確定例外的出錯(cuò)信息()實(shí)施解答a.編寫(xiě)注冊(cè)界面程序b.保存程序c.編譯程序d.運(yùn)行程序()驗(yàn)證解答4、編寫(xiě)聊天界面程序()問(wèn)題陳述()計(jì)劃解答a.選擇創(chuàng)建該程序所需要引用的類和方法b.確定用戶自定義的包、類、它們的目的及方法c.確定用戶定義類中的數(shù)據(jù)類型和變量d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)e.確定提交到服務(wù)器上的數(shù)據(jù)f.確定何時(shí)提交數(shù)據(jù)g.確定要處理的例外h.確定例外的出錯(cuò)信息任務(wù)a.選擇創(chuàng)建該程序所需要引用的類和方法任務(wù)解答來(lái)源結(jié)果選擇創(chuàng)建該程序所需要引用的類和方法類方法hreadSocketPrintStreamBufferedReaderObjectInputStreamObjectOutputStreamVectorTimerrun()getInputStream(),get.println()readLine();readObject();writeObject()elementAt(),size().start(),actionPerformed任務(wù)b.確定用戶自定義的包、類、它們的目的及方法任務(wù)解答來(lái)源結(jié)果確定用戶自定義的包、類、它們的目的及方法包類目的方法ChartingRoom.RoomRoomTimeAction處理消息的發(fā)送定時(shí)地接受消息并顯示在文本區(qū)內(nèi)main()OpenRoom()actionPerformed()run()actionPerformed()任務(wù)c.確定用戶定義類中的數(shù)據(jù)類型和變量任務(wù)解答來(lái)源結(jié)果確定用戶定義類中的數(shù)據(jù)類型和變量數(shù)據(jù)類型變量SocketPrintStreamBufferedReaderObjectInputStreamVectorStringIntclientSocket,time clientSocketout, timeoutin, timein;objIn,timeobjIn;vmessage,vpeoplesDate,sTime,sStatus;countmessage,countpeople任務(wù)d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)任務(wù)解答來(lái)源結(jié)果確定建立連接時(shí)服務(wù)器的地址和端口號(hào)地址:本機(jī)IP地址端口號(hào):任務(wù)e.確定提交到服務(wù)器上的數(shù)據(jù)任務(wù)解答來(lái)源結(jié)果確定提交到服務(wù)器上的數(shù)據(jù)發(fā)送區(qū)內(nèi)地消息任務(wù)f.確定何時(shí)提交數(shù)據(jù)任務(wù)解答來(lái)源結(jié)果確定何時(shí)提交數(shù)據(jù)當(dāng)點(diǎn)擊按鈕”send”任務(wù)g.確定要處理的例外任務(wù)解答來(lái)源結(jié)果確定要處理的例外例外發(fā)生場(chǎng)合InvalidClassExceptionNotSerializableExceptionIOExceptionExceptionInterruptedException接受消息時(shí)接受消息時(shí)接受消息時(shí)Timer啟動(dòng)時(shí)時(shí)間線程啟動(dòng)時(shí)任務(wù)h.確定例外的出錯(cuò)信息任務(wù)解答來(lái)源結(jié)果確定例外的出錯(cuò)信息InvalidClassExceptionNotSerializableExceptionIOExceptionExceptionInterruptedExceptionThe RegisterApply class is invalid :+eThe object is not serializable :+eCannot write to the server :+eTimer has wrong + e6Timerprintln(e)()實(shí)施解答a.編寫(xiě)注冊(cè)界面程序b.保存程序c.編譯程序d.運(yùn)行程序()驗(yàn)證解答5.編寫(xiě)登陸界面程序( 1 )問(wèn)題陳述()計(jì)劃解答(略)a.選擇創(chuàng)建該程序所需要引用的類和方法b.確定用戶自定義的包、類、它們的目的及方法c.確定用戶定義類中的數(shù)據(jù)類型和變量d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)e.確定提交到服務(wù)器上的數(shù)據(jù)f.確定何時(shí)提交數(shù)據(jù)g.確定要處理的例外h.確定例外的出錯(cuò)信息()實(shí)施解答a.編寫(xiě)包間界面程序b.保存程序c.編譯程序d.運(yùn)行程序6編寫(xiě)創(chuàng)建包間界面程序( 1 )問(wèn)題陳述()計(jì)劃解答(略)a.選擇創(chuàng)建該程序所需要引用的類和方法b.確定用戶自定義的包、類、它們的目的及方法c.確定用戶定義類中的數(shù)據(jù)類型和變量d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)e.確定提交到服務(wù)器上的數(shù)據(jù)f.確定何時(shí)提交數(shù)據(jù)g.確定要處理的例外h.確定例外的出錯(cuò)信息()實(shí)施解答a.編寫(xiě)注冊(cè)界面程序b.保存程序c.編譯程序d.運(yùn)行程序7.編寫(xiě)查找包間界面程序i.問(wèn)題陳述()計(jì)劃解答(略)a.選擇創(chuàng)建該程序所需要引用的類和方法b.確定用戶自定義的包、類、它們的目的及方法c.確定用戶定義類中的數(shù)據(jù)類型和變量d.確定建立連接時(shí)服務(wù)器的地址和端口號(hào)e.確定提交到服務(wù)器上的數(shù)據(jù)f.確定何

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論