版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序課程設(shè)計(jì)任務(wù)書
JAVA聊天室系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)
1.關(guān)鍵內(nèi)容:
用JAVA實(shí)現(xiàn)基于C/S模式聊天室系統(tǒng)。聊天室分為服務(wù)器端和用戶端兩部分,
服務(wù)器端程序關(guān)鍵負(fù)責(zé)偵聽(tīng)用戶端發(fā)來(lái)信息,用戶端需要登陸到服務(wù)器端才能夠
實(shí)現(xiàn)正常聊天功效。
2.具體要求(包含技術(shù)要求等):
系統(tǒng)功效要求:
A.服務(wù)器端關(guān)鍵功效以下:
1.在特定端口上進(jìn)行須聽(tīng),等候用戶端連接。
2,用戶能夠配置服務(wù)器端偵聽(tīng)端口,默認(rèn)端口為8888。
3,向已經(jīng)連接到服務(wù)器端用戶發(fā)送系統(tǒng)消息、。
4.統(tǒng)計(jì)在線人數(shù)。
5.當(dāng)停止服務(wù)時(shí),斷開(kāi)全部用戶連接。
B.用戶端關(guān)鍵功效以下:
1,連接到已經(jīng)開(kāi)啟聊天服務(wù)服務(wù)器端。
2.用戶能夠配置要連接服務(wù)器端IP地址和端口號(hào)。
3.用戶能夠配置連接后顯示用戶名。
4.當(dāng)服務(wù)器端開(kāi)啟話:用戶能夠隨時(shí)登錄和注銷。
5.用戶能夠向全部些人或某一個(gè)人發(fā)送消息。
學(xué)習(xí)并掌握一下技術(shù):JavaJavaBcan等
熟練使用一下開(kāi)發(fā)工具:Eclipse,JCreator等
實(shí)現(xiàn)系統(tǒng)上訴功效。
3,進(jìn)度安排:
12月28日12月29日:課程設(shè)計(jì)選題,查找參考資料
12月3()日~1月1日:完成系統(tǒng)設(shè)計(jì)
1月2日~1月5日:完成程序代碼編寫
1月6日:系統(tǒng)測(cè)試和完善
1月7日:完成課程設(shè)計(jì)匯報(bào),準(zhǔn)備答辯
4.關(guān)鍵參考文件:
[1].張廣彬孟紅蕊張永寶.Java課程設(shè)計(jì)(案例精編)[M].清華大學(xué)出版社.
摘要
在網(wǎng)絡(luò)越來(lái)越發(fā)達(dá)今天,大家對(duì)網(wǎng)絡(luò)依靠越來(lái)越多,越來(lái)越離不開(kāi)網(wǎng)絡(luò),由
此而產(chǎn)生聊天工具越來(lái)越多,比如,國(guó)外ICQ、中國(guó)騰訊企業(yè)開(kāi)發(fā)OICQ?;贘ava
網(wǎng)絡(luò)編程強(qiáng)大功效,此次畢業(yè)設(shè)計(jì)使用Java編寫一個(gè)聊天系統(tǒng)。
通常來(lái)說(shuō),聊天工具大多數(shù)由用戶端程序和服務(wù)器程序外加服務(wù)器端用于存
放用戶數(shù)據(jù)數(shù)據(jù)庫(kù)組成,本系統(tǒng)采取用戶機(jī)/服務(wù)器架構(gòu)模式經(jīng)過(guò)Java提供Soket
類來(lái)連接用戶機(jī)和服務(wù)器并使用戶機(jī)和服務(wù)器之間相互通信,因?yàn)榱奶焓嵌帱c(diǎn)對(duì)
多點(diǎn)而Java提供多線程功效用多線程可完成多點(diǎn)對(duì)多點(diǎn)聊天,數(shù)據(jù)庫(kù)管理系統(tǒng)用
SQLServer完成并經(jīng)過(guò)JDBOODBC橋訪問(wèn)數(shù)據(jù)庫(kù)。
本系統(tǒng)建立在JAVA平臺(tái)上,系統(tǒng)設(shè)計(jì)使用了面向?qū)ο蠹夹g(shù)和面向?qū)ο笤O(shè)計(jì)標(biāo)
準(zhǔn)。系統(tǒng)采取C/S結(jié)構(gòu),用戶端和用戶端和用戶端和服務(wù)器端之間經(jīng)過(guò)Socket
傳送消息。使用JAVA語(yǔ)言編寫,開(kāi)發(fā)工具采取Eclipse。服務(wù)器端設(shè)計(jì)和實(shí)現(xiàn)過(guò)
程中,采取了多線程技術(shù),能夠在單個(gè)程序當(dāng)口同時(shí)運(yùn)行多個(gè)不一樣線程,實(shí)施
不一樣任務(wù)。大大增強(qiáng)了程序?qū)Ψ?wù)器資源利用。
聊天系統(tǒng)完成后將可進(jìn)行多人對(duì)多人聊天,對(duì)好友進(jìn)行添加、刪除,對(duì)新用
戶注冊(cè),發(fā)送消息、接收消息等等功效。
關(guān)鍵詞:多線程;用戶機(jī)/服務(wù)器;JAVA;Socket;Eclipse;TCP/IP
目錄
JAVA程序課程設(shè)計(jì)任務(wù)書................................錯(cuò)誤!未定義書簽。
摘要...................................................錯(cuò)誤!未定義書簽。
目錄..................................................錯(cuò)誤!未定義書簽。
第1章引言............................................錯(cuò)誤!未定義書簽。
1.1背景..............................................錯(cuò)誤!未定義書簽。
1.2課程設(shè)計(jì)內(nèi)容.....................................錯(cuò)誤!未定義書簽。
1.3任務(wù)分工.........................................錯(cuò)誤!未定義書簽。
第2章聊天室系統(tǒng)......................................錯(cuò)誤!未定義書簽。
2.1聊天室系統(tǒng)概述....................................錯(cuò)誤!未定義書簽。
2.1.1聊天室系統(tǒng)定義...........................錯(cuò)誤!未定義書簽。
2.1.2聊天室系統(tǒng)任務(wù)及目標(biāo).....................錯(cuò)誤!未定義書簽。
2.2關(guān)鍵聊天室系統(tǒng)介紹...............................錯(cuò)誤!未定義書簽。
2.3本章小結(jié)..........................................錯(cuò)誤!未定義書簽。
第3章聊天室系統(tǒng)設(shè)計(jì)..................................錯(cuò)誤!未定義書簽。
3.1系統(tǒng)需求分析.....................................錯(cuò)誤!未定義書簽。
3.2系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境...............................錯(cuò)誤!未定義書簽。
3.3系統(tǒng)關(guān)鍵功效要求.................................錯(cuò)誤!未定義書簽。
3.4系統(tǒng)模塊化分析...................................錯(cuò)誤!未定義書簽。
3.4.1聊天室系統(tǒng)總體結(jié)構(gòu).......................錯(cuò)誤!未定義書簽。
3.4.2聊天室系統(tǒng)各模塊介紹.....................錯(cuò)誤!未定義書簽。
3.5系統(tǒng)數(shù)據(jù)流圖.....................................錯(cuò)誤!未定義書簽。
3.6本章小結(jié).........................................錯(cuò)誤!未定義書簽。
第4章系統(tǒng)具體實(shí)現(xiàn)....................................錯(cuò)誤!未定義書簽。
4.1界面設(shè)計(jì).........................................錯(cuò)誤!未定義書簽。
4.1.1服務(wù)器開(kāi)啟界面圖.........................錯(cuò)誤!未定義書簽。
4.1.2服務(wù)器開(kāi)啟成功界面圖.....................錯(cuò)誤!未定義書簽。
4.13用........................................戶端界面圖...............................錯(cuò)誤!未定義書簽。
4.L4用........................................戶設(shè)置界面圖.............................錯(cuò)誤!未定義書簽。
4.1.5用戶成功登錄界面圖.......................錯(cuò)誤!未定義書簽。
4.1.6兩人私聊界面圖...........................錯(cuò)誤!未定義書簽。
4L7多人群聊界面圖...........................錯(cuò)誤!未定義書簽。
4.2程序設(shè)計(jì)及調(diào)試運(yùn)行...............................錯(cuò)誤!未定義書簽。
4.2.1程序調(diào)試(以服務(wù)器為例)................錯(cuò)誤!未定義書簽。
4.2.2JCreator.................................錯(cuò)誤!未定義書簽。
4.3本章小結(jié).........................................錯(cuò)誤!未定義書簽。
第5章結(jié)束語(yǔ)..........................................錯(cuò)誤!未定義書簽。
致謝...................................................錯(cuò)誤!未定義書簽。
附錄源代碼...........................................錯(cuò)誤!未定義書簽.
第1章引言
1.1背景
當(dāng)今主流聊天工含有QQ,ICQ,MSNMessenger,YahooMessenger等,中國(guó)
最熱門當(dāng)屬Q(mào)Q,騰訊QQ(OTCQ)是由深圳市騰訊計(jì)算機(jī)系統(tǒng)企業(yè)開(kāi)發(fā),基于
Internet即時(shí)尋呼軟件。您能夠使用QQ和好友用戶進(jìn)行交流,信息即時(shí)發(fā)送,
即時(shí)回復(fù),收發(fā)立即、功效全方面。另外QQ還含有BP機(jī)網(wǎng)上尋呼、聊天室、傳
輸文件、語(yǔ)音郵件、手機(jī)短訊服務(wù)等功效,QQ不僅僅是虛擬網(wǎng)絡(luò)尋呼機(jī),更可和
傳統(tǒng)無(wú)線尋呼網(wǎng)、GSV移動(dòng)電話短消息系統(tǒng)互聯(lián),現(xiàn)在QQ和全國(guó)多家尋呼臺(tái)、移
動(dòng)通信企業(yè)有業(yè)務(wù)合作。是中國(guó)不可多得漢字網(wǎng)絡(luò)尋呼機(jī)。QQ支持顯示好友在線
信息、即時(shí)傳送信息、即時(shí)交談、即時(shí)發(fā)送文件和網(wǎng)址。QQ能夠在Win95/98/NT/
操作系統(tǒng)下運(yùn)行,是十分靈活網(wǎng)絡(luò)尋呼工具。它會(huì)自動(dòng)檢驗(yàn)?zāi)欠褚崖?lián)網(wǎng),假如
您電腦已連入Internet,能夠搜索網(wǎng)友、顯示在線網(wǎng)友,能夠依據(jù)QQ號(hào)、昵稱、
姓名、email地址等關(guān)鍵詞來(lái)查找,找到后可加入到通訊錄中。當(dāng)您通訊錄中網(wǎng)
友在線時(shí),QQ中好友頭像就會(huì)顯示在線,依據(jù)提醒就能夠發(fā)送信息,假如對(duì)方登
記了尋呼機(jī)或開(kāi)通了GSM手機(jī)短消息,即使離線了,您也可立即將信息傳輸給您
好友。
即使以上這些軟件是無(wú)償,而且功效越來(lái)越強(qiáng)大。不過(guò)它們唯一不足就是必
需要聯(lián)網(wǎng)或下載到它們服務(wù)端,要不然是沒(méi)法脫離Intenet使用。為了能在一個(gè)
沒(méi)有連接到Intenet局域網(wǎng)使用聊天工具,那就必需要有服務(wù)器端。
本系統(tǒng)就是包含服務(wù)器端和用戶端,能夠在局域網(wǎng)聊天一個(gè)工具。
1.2課程設(shè)計(jì)內(nèi)容
實(shí)現(xiàn)是局域網(wǎng)中聊天功效,運(yùn)行服務(wù)程序后,服務(wù)器創(chuàng)建成功,然后
使服務(wù)器對(duì)某一個(gè)設(shè)定端口處于監(jiān)聽(tīng)狀態(tài),當(dāng)有用戶端請(qǐng)求建立連接時(shí),服
務(wù)器就可接收請(qǐng)求,建立連接!這么服務(wù)那和用戶端就可相互發(fā)送消息,實(shí)
現(xiàn)聊天功效!
系統(tǒng)功效要求:
A.服務(wù)器端關(guān)鍵功效以下:
L在特定端口上進(jìn)行偵聽(tīng),等候用戶端連接。
2.用戶能夠配置服務(wù)器端偵聽(tīng)端口,默認(rèn)端口為8888o
3.向已經(jīng)連接到服務(wù)器端用戶發(fā)送系統(tǒng)消息。
4.統(tǒng)計(jì)在線人數(shù)。
5.當(dāng)停止服務(wù)時(shí),斷開(kāi)全部用戶連接。
B.用戶端關(guān)鍵功效以下:
1.連接到已經(jīng)開(kāi)啟聊天服務(wù)服務(wù)器端。
2.用戶能夠配置要連接服務(wù)器端IP地址和端口號(hào)。
3.用戶能夠配置連接后顯示用戶名。
4.當(dāng)服務(wù)器端開(kāi)啟話,用戶能夠隨時(shí)登錄和注銷。
5.用戶能夠向全部些人或某一個(gè)人發(fā)送消息
1.3任務(wù)分工
第2章聊天室系統(tǒng)
2.1聊天室系統(tǒng)概述
聊天室是一個(gè)基于互聯(lián)網(wǎng)即時(shí)交流系統(tǒng),最初是ICQ,也稱網(wǎng)絡(luò)尋呼機(jī)。這
類軟件使得大家能夠利用連上INTERNET網(wǎng)電腦用戶能夠隨時(shí)跟另外一個(gè)在線網(wǎng)
民交談,甚至能夠經(jīng)過(guò)視頻看到對(duì)方適時(shí)圖像。使大家無(wú)須擔(dān)心昂貴話費(fèi)而暢快
交流,并工作、交流兩不誤。
2.1.1聊天室系統(tǒng)定義
聊天時(shí)系統(tǒng)是經(jīng)過(guò)即時(shí)通訊技術(shù)來(lái)實(shí)現(xiàn)在線聊天、交流軟件?,F(xiàn)在有2種架
構(gòu)形式,1、一個(gè)是C/S架構(gòu),采取用戶端/服務(wù)器形式,用戶使用過(guò)程中需要下
載安裝用戶端軟件,經(jīng)典代表有:QQ、baiduHI、SkypeQQVSGU、Gtalk、
新浪UC、MSN等;2、采取B/S架構(gòu),即瀏覽器/服務(wù)端形式,這種形式即時(shí)通
訊軟件,直接借助互聯(lián)網(wǎng)為媒介、用戶端無(wú)需安裝任何軟件,既能夠體驗(yàn)服務(wù)器
端進(jìn)行溝通對(duì)話,通常利用在電子商務(wù)網(wǎng)站服務(wù)商,經(jīng)典代表有Websitelive、
53KF、live8()()等。
2.1.2聊天室系統(tǒng)任務(wù)及目標(biāo)
本系統(tǒng)關(guān)鍵經(jīng)過(guò)用戶端,服務(wù)器端來(lái)表現(xiàn)聊天系統(tǒng)基礎(chǔ)功效。
(1)服務(wù)器端
1.處理用戶注冊(cè)
2.處理用戶登錄
3.處理用戶發(fā)送信息,服務(wù)器監(jiān)控聊天內(nèi)容,服務(wù)器過(guò)濾非法內(nèi)容
4.處理用戶得到信息
5.處理用戶退出
8.服務(wù)器踢人,
9.保留服務(wù)器口志。
10.保留用戶聊天信息。
(2)用戶端
1.用戶注冊(cè)界面及結(jié)果
2.用戶登錄界面及結(jié)果
3.用戶發(fā)送信息界面及結(jié)果
4.用戶得到信息界面及結(jié)果
5.用戶退出界面及結(jié)果
2.2關(guān)鍵聊天室系統(tǒng)介紹
現(xiàn)在中國(guó)外做聊天系統(tǒng)企業(yè)很多,產(chǎn)品也琳瑯滿目,中國(guó)有諸如騰訊QQ、
新浪UC、網(wǎng)易泡泡等,國(guó)外有著名MSN(新版更名為L(zhǎng)iveMessenger)和跨平
臺(tái)Gaim等。本人取最具代表性QQ和MSN進(jìn)行了部分研究,作為我開(kāi)發(fā)聊天系
統(tǒng)準(zhǔn)備。
騰訊無(wú)疑是中國(guó)即時(shí)通訊市場(chǎng)霸主,自從99年進(jìn)入即時(shí)通訊領(lǐng)域并快速占市
場(chǎng)以后,其在中國(guó)用戶數(shù)量一直高居榜首,即使近幾年面對(duì)微軟MSN強(qiáng)大攻勢(shì),
騰訊QQ時(shí)常擁有率仍然穩(wěn)步增加。騰訊成功和其對(duì)QQ不停創(chuàng)新和完善是分不
開(kāi)。
參考了很多網(wǎng)絡(luò)上資料,和自己經(jīng)過(guò)觀察騰訊QQ運(yùn)行時(shí)多種細(xì)節(jié)。能夠確
定騰訊QQ是以多服務(wù)器提供服務(wù)、服務(wù)潛總控用戶端、用戶端之間UDP直連通
信.而且在兩個(gè)用戶端之間不能建立直連情況二,才由服務(wù)器進(jìn)行中轉(zhuǎn)通信.
其模型圖1-1
Serveri
Scrvcr2
圖1-1騰訊QQ服務(wù)器-用戶端模型1
和騰訊QQ不一樣,微軟MSNMessenger只使用了TCP作為傳輸層通信協(xié)
議,全部用戶端和服務(wù)器進(jìn)行連接,然后經(jīng)過(guò)和服務(wù)器TCP連接進(jìn)行中轉(zhuǎn)通信。
其模型圖1-2
圖1-2MSN服務(wù)器-用戶端模型2
騰訊使用模型中,服務(wù)器關(guān)鍵處理用戶端多種狀態(tài)控制,能夠極大減輕服務(wù)
器處理壓力,但其內(nèi)部協(xié)議和實(shí)現(xiàn)復(fù)雜度全部較高。而MSNMessenger全部數(shù)據(jù)
全部要經(jīng)過(guò)服務(wù)器,服務(wù)器壓力可想而知(難怪平時(shí)極少見(jiàn)到使用MSN進(jìn)行語(yǔ)
音視頻聊天)。
2.3本章小結(jié)
這一章介紹了目前聊天室系統(tǒng)應(yīng)該含有功效模塊,并提供了市面上比較流行
聊天室系統(tǒng)作為參考。在這一章中,我們能夠了解什么是聊天室系統(tǒng),目前聊天
室系統(tǒng)市場(chǎng)需求,還有?一個(gè)聊天室系統(tǒng)應(yīng)該開(kāi)發(fā)目標(biāo)。
第3章聊天室系統(tǒng)設(shè)計(jì)
這一章是聊天室系統(tǒng)設(shè)計(jì),從系統(tǒng)需求分析開(kāi)始,介紹開(kāi)發(fā)環(huán)境和用到開(kāi)發(fā)
工具,系統(tǒng)關(guān)鍵功效設(shè)計(jì),系統(tǒng)數(shù)據(jù)步驟圖。
3.1系統(tǒng)需求分析
聊天室設(shè)計(jì)目標(biāo):經(jīng)過(guò)做鞏固所學(xué)Java語(yǔ)言基礎(chǔ)知識(shí),促進(jìn)Java語(yǔ)言編輯基礎(chǔ)
功,掌握J(rèn)DK、JCreator等開(kāi)發(fā)工具利用,拓寬常見(jiàn)類庫(kù)應(yīng)用,用JAVA實(shí)現(xiàn)基
于C/S模式聊天室系統(tǒng)。
3.2系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境
硬件平臺(tái):
□CPU:Pentium2.8GHz以上。
□內(nèi)存:256MB以上。
軟件平臺(tái):
□操作系統(tǒng):WindowsXPo
□運(yùn)行環(huán)境:JDKVersion1.6JCreatoro
3.3系統(tǒng)關(guān)鍵功效要求
本系統(tǒng)針對(duì)局域網(wǎng)進(jìn)行聯(lián)機(jī)聊天。聊天室分為服務(wù)器端和用戶端兩部分,服
務(wù)器端程序關(guān)鍵負(fù)責(zé)偵聽(tīng)用戶端發(fā)來(lái)信息,用戶端需要登陸到服務(wù)器端才能夠?qū)?/p>
現(xiàn)正常聊天功效。木系統(tǒng)關(guān)鍵實(shí)現(xiàn)以下功效:
服務(wù)器:
□在特定端口上進(jìn)行偵聽(tīng),等候用戶端連接。
□用戶能夠配置服務(wù)器端偵聽(tīng)端口,默認(rèn)端口為8888。
□向已經(jīng)連接到服務(wù)器端用戶發(fā)送系統(tǒng)消息。
□統(tǒng)計(jì)在線人數(shù)。
□當(dāng)停止服務(wù)時(shí),斷開(kāi)全部用戶連接。
□系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。
□一臺(tái)主機(jī)只能開(kāi)啟一個(gè)服務(wù)器。
用戶端:
□連接到已經(jīng)開(kāi)啟聊天服務(wù)服務(wù)器端。
□用戶能夠配置要連接服務(wù)器端1P地址和端口號(hào)。
□用戶能夠配置連接后顯示用戶名。
□用戶能夠更改聊天時(shí)表情。
□當(dāng)服務(wù)器端開(kāi)啟后,用戶能夠隨時(shí)登錄和注銷。
□用戶能夠向全部些人或某一個(gè)人發(fā)送消息。
□系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。
□能夠默認(rèn)連接到自己主機(jī)開(kāi)啟服務(wù)涉。
3.4系統(tǒng)模塊化分析
3.4.1聊天室系統(tǒng)總體結(jié)構(gòu)
關(guān)鍵功效框架以下圖所表示:
各功效模塊實(shí)現(xiàn)功效為:
服務(wù)器:
端口設(shè)置:設(shè)置傾聽(tīng)端口號(hào),默認(rèn)為8888。
開(kāi)啟服務(wù):開(kāi)啟傾聽(tīng)端口,許可用戶端連接。
系統(tǒng)消息:服務(wù)器開(kāi)啟后能夠在聊天室內(nèi)發(fā)送消息。
停止服務(wù):關(guān)閉傾聽(tīng)端口,中止全部用戶端連接。
退出:關(guān)閉服務(wù)器。
用戶端:
用戶設(shè)置:設(shè)置聊天時(shí)顯示名稱,默認(rèn)為急忙過(guò)客。
連接設(shè)置:設(shè)置要連接服務(wù)器所在主機(jī)TP地址和傾聽(tīng)端口o
登錄:連接服務(wù)器。
發(fā)送消息:進(jìn)行聊天,可單獨(dú)發(fā)送消息給聊天室中一個(gè)人。
注銷:和服務(wù)器斷開(kāi)連接。
退出:關(guān)閉用戶端。
3.4.2聊天室系統(tǒng)各模塊介紹
服務(wù)器包含服務(wù)、幫助、聊天三大模塊,其
中服務(wù)模塊包含端口設(shè)置、開(kāi)啟服務(wù)、停止
服務(wù)和退出四個(gè)小模塊
聊天模塊能夠向聊天室
發(fā)送至:斫有人▼內(nèi)全部些人或個(gè)人發(fā)送
發(fā)送消息:
系統(tǒng)消息或以管理員身
份和其它人聊天
表3/服務(wù)器各模塊名稱功效匯總表
序號(hào)模塊名基礎(chǔ)功效
1端口設(shè)置設(shè)置傾聽(tīng)端口號(hào),默認(rèn)為8888。
2開(kāi)啟服務(wù)開(kāi)啟傾聽(tīng)端口,許可用戶端連接。
3停止服務(wù)關(guān)閉傾聽(tīng)端口,中止全部用戶端連接。
4退出關(guān)閉服務(wù)器。
5幫助顯示各個(gè)模塊功效及操作方法。
6發(fā)送向聊天室內(nèi)發(fā)送系統(tǒng)消息。
-聊天室客戶亮用戶端包含操作、設(shè)置、幫助、聊天四大
____________________-J_____
操作9)設(shè)置(C)群助出)模塊,其中操作包含用戶登錄、用戶注銷
|用戶設(shè)置連接設(shè)置登錄性鎬||退出|
和退出三個(gè)小模塊,設(shè)置包含用戶設(shè)置和
連接設(shè)置兩個(gè)小模塊聊天模塊除含有一般聊天功效外,還能進(jìn)行聊天時(shí)表情選擇
發(fā)送至:恢有人e表情:微笑地口悄悄話
發(fā)送消息4發(fā)送
在線用戶1人
表3?2用戶端各模塊名稱功效匯總表
序號(hào)模塊名基礎(chǔ)功效
1用戶設(shè)置設(shè)置聊天時(shí)顯示名稱,默認(rèn)為急忙過(guò)客。
2連接設(shè)置設(shè)置要連接服務(wù)港所在主機(jī)IP地址和傾聽(tīng)端口。
3用戶登錄連接到服務(wù)器端。
4用戶注銷和服務(wù)器斷開(kāi)連接。
5退出關(guān)閉用戶端C
6發(fā)送發(fā)送聊天內(nèi)容
7悄悄話聊天內(nèi)容不會(huì)被服務(wù)器和說(shuō)話對(duì)象以外人看到
3.5系統(tǒng)數(shù)據(jù)流圖
系統(tǒng)數(shù)據(jù)流圖
3.6本章小結(jié)
本章是聊天室系統(tǒng)具體設(shè)計(jì)過(guò)程,有具體需求分析、系統(tǒng)功效模塊、系統(tǒng)數(shù)
據(jù)流圖。這里我們開(kāi)始接觸聊天室系統(tǒng)開(kāi)發(fā)最初步驟,也是很關(guān)鍵一步。
第4章系統(tǒng)具體實(shí)現(xiàn)
界面是系統(tǒng)之間最直接交互界面,界面友好性表現(xiàn)了軟件設(shè)計(jì)質(zhì)量,并在很
大程度上決定了軟件是否成功。
4.1界面設(shè)計(jì)
4.1.1服務(wù)器開(kāi)啟界面圖
4.1.2服務(wù)器開(kāi)啟成功界面圖
-二天三正芳三三______Tm
服務(wù)(5群助出)
1口設(shè)置啟動(dòng)圖務(wù)停止服務(wù)痼
船務(wù)湍已經(jīng)啟動(dòng),在888硼口偵聽(tīng)
發(fā)誨至:斫有人▼
發(fā)送消息:[|發(fā)送
4.L3用戶端界面圖
■?:天空客戶建一。卜一1Ml
操作9)設(shè)苦(Q簫曲(山
用戶設(shè)置:連接設(shè)式登錄lil退出
發(fā)送至:18m人卜|表睛:|?^?卜|二肺i活
發(fā)送消息:命送
4.1.4用戶設(shè)置界面圖
-麻天空客戶場(chǎng)
操作9)設(shè)置gttah(H)
用戶設(shè)舌連拉破看登錄才匕|退出)
發(fā)送至:叵正]表情:微笑點(diǎn);▼運(yùn)
發(fā)送消息:送法
4.1.5用戶成功登錄界面圖
-——二.\Q-
操作9)設(shè)置&)劉助(W
用戶設(shè)密傳忸設(shè)警。錄注摘退出
連箔用務(wù)01270.018888成功
發(fā)送至:所有人▼表侑:|微笑的▼
E閽瑜話
(發(fā)送
發(fā)誨消息4
在線戶1人
4.1.6兩人私聊界面圖
-,="Q,
金?
iftBlO
-、;,aw笊出傅戶。K甚,&IH?X
MW用mo?i網(wǎng)成功―MSftSi?7ooisaascT)
12345601必3心心$力WW?奘0in4”gagg見(jiàn)s
12XX?M蛇貝ROOT12乂弘量巽電!岫303K3GXGX
::|卜|
HBkHMRM???i?:「情仙為▼□UM
a*B「炭x
>SM:
him戶2人
mw戶2人
4.1.7多人群聊界面圖
4.2程序設(shè)計(jì)及調(diào)試運(yùn)行
利用JCreator”一次編寫,各處運(yùn)行”編程優(yōu)點(diǎn),按功效模塊結(jié)構(gòu)設(shè)計(jì)菜單,部署
各明細(xì)模塊工作界面,編寫各個(gè)模塊程序代碼,進(jìn)行編譯連接運(yùn)行,經(jīng)過(guò)反復(fù)調(diào)
試修改,以達(dá)成系統(tǒng)功效要求。這個(gè)過(guò)程含有大量工作量,應(yīng)仔細(xì)對(duì)每個(gè)程序細(xì)
節(jié)進(jìn)行分析思索、編寫程序并調(diào)試,做到程序簡(jiǎn)練清楚,盡可能避免可能潛在程
序錯(cuò)誤,并在必需地方加以注釋,方便于程序閱讀和修改。
4.2.1程序調(diào)試(以服務(wù)器為例)
importjava.awt.
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing,event.
importjava.net.*;
importjava.io.*;
/*
*聊天服務(wù)端主框架類
*/
publicclassChatServerextendsJFrameimplementsActionlastener{
publicstaticiniport=8888;〃服務(wù)端偵聽(tīng)端口
ServerSocketserverSocket;//月艮務(wù)端Socket
Imageicon;〃程序圖標(biāo)
JComboBoxcombobox;//選擇發(fā)送消息接收者
JTextAreeimessageShow;〃服務(wù)端信息顯示
JScrollPanemessageScro11Pane;〃信息顯示滾動(dòng)條
JTcxtFieldshowStatus;〃顯示用戶連接狀態(tài)
JLabelsendToLabel,messageLabel;
JTextFieldsysMessage;〃服務(wù)端消息發(fā)送
JButtonsysMessageButton;//服務(wù)端消息發(fā)送按鈕
L'serLinkListuserLinkList;〃用戶鏈表
//建立菜單欄
JMenuBarjMenuBar=newJMenuBarO;
〃建立菜單組
JMenuserviccMcnu=newJMcnu("服務(wù)(V)”);
〃建立菜單項(xiàng)
JMenuItemportItem=newJMenuItem("端口設(shè)置(P)”);
JMenuItemstartltem=newJMenuItem("開(kāi)啟服務(wù)(S)〃);
JMenuIternstopltcm=newJMenuItcm("停止服務(wù)(T)”);
JMenuItemexitltem=newJMenuItem(“退出(X)”);
JMenuhelpMenu=newJMenu("幫助(H)”);
JMenuItemhelpltem=newJMenuItem("幫助(H)”);
〃建立工具欄
JToolBartoolliar=newJToolBar();
〃建立工具欄中按鈕組件
JBu11onportSet;//開(kāi)啟服務(wù)端偵聽(tīng)
JButtonstartServer;〃開(kāi)啟服務(wù)端偵聽(tīng)
JButtonslopServer;〃關(guān)閉服務(wù)端偵聽(tīng)
JButtonexitButton;〃退出按鈕
〃框架大小
DimensionfaceSize=newDimension(400,60C);
ServerListenlistenThread;
JPaneldownPane1;
GridBagLayoutgirdBag;
GridBagConstraintsgirdBagCon;
/**
*服務(wù)端結(jié)構(gòu)函數(shù)
*/
publicChalServerO{
init();〃初始化程序
〃添加框架關(guān)閉事件處理
this.sctDcfaultClosoOpcration(JFramc.EXITONCLOSE);
this,pack();
〃設(shè)置框架大小
this.setSize(faceSize);
〃設(shè)置運(yùn)行時(shí)窗口位置
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSizeO;
this.setLocation((int)(screenSize.width-faceSize.getWidthO)/2,
(int)(screenSize.height-faceSize.getHcight())/2);
this.setResizable(false);
this.setTitle("聊天室服務(wù)端〃);〃設(shè)置標(biāo)題
〃程序圖標(biāo)
icon=gctlmage("icon.gif");
this.setIcon:mage(icon);〃設(shè)置程序圖標(biāo)
show();
〃為服務(wù)菜單吧設(shè)置熱鍵'V'
serviccMonu.setMncmonic(fV');
〃為端口設(shè)置快捷鍵為c*l+p
portItem.setMnemonic('P');
portItem.setAccelerator(Keystroke.getKeyStroke
(KeyEvent.VK_P,InputEvent.CTRL_MASK));
〃為開(kāi)啟服務(wù)快捷鍵為CEl+S
startItern.setMnemonic('S');
startitem.setAccelerator(Keystroke.getKeyStroke
(KeyEvent.VK_S,InputEvent.CTRLMASK));
〃為端口設(shè)置快捷鍵為ctrl+T
stopitem.setMnemonic('T');
stopitem.setAccelerator(Keystroke.getKeyStroke
(KcyEvent.VK_T,InputEvent.CTRLMASK));
〃為退出設(shè)置快捷鍵為ctrl+x
exititem.setMnemonic('X');
exitltem.setAccelerator(Keystroke.getKeyStroke
(KcyEvent.VK_X,InputEvent.CTRLMASK));
〃為幫助菜單欄設(shè)置熱鍵'H'
helpMenu.setMnemonic('H');
〃為幫助設(shè)置快捷鍵為ctrl+p
hclpltcm.setMnemonic('H');
he1pltem.setAccelerator(Keystroke.getKeyStroke
(KeyEvent.VKH,InputEvent.CTRLMASK));
)
/**
*程序初始化函數(shù)
*/
publicvoidinit0{
Containercontentpane=getContentPane();
contentPcine.setLayout(newBorderLayout());
〃添加菜單欄
scrviccMcnu.add(portItem);
serviceMenu.add(startItem);
serviceMenu.add(stopitem);
serviceMenu.add(exitItem);
JMcnuBar.add(scrviccMcnu);
helpMenu.add(heIpItem);
JMenuBar.add(helpMenu);
setJMenuBar(jMenuBar);
〃初始化按鈕
portSet=newJButton(〃端口設(shè)置〃);
startServer=newJButton("開(kāi)啟服務(wù)”);
stopServer=newJButton("停止服務(wù)”);
exitButton=newJButton("退出”);
〃將按鈕添加到工具欄
toolBar.add(portSet);
toolBar.addSeparator();〃添加分隔欄
toolBar.add(startServer);
toolbar,add(stopServer);
toolBar.addSeparator();〃添加分隔欄
toolBar.add(exitButton);
contentpane,add(toolBar,BorderLayout.NCRTII);
〃初始時(shí),令停止服務(wù)按鈕不可用
stopServer.setEnabled(false);
stopitem.setEnabled(false);
〃為菜單欄添加事件監(jiān)聽(tīng)
portItem.addActionListener(this);
startltem.addActionListener(this);
stopitem.addActionListener(this);
exititem.addActionListener(this);
helpitem.addActionListener(this);
〃添加按鈕事件偵聽(tīng)
portSet.addActionListener(this);
startServer.addActionListener(this);
stopServer.addActionListener(this);
exitButton.addActionListener(this);
combobox=newJComboBox();
cornbobox.insertItemAt("全部些人",0);
combobox.setSelectedlndex(0);
messageShow=newJTextAreaO;
mcssagcShow.sctEditablc(falsc);
〃添加滾動(dòng)條
messageScrolIPane=newJScrolIPane(messageShow,
JScrollPane.VERTICALSCROLLBARAS.NEEDED,
JScrolIPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
messageScrolPane.setPreferredSize(newI)imension(400,400));
messageScrolTane.revalidate();
showStatus=newJTextField(35);
showStatus.setEditable(false);
sysMessage=newJTextField(24);
sysMessage.setEnabled(false);
sysMessageButton=newJButtonO;
sysMessageButton.setText("發(fā)送”);
〃添加系統(tǒng)消息事件偵聽(tīng)
sysMessage.addActionListener(this);
sysMessageButton.addActionListcner(this);
sendToLabel=newJLabel("發(fā)送至:”);
messageLabel=newJLabel("發(fā)送消息:”);
downPane1=newJPanel();
girdBag=nevGridBagLayout();
downPane1.setLayout(girdBag);
girdBagCon=newGridBagConstraintsO;
girdBagCon.gridx=0;
girdBagCon.gridy=0;
girdBagCon.gridwidth=3;
girdBcigCon.gridheight=2;
girdBagCon.ipadx=5;
girdBagCon.ipady=5;
JLabelnone=newJLabel("");
girdBag.setConstraints(none,girdBagCon);
downPane1.add(none);
girdBagCon=newGridBagConstraints();
girdBagCon.gridx=0;
girdBagCon.gridy=2;
girdBagCon.insets=newInsetsCl,0,0,0);
girdBagCon.ipadx=5;
girdBagCon.ipady=5;
girdBag.setConstraints(sendToLabel,girdBagCon);
downPane1.add(sendToLabel);
girdBagCon=newGridBagConstraints();
girdBagCon.gridx=1;
girdBagCon.gridy=2;
girdBagCon.anchor=GridBagConstraints.LINESTART;
girdBag.setConstraints(combobox,girdBagCon);
downPane1.add(combobox);
girdBagCon=newGridBagConstraints();
girdBagCon.gridx=0;
girdBagCon.gridy=3;
girdBag.setConstraints(messageLabel,girdBagCon);
downPane1.add(messageLabel);
girdBagCon=newGridBagConstraintsO;
girdBagCon.gridx=1;
girdBcigCon.gridy=3;
girdBag.setConstraints(sysMessage,girdBagCon);
downPane1.add(sysMcssage);
girdBagCon=newGridBagConstraintsO;
girdBagCon.gridx=2;
girdBagCon.gridy=3;
girdBag.setConstraints(sysMessageButton,girdBagCon);
downPane1.add(sysMessageButton);
girdBagCon=newGridBagConstraintsO;
girdBagCon.gridx=0;
girdBagCon.gridy=4;
girdBagCon.gridwidth=3;
girdBag.setConstraints(showStatus,girdBagCon);
downPane1.add(showStatus);
contentpane.add(messageScrolIPane,BorderLayout.CENTER);
contentPcine.add(downPane1,BorderLayout.SOUTH);
〃關(guān)閉程序時(shí)操作
this.addWindowListcncr(
newWindowAdapter(){
publicvoidwindowC1osing(WindcwEvente){
stopService();
System,exit(0);
)
1
);
)
/**
*事件處理
*/
publicvoidactionPerformed(ActionEvente){
Objectobj=e.getSourceO;
if(obj==startServer||obj==startitem){//開(kāi)啟服務(wù)端
startService();
}
elseif(obj=stopServer||obj==stopItem){〃停止服務(wù)端
intj=JOptionPane.showConfirmDia1og(
this,“真停止服務(wù)嗎?",〃停止服務(wù)”,
JOptionPane.YESJ)PTION,JOptionFane.QUESTION_MESSAGE);
if(j==JOptionPane.YES_OPTION){
stopService0;
)
)
elseif(obj==portSet||obj==portitem){〃端口設(shè)置
〃調(diào)出端口設(shè)置對(duì)話框
PortConfportConf=newPortConf(this);
portConf.show();
)
elseif(obj==exitButton|Iobj==exitItem){〃退出程序
intj=JOptionPane.showConfirmDialog(
this,“真要退出嗎?",〃退出”,
JOptionPane.YESOPTION,JOptionFane.QUESTIONMESSAGE);
if(j==JOptionPane.YES_OPTION){
stopScrviceO;
System,exit(0);
)
)
elseif(obj==he1pitcm){//菜單欄中幫助
〃調(diào)出幫助對(duì)話框
HelphelpDialog=newHelp(this);
helpDialog.show();
}
elseif(obj=sysMessage|obj==sysMessageliutton){//發(fā)送系統(tǒng)消息
sendSystemMessage0;
)
)
/**
*開(kāi)啟服務(wù)端
*/
publicvoidstartService(){
try(
servcrSocket=newScrvcrSockct(port,10);
messageShow.append("服務(wù)端已經(jīng)開(kāi)啟,在“+port+”端口偵聽(tīng)...\n");
startServer.setEnabled(false);
startlten.setEnabled(false);
portSet.setEnabled(false);
portltem.setEnabled(false);
stopServer.setEnabled(true);
stopitem.setEnabled(true);
sysMossagc.setEnabled(true);
}
catch(Exceptione){
//System.out.println(e);
)
userLinkList=newUserlJnkList();
listenThread=newServerListen(serverSocket,combobox,
messagoShow,showStatus,userLinkList);
1istenThread.start();
)
/**
*關(guān)閉服務(wù)端
*/
4.2.2JCreator
Jcreator是一個(gè)用于Java程序設(shè)計(jì)集成開(kāi)發(fā)環(huán)境,含有編輯、調(diào)試、運(yùn)行Java程
序功效。目前最新版本是Jcreato「3.10,它又分為L(zhǎng)E和Pro版本。LE版本功效上
受到部分限制,是無(wú)償版本。Pro版本功效最全,但這個(gè)版本是一個(gè)共享軟件。
這個(gè)軟件比較小巧,對(duì)硬件要求不是很高,完全用C++寫,速度快、效率高。含
有語(yǔ)法著色、代碼自動(dòng)完成、代碼參數(shù)提醒、工程向?qū)?、類向?qū)У裙π?。第一?/p>
開(kāi)啟時(shí)提醒設(shè)置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動(dòng)設(shè)置好類路徑、
編譯器及解釋器路徑,還能夠在幫助菜單中使用JDKHelpo
4.3本章小結(jié)
本章介紹了系統(tǒng)具體實(shí)現(xiàn)和部分關(guān)鍵代碼,其中包含用戶登錄所要用到函數(shù)
和主界面框架設(shè)計(jì)。
第5章結(jié)束語(yǔ)
本文討論了怎樣利用JAVA技術(shù)開(kāi)發(fā)聊天室系統(tǒng),基礎(chǔ)滿足了結(jié)構(gòu)化、界面
友好、速度快、安全性和穩(wěn)定性等特點(diǎn)。
系統(tǒng)著重研究并實(shí)現(xiàn)了網(wǎng)絡(luò)應(yīng)用部分。依據(jù)實(shí)現(xiàn)情況看,含有較友好聊天界
面生成效果,和流暢網(wǎng)絡(luò)通信效果。生成聊天室能夠達(dá)成基礎(chǔ)聊天要求,含有較
高研究?jī)r(jià)值。
系統(tǒng)含有現(xiàn)在聊天室基礎(chǔ)功效:包含支持語(yǔ)氣選擇,支持私聊,能夠給全部
聊友發(fā)公共信息,含有速度快,高穩(wěn)定性,占用系統(tǒng)資源少,用戶界面友好等特
點(diǎn)。
經(jīng)過(guò)畢業(yè)設(shè)計(jì),發(fā)覺(jué)自己在理論研究和實(shí)際工作能力等方面全部得到了提
升,受益匪淺,同時(shí)在老師指導(dǎo)利課題組同學(xué)共同幫助下,立即總結(jié)研究結(jié)果,
這些無(wú)疑會(huì)對(duì)我以后工作和學(xué)習(xí)帶來(lái)很大幫助。
致謝
附錄源代碼
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
import.*;
importjava.io.*;
/*
*聊天服務(wù)端主框架類
*/
publicclassChatServerextendsJFrameimplementsActionListenerl
publicsialicintport=8888;〃服務(wù)端偵聽(tīng)端口
ServerSocketserverSocset;〃服務(wù)端Socket
Image沁on;〃程序圖標(biāo)
JComboBoxcombobox;〃選擇發(fā)送消息接收者
JTcxtArcamessageShow;〃服務(wù)端信息顯示
JScrollPanemessageScrollPaneJ/信息顯示滾動(dòng)條
JTextFieldshowSlatus;〃顯示用戶連接狀態(tài)
JLabelsendToLabel.messageLabel;
JTextFieldsysMessage::/服務(wù)端消息發(fā)送
JBultonsysMessageBullon;〃服務(wù)端消息發(fā)送按鈕
UserLinkListuserLinkList;〃用戶鏈表
〃建立菜單欄
JMenuBarjMenuBar=lewJMenuBar();
〃建立菜單組
JMenuserviceMenu=newJMenu("服務(wù)(V)”);
〃建立菜單項(xiàng)
JMenuItemportItem=newJMenuItem("端口設(shè)置(P)”);
JMenuItenisiartltem=newJMenuItem("開(kāi)啟服務(wù)(S)”);
JMenuItemstopltem=newJMenuIiein("停止服務(wù)(T)");
JMenuItemcxiiliefn=ncwJMcnii【【cni("退出(X)");
JMcnuhelpMenu=ncwJMenu("幫助(H)");
JMenullemhelpltem=ncwJMenuItem("幫助(H)");
〃建立工具欄
JToolBartoolBar=newJToolBarQ;
〃建立工具欄中按鈕組件
JButionponSet;〃咒:啟服務(wù)端彳貞明:
JButtonstartServer:〃開(kāi)啟服務(wù)端偵聽(tīng)
JButtonsiopServer;〃關(guān)閉服務(wù)端偵聽(tīng)
JBulloncxilBullon;〃退出按鈕
〃框架大小
DimensionfaccSizc=newDimcnsion(4()0.60());
ServerListenlistenThread;
JPaneldownPanel;
GridBagLayoutgirdBag;
GridBagConstraintsgirdBagCon;
/*?
,服務(wù)端結(jié)構(gòu)函數(shù)
*/
publicChatServer(){
init();〃初始化程序
〃添加框架關(guān)閉事件處理
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
〃設(shè)置框架大小
this.setSize(faceSize);
〃設(shè)置運(yùn)行時(shí)窗口位置
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((int)(screenSize.width-faceSize.get\Vidth())/2,
(int)(screenSize.height-faceSize.getHeight())/2);
this.setResizable(false);
this.selTitle("聊天室服務(wù)端)〃設(shè)置標(biāo)題
〃程序圖標(biāo)
icon=gethnage("icon.gif');
this.setlconlmage(icon);〃設(shè)置程序圖標(biāo)
show。;
〃為服務(wù)菜單欄設(shè)理熱鍵V
serviccMenu.sctMnenionic('V');
〃為端口設(shè)置快提鍵為ctrl+p
portitem.sctMncir.onic('P1);
portltein.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P.InputEvent.CTRL_MASK));
〃為開(kāi)啟服務(wù)快捷鍵為cirl+s
startitem.setMnemonic('S');
start!tem.setAcceisrator(KeyStroke.getKeyStroke(KeyEvent.VK_S.InputEvent.CTRL_MASK));
〃為端口設(shè)置快捷鍵為ciH+T
siophcm.setMnemonic(T);
stopitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
〃為退出設(shè)置快捷鍵為ctrl+x
exitlteni.setMnemonic('X');
exitltem.setAccelerator(KeyStroke.getKeyStroke(KeyEvenl.VK_X,InpulEvent.CTRL_MASK));
〃為幫助菜單欄設(shè)置熱鍵H
helpMenu.setMnemonic('H');
〃為幫助設(shè)置快捷鍵為cirl+p
helpitem.setMnemonic('H');
helpitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MAS<));
*程序初始化函數(shù)
?/
publicvoidinit(){
ContainercontentPane=gelCon(entPane();
contentPane.sclLayout(newBorderLayouK));
〃添加菜單欄
serviceMenu.add(portitem);
serviccMcnu.add(startitem);
scniceMcnu.add(slopllem);
scrviccMcnu.add<cxitltcm);
jMenuBar.add(serviceMenu);
helpMenu.add(helpltem);
jMenuBar.add(helpMenu);
setJMenuBar(jMenuBar);
〃初始化按鈕
portSet=newJBiUon("端口設(shè)置");
startServer=newJButton("開(kāi)啟服務(wù)");
stopServer=newJButton("停止服務(wù)");
cxitBulton=newJBullon("退出");
〃將按鈕添加到工具欄
toolBar.add(portSet);
toolBar.addSepara(or()^/i^S加分隔欄
toolBar.add
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度快餐連鎖加盟合同協(xié)議書3篇
- 西南石油大學(xué)《體育課程標(biāo)準(zhǔn)及教學(xué)研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年智慧交通管理系統(tǒng)經(jīng)濟(jì)合同2篇
- 武漢鐵路橋梁職業(yè)學(xué)院《影視特效處理(AE)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度酒店行業(yè)勞動(dòng)合同與客戶信息保密協(xié)議3篇
- 2025年度城市基礎(chǔ)設(shè)施建設(shè)PPP合作合同范本3篇
- 2025年屋頂光伏發(fā)電系統(tǒng)組件供應(yīng)合同2篇
- 2024房產(chǎn)中介服務(wù)合同
- 買賣雙方商業(yè)合作詳細(xì)合同范本版B版
- 蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院《當(dāng)代西方倫理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 公共交通乘客投訴管理制度
- 不銹鋼伸縮縫安裝施工合同
- 水土保持監(jiān)理總結(jié)報(bào)告
- Android移動(dòng)開(kāi)發(fā)基礎(chǔ)案例教程(第2版)完整全套教學(xué)課件
- 醫(yī)保DRGDIP付費(fèi)基礎(chǔ)知識(shí)醫(yī)院內(nèi)培訓(xùn)課件
- 專題12 工藝流程綜合題- 三年(2022-2024)高考化學(xué)真題分類匯編(全國(guó)版)
- DB32T-經(jīng)成人中心靜脈通路裝置采血技術(shù)規(guī)范
- 【高空拋物侵權(quán)責(zé)任規(guī)定存在的問(wèn)題及優(yōu)化建議7100字(論文)】
- TDALN 033-2024 學(xué)生飲用奶安全規(guī)范入校管理標(biāo)準(zhǔn)
- 物流無(wú)人機(jī)垂直起降場(chǎng)選址與建設(shè)規(guī)范
- 冷庫(kù)存儲(chǔ)合同協(xié)議書范本
評(píng)論
0/150
提交評(píng)論