freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java聊天室系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-08-24 10:14 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 用戶信息接收信息圖 4 系統(tǒng)頂級(jí)數(shù)據(jù)流圖管理員的操作經(jīng)過(guò)聊天室系統(tǒng)將反饋給管理員自己和用戶。情況 1:管理員啟動(dòng)服務(wù)器,管理員界面將出現(xiàn)用戶連接信息和用戶的聊天信息,用戶在登錄后可以進(jìn)入到聊天界面中。情況 2:管理員停止服務(wù)器,管理員界面中所有的用戶信息都將不再刷新,而用戶所在聊天界面都將有服務(wù)器停止的提示。用戶的操作經(jīng)過(guò)聊天室系統(tǒng)將反饋給用戶(包括自己)和管理員。用戶的用戶名,聊天信息在管理員界面都可以顯示出來(lái)。用戶的聊天信息可以在自己和其他用戶的界面上顯示。管理員界面二級(jí)數(shù)據(jù)流圖:圖 5 管理員界面二級(jí)數(shù)據(jù)流圖我們也可以得到聊天室界面的二級(jí)數(shù)據(jù)流圖:圖 6 聊天室界面二級(jí)數(shù)據(jù)流圖 系統(tǒng)數(shù)據(jù)分析在仔細(xì)調(diào)查聊天室過(guò)程的基礎(chǔ)上,總結(jié)出該系統(tǒng)需要滿足以下系統(tǒng)數(shù)據(jù)的需求:系統(tǒng)管理員資料。包括管理員用戶名和管理員密碼。用戶信息記錄用戶的資料。包括用戶的用戶名、登錄密碼、真實(shí)姓名、電話、傳真、所屬地區(qū)。聊天室系統(tǒng)總體 ER 圖如圖 7 所示:登錄界面 用戶名,密碼核對(duì)聊天室界面發(fā)送聊天信息接收聊天信息查看連接狀態(tài)口令錯(cuò)誤口令核對(duì)口令正確登錄界面 用戶名,密碼核對(duì)管理員界面啟動(dòng)/停止服務(wù)器查看在線用戶人數(shù)查看用戶聊天信息口令核對(duì)口令正確口令錯(cuò)誤客戶 管理員客戶管理聊天 管理圖 7 聊天室系統(tǒng)總體 ER 圖聊天室系統(tǒng)管理員屬性圖如圖 8 所示:管理員 管理員密碼管理員用戶名圖 8 管理員屬性圖聊天室系統(tǒng)客戶個(gè)人資料屬性圖如圖 9 所示:客戶用戶名傳真 真實(shí)姓名電話密碼地區(qū)圖 9 客戶個(gè)人資料屬性圖 系統(tǒng)可行性分析從技術(shù)發(fā)面來(lái)看,Java 語(yǔ)言的優(yōu)點(diǎn)主要表現(xiàn)在:簡(jiǎn)單、面向?qū)ο蟆⒍嗑€程、安全性等方面。 (1)簡(jiǎn)單性 Java 與 C++語(yǔ)言非常相近,但 Java 比 C++簡(jiǎn)單,它拋棄了 C++中的一些不是絕對(duì)必要的功能,如頭文件、預(yù)處理文件、指針、結(jié)構(gòu)、運(yùn)算符重載、多重繼承以及自動(dòng)強(qiáng)迫同型。Java 實(shí)現(xiàn)了自動(dòng)的垃圾收集,簡(jiǎn)化了內(nèi)存管理的工作。這使程序設(shè)計(jì)更加簡(jiǎn)便,同時(shí)減少了出錯(cuò)的可能。 (2)面向?qū)ο? Java 提供了簡(jiǎn)單的類機(jī)制和動(dòng)態(tài)的構(gòu)架模型。對(duì)象中封裝了它的狀態(tài)變量和方法,很好地實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,通過(guò)繼承和重載機(jī)制,子類可以使用或重新定義父類或超類所提供的方法,從而既實(shí)現(xiàn)了代碼的復(fù)用,又提供了一種動(dòng)態(tài)的解決方案。 Java 是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它除了數(shù)組、布爾和字符三個(gè)基本數(shù)據(jù)類型外的其它類都是對(duì)象,它不再支持全局變量。在 Java 中,如果不創(chuàng)建新類就無(wú)法創(chuàng)建程序, Java 程序在運(yùn)行時(shí)必須先創(chuàng)建一個(gè)類的實(shí)例,然后才能提交運(yùn)行。 Java 同樣支持繼承特性,Java 的類可以從其它類中繼承行為,但 Java 只支持類的單重繼承,即每個(gè)類只能從一個(gè)類中繼承。 Java 支持界面,界面允許程序員定義方法但又不立即實(shí)現(xiàn),一個(gè)類可以實(shí)現(xiàn)多個(gè)界面,利用界面可以得到多重繼承的許多優(yōu)點(diǎn)而又沒(méi)有多重繼承的問(wèn)題。 (3)多線程 多線程使應(yīng)用程序可以同時(shí)進(jìn)行不同的操作,處理不同的事件。在多線程機(jī)制中,不同的線程處理不同的任務(wù),他們之間互不干涉,不會(huì)由于一處等待影響其他部分,這樣容易實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互操作。 Java 程序可以有多個(gè)執(zhí)行線程,如可以讓一個(gè)線程進(jìn)行復(fù)雜的計(jì)算,而讓另一個(gè)線程與用戶進(jìn)行交互,這樣用戶可以在不中斷計(jì)算線程的前提下與系統(tǒng)進(jìn)行交互。多線程保證了較高的執(zhí)行效率[5]。(4)安全性用于網(wǎng)絡(luò)、分布環(huán)境下的 Java 必須要防止病毒的入侵,Java 不支持指針,一切對(duì)內(nèi)存的訪問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止了程序員使用欺騙手段訪問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。從開(kāi)發(fā)環(huán)境來(lái)看 ,JBuilder5 是一組全面高效率工具,使用 Java 編程語(yǔ)言創(chuàng)建可伸縮的,高性能的和具有不依賴于平臺(tái)性能的應(yīng)用程序。JBuilder5 新增幾個(gè)新功能,并對(duì)已有的功能進(jìn)行了改造,包括一個(gè)單步產(chǎn)品安裝過(guò)程,以及自動(dòng)卸載功能。其他功能還有:對(duì) JAVA 的支持,WEB 應(yīng)用開(kāi)發(fā),Enterprise JavaBeans(EJB),JMS 和 EAR 向?qū)?,團(tuán)隊(duì)開(kāi)發(fā),編譯器的增強(qiáng)功能,工程屬性,配置 JDK,部署,IDE 的增強(qiáng)功能,語(yǔ)言的支持 [1]。從自身能力來(lái)看,本人在大學(xué)三年級(jí)時(shí)對(duì) Java 語(yǔ)言進(jìn)行過(guò)一個(gè)學(xué)期的系統(tǒng)學(xué)習(xí),對(duì) Java 有一定的了解和掌握。雖然對(duì) Java 的網(wǎng)絡(luò)編程不是很熟悉,但是通過(guò)到圖書(shū)館查閱書(shū)籍和網(wǎng)上收集資料,現(xiàn)在對(duì) Java 網(wǎng)絡(luò)編程有了一定的了解。 第 4 章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是本系統(tǒng)開(kāi)發(fā)的重要階段,它直接影響到目標(biāo)系統(tǒng)的質(zhì)量,是整個(gè)開(kāi)發(fā)工作的核心。系統(tǒng)設(shè)計(jì)階段的主要任務(wù)是:在系統(tǒng)分析提出的邏輯模型的基礎(chǔ)上,科學(xué)合理地進(jìn)行物理模型設(shè)計(jì)。系統(tǒng)設(shè)計(jì)分為:總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)包括子系統(tǒng)的劃分和模塊設(shè)計(jì),詳細(xì)設(shè)計(jì)包括各模塊的詳細(xì)描述、輸入輸出設(shè)計(jì)等。系統(tǒng)設(shè)計(jì)遵循的原則是:系統(tǒng)性、適應(yīng)性、穩(wěn)健性、經(jīng)濟(jì)性。 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)是用 Java 語(yǔ)言基于 C/S 開(kāi)發(fā)設(shè)計(jì)的,其核心的 Socket 技術(shù)決定了該系統(tǒng)的安全性和穩(wěn)定性,從而保證了本系統(tǒng)有較強(qiáng)的使用性。其最重要的功能就是實(shí)現(xiàn)了聊天信息的快速性,改變了傳統(tǒng)的面對(duì)面聊天信息不確定因素多,安全性低的狀況。聊天室設(shè)計(jì)圖如圖 10 所示。服務(wù)器客戶代理 客戶端線程用戶名用戶Socket圖 10 聊天室設(shè)計(jì)圖 服務(wù)器使用多線程,每個(gè)線程對(duì)應(yīng)一個(gè)客戶端,但線程通過(guò)客戶代理同客戶端交流,在客戶代理中有兩個(gè)重要信息:一個(gè)是用戶名,一個(gè)是用戶名對(duì)應(yīng)的 Socket。客戶向服務(wù)器請(qǐng)求連接后,客戶代理的 Socket 字段便被實(shí)例化,當(dāng)用戶登錄后,客戶代理的用戶名字段被實(shí)例化,一個(gè)完整的客戶代理生成了。對(duì)客戶端來(lái)說(shuō)用戶名是可見(jiàn)的,客戶端提供對(duì)用戶名的操作。對(duì)服務(wù)器端來(lái)說(shuō),Socket 是可見(jiàn)的,服務(wù)器通過(guò)用戶名操作 Socket,進(jìn)而回應(yīng)客戶端的請(qǐng)求?;?C/S 的 Java 聊天室系統(tǒng)的作用是提供給人們一個(gè)平臺(tái)進(jìn)行相互交流,在交流的過(guò)程中可能出現(xiàn)的情況也是不同的。因此,可將系統(tǒng)分成兩大模塊:服務(wù)器端模塊和客戶端模塊。系統(tǒng)功能模塊圖如圖 11 所示:基于 JAVA 實(shí)現(xiàn)聊天室服務(wù)器端 客戶端管理員登錄服務(wù)器管理用戶登錄聊天室啟動(dòng),停止服務(wù)器當(dāng)前連接人數(shù)用戶聊天信息 連接服務(wù)器 接收信息 認(rèn)證用戶 連接狀態(tài) 顯示信息 發(fā)送信息圖 11 系統(tǒng)功能模塊圖1.服務(wù)器端模塊介紹:該模塊分為管理員登錄和服務(wù)器管理兩個(gè)子模塊。首先,管理員登錄是指管理員通過(guò)輸入用戶名和密碼進(jìn)入到管理員界面,即系統(tǒng)的服務(wù)器端。而服務(wù)器管理是指管理員進(jìn)入到服務(wù)器端界面后,對(duì)系統(tǒng)的服務(wù)器端所做的一些操作,如啟動(dòng)、停止服務(wù)器,查看當(dāng)前用戶連接人數(shù),和用戶的聊天信息。客戶端模塊介紹:該模塊分為用戶登錄和聊天室兩個(gè)子模塊。首先,用戶登錄是指用戶通過(guò)輸入用戶名和密碼進(jìn)入到聊天室中,并且聊天室自動(dòng)連接上服務(wù)器。聊天室模塊是指系統(tǒng)聊天室所具有的基本功能,如發(fā)送、接收信息,查看當(dāng)前和服務(wù)器連接狀態(tài),顯示發(fā)送和接收的信息。 數(shù)據(jù)庫(kù)設(shè)計(jì)本次數(shù)據(jù)庫(kù)開(kāi)發(fā)工具為 Microsoft SQL Server 2022,具體設(shè)計(jì)的表單如下:表 1 用戶信息表字段名 類型 大小 允許空 備注username nvarchar 20 否 用戶名password nvarchar 20 否 密碼Truename nvarchar 10 是 真實(shí)姓名country nvarchar 16 是 所屬地區(qū)fav nvarchar 20 是 傳真tel nvarchar 20 是 電話表 2 管理員信息表字段名 類型 大小 允許空 備注username nvarchar 20 否 用戶名password nvarchar 20 否 密碼 系統(tǒng)功能模塊詳細(xì)設(shè)計(jì)管理員登錄模塊流程圖如圖 12 所示: 開(kāi)始輸入用戶名與密碼查詢數(shù)據(jù)庫(kù)是否有這條記錄?進(jìn)入管理員界面提示用戶名或密碼錯(cuò)誤結(jié)束圖 12 管理員登錄模塊流程圖下面對(duì)管理員登錄程序流程圖做簡(jiǎn)要敘述。首先,管理員在登錄界面中輸入管理員用戶名和密碼,并向系統(tǒng)發(fā)送。系統(tǒng)在收到發(fā)送信息后查詢數(shù)據(jù)庫(kù),如果在數(shù)據(jù)庫(kù)中存有相同的信息,則運(yùn)行管理員界面。如果在數(shù)據(jù)庫(kù)中沒(méi)有相同信息,則系統(tǒng)提示錯(cuò)誤,并返回登錄界面。服務(wù)器管理模塊流程圖如圖 13 所示:管理員身份驗(yàn)證管理員界面關(guān)閉服務(wù)器啟動(dòng)服務(wù)器 查看在線用戶人數(shù)開(kāi)始結(jié)束提示用戶名或密碼錯(cuò)誤正確 錯(cuò)誤查看聊天信息圖 13 服務(wù)器管理模塊流程圖圖 14 用戶登錄模塊流程圖開(kāi)始輸入用戶名與密碼查詢數(shù)據(jù)庫(kù)是否有這條記錄?進(jìn)入聊天室界面提示用戶名或密碼錯(cuò)誤結(jié)束服務(wù)器端顯示下面對(duì)服務(wù)器管理程序流程圖做簡(jiǎn)要敘述。首先,管理員通過(guò)登錄界面進(jìn)入到管理員界面中。在此界面中可以實(shí)現(xiàn)對(duì)系統(tǒng)服務(wù)器的啟動(dòng)和關(guān)閉,查看在線用戶人數(shù)和用戶的聊天信息。用戶登錄模塊流程圖如圖 14 所示:下面對(duì)用戶登錄程序流程圖做簡(jiǎn)要敘述。首先,用戶在登錄界面中輸入用戶名和密碼經(jīng)過(guò)系統(tǒng)驗(yàn)證后進(jìn)入到聊天室中,同時(shí),如果服務(wù)器已經(jīng)啟動(dòng),系統(tǒng)自動(dòng)將聊天室連接上服務(wù)器,用戶可以使用聊天室,并且在服務(wù)器端有用戶登錄的提示。如果服務(wù)器沒(méi)有啟動(dòng),則用戶可以進(jìn)入到聊天室,但是使用不了聊天室。聊天室模塊流程圖如圖 15 所示??梢詫?duì)聊天室程序流程圖做這樣的簡(jiǎn)要敘述:用戶在登錄界面中輸入用戶名和密碼進(jìn)入到聊天室中。在此界面中用戶可以實(shí)現(xiàn)向其他用戶發(fā)送信息,接收其他用戶發(fā)送的信息,查看當(dāng)前和服務(wù)器的連接狀態(tài)。圖 15 聊天室模塊流程圖用戶開(kāi)始結(jié)束身份驗(yàn)證聊天室查看連接狀態(tài)接收信息發(fā)送信息提示用戶名或密碼錯(cuò)誤正確錯(cuò)誤查看聊天信息第 5 章 編碼與實(shí)現(xiàn) 系統(tǒng)主要模塊代碼 啟動(dòng)、停止服務(wù)器class Serverchat extends Thread{public Serverchat(){ try{intPort=(textPort)。 IAddress host=()。(()++())。 ss=new ServerSocket(intPort)。 ssLive=()。display(服務(wù)器已啟動(dòng)!)。 }catch(Exception e){ display(服務(wù)器已關(guān)閉!)。}()。}public void run(){while(true){ try{clientSk=()。if(clientSk!=null){ display(clientSk+join in )。} } catch(IOException e){display(無(wú)法監(jiān)聽(tīng)!)。}int i=0。do{ Connect c=new Connect(clientSk)。(c)。if(checkName(c)){activeConnects++。 }else{(TAKEN)。disconnect(c)。} i++。 break。}while(i())。 }} } 客戶端連接服務(wù)器class Clientchat extends Thread{public Clientchat(){try{loginName=()。intPort=(())。ipAdd=new String(())。sk=new Socket(ipAdd,intPort)。fromS
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1