管理系統(tǒng)-可行性研究報告_第1頁
管理系統(tǒng)-可行性研究報告_第2頁
管理系統(tǒng)-可行性研究報告_第3頁
管理系統(tǒng)-可行性研究報告_第4頁
管理系統(tǒng)-可行性研究報告_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、山西大學計算機與信息技術(shù)學院 x管理系統(tǒng)程序設計: 指導教師: 可行性分析報告1引言需求規(guī)格說明書是需求分析的產(chǎn)物,它是軟件系統(tǒng)生存期中軟件定義階段的最后一個步驟。作為整個軟件開發(fā)過程的指南,它也是軟件開發(fā)人員開發(fā)出符合用戶要求的軟件的基礎。1.1編寫目的軟件需求說明書的編制目的是為了使用戶和軟件開發(fā)者雙方對該軟件的初始規(guī)定有一個共同的理解;使之成為整個開發(fā)工作的基礎。本軟件需求說明書的讀者是系統(tǒng)開發(fā)人員或合同約定的人負。1.2背景a.軟件系統(tǒng)名稱:山西大學計算機科學與信息技術(shù)學院xxb.本項目任務的提出者:計算機科學與信息技術(shù)學院2010級 c.本項目的開發(fā)者為: 計算機科學與信息技術(shù)學院2

2、010級 d.該軟件系統(tǒng)同其他系統(tǒng)或其他機構(gòu)的基本的相互來往關(guān)系: xxxxxxxxxxxxxxxxxx2.可行性研究的前提2.1要求功能:這是一個xxxx系統(tǒng),主要負責xxxxxxxxxxxx(本軟件的功能)2.2目標目前xxxxxxxxxxxxxxxxxxxxxxxx(現(xiàn)在已有的軟件狀況)2.3條件、假定和限制a.編程實戰(zhàn)經(jīng)驗不足。b.進行系統(tǒng)方案選擇和設計的時間較短。3.對現(xiàn)有系統(tǒng)的分析3.1處理流程和數(shù)據(jù)流程a.軟件服務方面:軟件通過讀取有關(guān)的貨物存儲信息,反饋給使用者3.2工作負荷僅僅使用本地資源,所以工作負荷基本沒有3.3費用開支軟件需要少量的維護使用費用3.4人員需要數(shù)據(jù)維護人員

3、對數(shù)據(jù)的維護3.5設備個人主機,信息存儲服務器(硬盤)3.6局限性 系統(tǒng)比較封閉,暫時無法進行網(wǎng)絡查詢服務4.所建議的系統(tǒng) Windows 95/98/xp/20034.1對所建議系統(tǒng)的說明a.功能概括:(1)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(2)對用戶信息進行增加、刪除、更改b.系統(tǒng)環(huán)境以及工具系統(tǒng)運行環(huán)境:Windows xp/2003編程語言:visual c+ 6.0數(shù)據(jù)庫:無4.2處理流程和數(shù)據(jù)流程處理流程:客戶端存儲系統(tǒng)(或服務器)客戶端數(shù)據(jù)流程:客戶請求登陸信息:存儲系統(tǒng)(或服務器)4.3改進之處本軟件系統(tǒng)暫時不依賴外部網(wǎng)絡,僅能在本機上

4、查詢使用,建議后續(xù)版本建立局域網(wǎng)(互聯(lián)網(wǎng)查詢功能)4.4影響4.4.1.對設備的影響不明4.4.2.對軟件的影響不明4.4.3.對用戶單位機構(gòu)的影響使用該系統(tǒng),客戶原有體系幾乎不需要太大的變化,這是個xxxxx件,對人員技術(shù)的要求不高,只要用戶會簡單的計算機操作即可4.4.4.對系統(tǒng)運行過程的影響該系統(tǒng)工作量小,一般情況下不會由于信息量大而造成麻煩。4.4.5.對開發(fā)的影響不明4.4.6.對地點和設施的影響暫時不需要特殊的設備,以后網(wǎng)絡版可能需要添置服務器4.5技術(shù)條件方面的可能性Visual C+ 語言穩(wěn)定可靠,適用范圍廣 5.可選擇的其他系統(tǒng)方案由于該系統(tǒng)的結(jié)構(gòu)比較簡單、開發(fā)時間倉促,故只

5、使用這一個方案,無其他備用方案。6.社會因素方面的可能性使用方面的可行性:物理行業(yè),商店需要貨物進出,商場、超市也需要,所以引用范圍廣泛, 7.結(jié)論經(jīng)過了我們整個的可行性研究報告的研究,最終我們得出了一個研究的結(jié)論。結(jié)論是:我們可以立即執(zhí)行我們的軟件設計,來達到我們的預期目標。軟件需求說明書1引言需求規(guī)格說明書是需求分析的產(chǎn)物,它是軟件系統(tǒng)生存期中軟件定義階段的最后一個步驟。作為整個軟件開發(fā)過程的指南,它也是軟件開發(fā)人員開發(fā)出符合用戶要求的軟件的基礎。1.1編寫目的軟件需求說明書的編制目的是為了使用戶和軟件開發(fā)者雙方對該軟件的初始規(guī)定有一個共同的理解;使之成為整個開發(fā)工作的基礎。本軟件需求說明

6、書的讀者是系統(tǒng)開發(fā)人員或合同約定的人員。1.2背景(1)本系統(tǒng)的名稱是:(2)開發(fā)者是計算機科學與信息技術(shù)學院2010軟件一班 用戶面向物流也以及商業(yè)部門實現(xiàn)該軟件的對象:企業(yè)及個人局域網(wǎng)內(nèi)部使用。1.3參考資料引用資料 c+程序設計 清華大學出版社 標準c+庫大全 電子工業(yè)出版社 visual c+ 6.0 編程基礎與范例 電子工業(yè)出版社 visual c+庫大全 電子工業(yè)出版社2任務概述2.1目標局域網(wǎng)即時通信軟件是現(xiàn)代網(wǎng)絡通信技術(shù)的重要內(nèi)容,也是萬維網(wǎng)通信技術(shù)的基礎性工作。局域網(wǎng)即時通信軟件在開發(fā)過程中有很多不利于實現(xiàn)的地方,不適應現(xiàn)代的網(wǎng)絡通信任務。局域網(wǎng)即時通信軟件是局域網(wǎng)企業(yè)內(nèi)部及

7、個人局域網(wǎng)內(nèi)部不實現(xiàn)信息化、規(guī)范化,使工作效率及重要信息的可靠傳遞。2.2用戶的特點本軟件的用戶是需要對貨物2.3假定和約束a.可利用的信息和資源比較單一,客戶的需求分析主要來自開發(fā)者在計算機科學與信息技術(shù)學院學習和生活過程中的一些問題;而技術(shù)方面,對Mysql等數(shù)據(jù)庫軟件和Java、以及網(wǎng)絡編程的掌握和應用還有待提高,不足之處靠借閱有關(guān)書籍和向老師請教進行補充,組內(nèi)成員間相互討論分析決定。c.經(jīng)費不足d.進行系統(tǒng)方案選擇比較的時間較短。e.系統(tǒng)投入使用的時間最晚為本學期末3需求規(guī)定3.l對功能的規(guī)定3.l.1系統(tǒng)功能主要分為客戶端發(fā)送接收消息和服務器數(shù)據(jù)庫管理和處理.通信系統(tǒng)功能部分分為2類

8、:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有三種用戶:超級管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來,我們把各個相對獨立的功能完全獨立設計,編譯成獨立的目標(功能)模塊,各功能模塊最后被集成到一控制臺模塊中.相應的將系統(tǒng)分為一個控制臺程序和兩個子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復解釋,在每個模塊中只列出每個子模塊區(qū)別于其他子模塊的功能實現(xiàn).3.1.2數(shù)據(jù)流圖詳見局域網(wǎng)即時通信軟件

9、詳細設計說明書3.2對性能的規(guī)定靈活性(l)操作方式上應該能夠滿足鼠標和鍵盤任意切換的需要;(2)能夠支持Windows95、Windows98、Windows2000、WindowsMe和WindowsXP的運行環(huán)境;(3)留有與其他系統(tǒng)的接口。3.3輸入輸出要求輸入:本即時通信軟件所要求的字符格式與文件格式,否則無法傳輸文件及收發(fā)文字信息。輸出:本軟件提供用戶打印聊天記錄功能。3.4故障處理要求在輸入不符合定義格式的數(shù)據(jù)時,軟件應出現(xiàn)提示信息,而不是死機或刪除已經(jīng)輸入的信息,然后再彈出輸入界面重新開始。4運行環(huán)境規(guī)定4.1設備運行本軟件要求處理器在奔騰III以上、內(nèi)存在256MB以上的計算

10、機。4.2支持軟件A.windows2000以上的操作系統(tǒng)或RedHatLinuxAS5:這兩個操作系統(tǒng)是主要的軟件,此系統(tǒng)開發(fā)過程在除了文檔的編寫,其它的工作都在這兩個操作系統(tǒng)中進行,這兩個操作系統(tǒng)在開發(fā)過程中承擔重要的開發(fā)任務B.Eclipse3.4編程工具:它作為一個集成開發(fā)工具,提供了部分的代碼自動生成和可視化的資源編輯功能,在此系統(tǒng)開發(fā)過程中主要承擔代碼的編寫任務C.MySQL5.1應用軟件:Mysql數(shù)據(jù)庫軟件是一種使用極其方便的數(shù)據(jù)庫軟件,在處理少量數(shù)據(jù)是很好的,不但操作簡單、效率高,而且適用于多種操作系統(tǒng)的適用,最重要的是它是一個免費的數(shù)據(jù)庫軟件,不會涉及版權(quán)問題,節(jié)約了大量的

11、開發(fā)資金4.3接口本軟件通過若干個中間表實現(xiàn)與其他軟件的通信。4.4控制本軟件通過“昵稱登入”模塊進行用戶登錄的控制,根據(jù)不同用戶的昵稱調(diào)用不同的模塊。其他模塊控制情況照此描述。(l)驗證軟件需求需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎,一旦對目標系統(tǒng)提出完整、具體的要求并寫出了軟件需求說明書之后,就必須嚴格驗證這些需求的正確性。通常,從以下4個方面進行驗證。一致性:所有需求必須是一致的,任何一條需求都不能和其他需求相矛盾。完整性:需求必須是完整的,軟件需求說明書應該包含用戶對軟件產(chǎn)品的每一項要求?,F(xiàn)實性:指定的需求應該用現(xiàn)有的硬件技術(shù)和軟件技術(shù)可以實現(xiàn)。有效性:需求必須是有效的,確實能

12、解決用戶所面臨的問題,可以達到開發(fā)軟件的目標。軟件概要設計1引言軟件概要設計主要是一個把軟件需求轉(zhuǎn)化為軟件表示的過程,這種表示只是描述出軟件總的概貌。1.1編寫目的概要設計說明書編制的目的是:說明對程序系統(tǒng)的設計考慮,包括程序系統(tǒng)的基本處理I流程、程序系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、接口設計、運行設計、數(shù)據(jù)結(jié)構(gòu)設計和出錯處理設計等,為程序的詳細設計提供基礎。本軟件概要說明書的讀者是系統(tǒng)開發(fā)人員或合同約定的人員。1.2背景(1) 本系統(tǒng)的名稱是:局域網(wǎng)即時通信軟件。(2)本項目的任務提出者是計算機科學與信息技術(shù)學院2005級林真真、金鵬、王超、張拓,開發(fā)者是計算機科學與信息技術(shù)學院2005級

13、林真真、金鵬、王超、張拓,用戶是×××企業(yè)人事及相關(guān)部門,實現(xiàn)該軟件的對象:企業(yè)及個人局域網(wǎng)內(nèi)部使用。1.3定義數(shù)據(jù)字典:關(guān)于數(shù)據(jù)的信息的集合,也即是對數(shù)據(jù)流圖中包含的元素的定義的集合。VB:VisualBasic。1.4參考資料計算機科學與信息技術(shù)學院通信系統(tǒng)軟件說明書計算機科學與信息技術(shù)學院通信系統(tǒng)概要說明書計算機科學與信息技術(shù)學院通信系統(tǒng)數(shù)據(jù)庫設計說明書國家開發(fā)標準文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O計與分析(朱麗平等)2總體設計2.1需求規(guī)定主要分為客戶端發(fā)送接收消息和服務器數(shù)據(jù)庫管理和處理.通信系統(tǒng)功能部分分為2類:客戶相關(guān),管理員相關(guān).從使用

14、和操作功能上分,有三種用戶:超級管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來,我們把各個相對獨立的功能完全獨立設計,編譯成獨立的目標(功能)模塊,各功能模塊最后被集成到一控制臺模塊中.相應的將系統(tǒng)分為一個控制臺程序和兩個子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復解釋,在每個模塊中只列出每個子模塊區(qū)別于其他子模塊的功能實現(xiàn).2.2運行環(huán)境硬件環(huán)境:運行本軟件要求處理器在奔騰III、內(nèi)存在256

15、MB以上的計算機。軟件環(huán)境:本系統(tǒng)支持的操作系統(tǒng)包括Windows95、Windows98、Windows2000、WindowsMe和WindowsXP;本系統(tǒng)的支持數(shù)據(jù)庫為MySQL;本軟件的開發(fā)工具為Java。2.3結(jié)構(gòu)所有模塊都必須調(diào)用“昵稱等入”模塊進行身份驗證,只有合法用戶才能使用系統(tǒng)。2.4功能需求與程序的關(guān)系用戶必須輸入昵稱后,方能登入客戶端,與服務器連接,程序正常運行。2.5人工處理過程本軟件系統(tǒng)的工作過程中不需要人工處理數(shù)據(jù)。3接口設計3.1用戶接口本系統(tǒng)采用典型的Windows風格作為人機接口,如使用窗口、菜單、對話框等。3.2外部接口本系統(tǒng)支持處理器在奔騰III以上、內(nèi)

16、存在256MB以上的計算機;支持具有Windows的操作系統(tǒng),如Windows95、Windows98、Windows2000、WindowsMe和WindowsXP支持MySQL關(guān)系數(shù)據(jù)庫3.3內(nèi)部接口“用戶驗證”模塊:提供系統(tǒng)用戶登錄時的身份驗證功能,用戶進行角色切換時必裁用此模塊進行身份驗證。4運行設計4.l運行模塊組合不同的用戶登錄此系統(tǒng)獲得的系統(tǒng)功能是不同的,如超級用戶具有系統(tǒng)的全部功能;一些用戶只具有瀏覽數(shù)據(jù)但不具備更新數(shù)據(jù)的功能。4.2運行控制超級用戶對系統(tǒng)的其他用戶設置系統(tǒng)功能的訪問權(quán)限,這樣權(quán)限受限的用戶就只能訪問部分系統(tǒng)模塊。4.3運行時間“用戶驗證”模塊在完成用戶登錄的身

17、份驗證后立即退出運行,釋放占用的系統(tǒng)資源。5系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設計5.1邏輯結(jié)構(gòu)設計要點邏輯設計是系統(tǒng)中數(shù)據(jù)庫設計的的重要步驟之一,其中羅列了文檔需求分析中各種功能實現(xiàn)之間的本質(zhì)關(guān)系,通過E-R圖描述實例化了的文字抽象概念。以下針對本系統(tǒng)的加以闡述其邏輯設計數(shù)據(jù)表中的基本數(shù)據(jù)結(jié)構(gòu):5.2物理結(jié)構(gòu)設計要點數(shù)據(jù)庫結(jié)構(gòu)的物理設計是對一個給定的邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu)的過程主要設計表的結(jié)構(gòu),一般的試題對應于表,實體的屬性對應于列,實體之間的關(guān)系為表的約束,邏輯設計中的實體大部分可以轉(zhuǎn)化為物理設計中的表,但它們并不是一一對應的。5.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系輸入登入昵稱,若不匹配,返回結(jié)果到登

18、錄窗口,提示錯誤,相反登錄成功。6系統(tǒng)出錯處理設計6.l出錯信息當輸入信息超出字符的標準時,軟件將會彈出警戒窗口提示,不會死機或軟件自動關(guān)閉。6.2補救措施本系統(tǒng)中,當用戶沒有輸入非空字段而進行數(shù)據(jù)提交時,系統(tǒng)提示××字段數(shù)據(jù)不得為空,請重新輸入再提交。此時輸入界面保留剛剛輸入信息的界面,而不是清空全部輸入界面上的所有數(shù)據(jù);要求用戶重新輸入。本系統(tǒng)提供數(shù)據(jù)備份功能,方便用戶對數(shù)據(jù)的備份。6.3系統(tǒng)維護設計詳細編寫各階段的文檔資料,以利于未來版本升級及移植等二次開發(fā)。詳細設計說明書1引言1.1編寫目的本文檔為"計算機科學與信息技術(shù)學院通信系統(tǒng)詳細說明書",

19、主要是為了實現(xiàn)系統(tǒng)的功能而進行的系統(tǒng)詳細設計說明,詳細系統(tǒng)各個軟件組成模塊的實現(xiàn)流程、功能、接口、編譯、測試要點等內(nèi)容,便于對系統(tǒng)的編碼進行指導和約束,本文檔供全體組員和測試人員閱讀。1.2參考資料計算機科學與信息技術(shù)學院通信系統(tǒng)軟件說明書計算機科學與信息技術(shù)學院通信系統(tǒng)概要說明書計算機科學與信息技術(shù)學院通信系統(tǒng)數(shù)據(jù)庫設計說明書國家開發(fā)標準文檔軟件工程(第四版-張海藩)UML面向?qū)ο笤O計與分析(朱麗平等)2系統(tǒng)功能實現(xiàn)從前面的需求分析可知,系統(tǒng)的功能不是很龐雜,主要分為客戶端發(fā)送接收消息和服務器數(shù)據(jù)庫管理和處理.通信系統(tǒng)功能部分分為2類:客戶相關(guān),管理員相關(guān).從使用和操作功能上分,有三種用戶:

20、超級管理員用戶(管理所有用戶)管理員用戶(管理普通用戶信息)普通用戶(接收發(fā)送信息,更改密碼).為了便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到更大的系統(tǒng)中來,我們把各個相對獨立的功能完全獨立設計,編譯成獨立的目標(功能)模塊,各功能模塊最后被集成到一控制臺模塊中.相應的將系統(tǒng)分為一個控制臺程序和兩個子系統(tǒng).客戶子系統(tǒng)主要功能有發(fā)送接收信息和更改密碼;管理員子系統(tǒng)主要功能是管理用戶信息,在這里,某些模塊都能用到的功能將不在重復解釋,在每個模塊中只列出每個子模塊區(qū)別于其他子模塊的功能實現(xiàn).3.1系統(tǒng)控制臺模塊功能:各個子功能之間的調(diào)用;統(tǒng)一的登錄界面實現(xiàn)到數(shù)據(jù)庫服務器的登陸設計:3.1

21、.1登陸數(shù)據(jù)庫輸入用戶賬號(id),密碼(pwd),以賬號ManagerPerson_id和密碼ManagerPerson_pwd登陸的用戶擁有對普通用戶管理的權(quán)限,以賬號Manager_id和密碼Manager_pwd登陸的用戶擁有對所由用戶進行管理的權(quán)限.檢索系統(tǒng)權(quán)限表,根據(jù)權(quán)限設置相應的功能模塊,a.無此用戶或禁止權(quán)限Enable=false;Able=false;M=falseb.普通用戶Enable=true;Able=false;M=falseb.可管理普通用戶權(quán)限Enable=true;Able=true;M=falsec.可管理所有用戶權(quán)限Enable=true;Able=tr

22、ue;M=true3.1.2程序組、程序項的原理組織各執(zhí)行模塊可執(zhí)行功能模塊的調(diào)用執(zhí)行,通過程序項名稱獲取可執(zhí)行目標代碼文件名,應用接口類Main開始執(zhí)行,界面如下:部分程序代碼JButtonbt=newJButton("登陸");JLabellabel=newJLabel("用戶名");JPanelpanel=newJPanel();panel.add(label);panel.add(field);frame.add(panel,BorderLayout.NORTH);JPanelpane=newJPanel();JTextFieldfieldpwd

23、=newJTextField(10);JLabellabe=newJLabel("密碼");pane.add(labe);pane.add(fieldpwd);frame.add(pane);frame.add(bt,BorderLayout.SOUTH);bt.addActionListener(this);field.addKeyListener(newKeyListener()publicvoidkeyPressed(KeyEvente)if(e.getKeyCode()=e.VK_ENTER&&e.isControlDown()if(field=nu

24、ll)return;start();frame.dispose();publicvoidkeyReleased(KeyEvente)publicvoidkeyTyped(KeyEvente);privateJTextFieldfield=newJTextField(10);privateJFrameframe=newJFrame();3.2用戶子系統(tǒng)總體功能設計:用戶子系統(tǒng)包含用戶信息管理用戶之間數(shù)據(jù)的傳遞下面給出設計方案和實現(xiàn)方法3.2.1用戶子系統(tǒng)包含用戶信息管理超級管理員信息管理輸入:用戶ID、初始密碼處理:將用戶信息按相同的格式導入數(shù)據(jù)庫輸出:提示信息數(shù)據(jù)表:將Manager表中存放超

25、級管理員數(shù)據(jù),表存放在數(shù)據(jù)庫DB中管理員信息和普通用戶信息與超級管理員的信息管理方式基本相同,區(qū)別在于管理員信息存放在表personManager表中,而普通用戶的信息存放在person表中。功能:普通用戶更改自己密碼的功能(超級)管理員添加刪除用戶更改密碼的界面如下:部分程序代碼:JFrameframe=newJFrame("更改密碼");JButtonbt=newJButton("確定");JLabellabel=newJLabel("舊密碼");JLabellabe=newJLabel("新密碼");JLab

26、ellabe1=newJLabel("確認密碼");JPanelpanel=newJPanel();JPanelpane=newJPanel();JPanelpane1=newJPanel();JPaneljpanel=newJPanel(newGridLayout(2,1);JTextFieldfield=newJTextField(20);JTextFieldfieldpwd=newJTextField(20);JTextFieldfieldpwd1=newJTextField(20);panel.add(label);panel.add(field);pane.add

27、(labe);pane.add(fieldpwd);pane1.add(labe1);pane1.add(fieldpwd1);jpanel.add(pane1);jpanel.add(bt);frame.add(pane);frame.add(panel,BorderLayout.NORTH);frame.add(jpanel,BorderLayout.SOUTH);frame.pack();frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);部分數(shù)據(jù)庫代碼:/連接數(shù)據(jù)庫代碼Stringurl

28、="jdbc:mysql:/:3306/test"Stringname="root"Stringpwd="1234567890"Connectioncon=null;con=DriverManager.getConnection(url,name,pwd);/更新密碼代碼Statementstmt=con.createStatement();stmt.executeUpdate("updatepersonsetpwd="+temp+"whereid="+id);/其中temp為

29、新密碼刪除用戶界面為部分界面代碼:JButtonbt=newJButton("確定");JLabellabel=newJLabel("請輸入你要刪除的用戶號碼:");JPanelpanel=newJPanel();panel.add(label);panel.add(field);frame.add(panel);frame.add(bt,BorderLayout.SOUTH);.JOptionPane.showMessageDialog(null,"確定刪除該用戶","警告",JOptionPane.WARNIN

30、G_MESSAGE);部分刪除用戶數(shù)據(jù)代碼:stmt.executeUpdate("deletefrompersonwhereid="+id);3.2.2用戶之間數(shù)據(jù)的傳遞數(shù)據(jù)傳遞間數(shù)據(jù)的管理輸入:發(fā)送用戶ID、用戶所發(fā)送的信息以及信息類型,目的用戶的ID處理:將用戶所發(fā)信息傳遞給服務器輸出:功能:給所有人發(fā)送信息以及接收在線用戶給所有人發(fā)送的信息給某用戶發(fā)送信息以及接受某個用戶所給該用戶發(fā)送的消息給某個發(fā)送文本文件給所有人發(fā)送信息的界面如下:部分代碼如下:if(!ClientFace.getSendText().getText().isEmpty()PrintWriter

31、pw=null;trypw=newPrintWriter(ClientFace.getSocket().getOutputStream();Stringstr=ClientFace.getSendText().getText();pw.println("message:"+(String)ClientFace.getUsers().getSelectedItem()+":"+str);pw.flush();ClientFace.getSendText().setText("");接收在線用戶給所有人發(fā)送的信息界面如下部分代碼如下:bo

32、oleanb=true;BufferedReaderbr=null;trybr=newBufferedReader(newInputStreamReader(s.getInputStream();catch(IOExceptione)e.printStackTrace();while(b)if(ClientFace.getSocket().isClosed()b=false;break;Stringstr=null;trystr=br.readLine();catch(IOExceptione)e.printStackTrace();if(str.startsWith("all:&q

33、uot;)str=str.substring(4);StringTokenizerst=newStringTokenizer(str,"/");ClientFace.getUsers().removeAllItems();ClientFace.getUsers().addItem("所有人");while(st.hasMoreTokens()Stringuser=st.nextToken();if(!user.equals(ClientFace.getName()ClientFace.getUsers().addItem(user);elseClient

34、Face.getReceiveText().setText(ClientFace.getReceiveText().getText()+str+'n');Pointp=newPoint();if(!ClientFace.getReceiveText().getScrollableTracksViewportHeight()p.setLocation(0,ClientFace.getReceiveText().getHeight();ClientFace.getSp().getViewport().setViewPosition(p);以上這部分代碼應該是放在一個線程中的,使得客

35、戶端能夠隨時接收并顯示服務器傳遞來的數(shù)據(jù)以下界面是用戶給其他某個特定的用戶發(fā)送信息:其部分實現(xiàn)代碼為:pw.println("message:"+(String)ClientFace.getUsers().getSelectedItem()+":"+str);接受某個用戶所給該用戶發(fā)送的消息:客戶端會一直等待從服務器接收消息,至于接收消息的類型由服務器控制而不由客戶端來控制,所以接受某個用戶所給該用戶發(fā)送的消息模塊將會在服務器系統(tǒng)中說明3.3服務器子系統(tǒng)總體功能設計:接收客戶端客戶所發(fā)送的信息,并將其轉(zhuǎn)發(fā)給合適的目的用戶(為了便于測試,我們暫時給服務器增

36、加了一個功能-查看所有用戶所發(fā)送的所有信息,在真正的生產(chǎn)中,應當將此功能去掉)下面給出設計方案和設計方法在這里有一個輔助的功能就是,當用戶登陸是,用戶會將自己的Socket和ID號發(fā)送給服務器,服務器會將該用戶的信息存儲在服務器中,同時服務器將該用戶的id分發(fā)出去,使得所有用戶直到此用戶上線具體代碼如下:ServerSocketserverSocket=newServerSocket(2046);while(true)StringclientName;Socketsocket=serverSocket.accept();ObjectInputStreamobj=null;obj=newObje

37、ctInputStream(socket.getInputStream();Stringname=(String)obj.readObject();if(!"".equals(name)clientName=name;elseclientName="貓熊"+String.valueOf(NO+);Messagemess=newMessage(socket,clientName);clients.add(mess);PrintWriterpw=null;pw=newPrintWriter(mess.getSocket().getOutputStream()

38、;for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(clientName+"來了.");pw.flush();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+"n"+clientName+"來了.");Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewpor

39、tHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);ServerFace.getArea().setText(ServerFace.getArea().getText()+"n"+clientName+"來了.");p=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation

40、(0,ServerFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);pw.flush();mess.setSocketName(clientName);StringallClients=""for(Messagemes:clients)allClients+=mes.getSocketName()+'/'PrintWriterpww=null;for(Messagemes:clients)pww=newPrintWriter(mes.getSocket

41、().getOutputStream();pww.println("all:"+allClients);pww.flush();轉(zhuǎn)發(fā)功能的部分代碼:BufferedReaderbr=null;PrintWriterpw=null;Stringstr=null;Messagees;booleanb=true;while(b)trybr=newBufferedReader(newInputStreamReader(s.getSocket().getInputStream();str=br.readLine();if(str.startsWith("message:&q

42、uot;)str=str.substring(8);StringtoUser=str.substring(0,str.indexOf(":");/用戶發(fā)送的信息是給所有在線用戶時,服務器的處理方式if("所有人".equals(toUser)for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(s.getSocketName()+"對所有人說:"+str.substring(str.indexOf(":&qu

43、ot;)+1);pw.flush();ServerFace.getArea().setText(ServerFace.getArea().getText()+"n"+s.getSocketName()+"對所有人說:"+str.substring(str.indexOf(":")+1);Pointp=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getArea().getHeight()

44、;ServerFace.getAr().getViewport().setViewPosition(p);/用戶發(fā)送的信息是給某個特定的在線用戶時,服務器的處理方式es=getUser(toUser);if(es.getSocket().isClosed()continue;pw=newPrintWriter(es.getSocket().getOutputStream();pw.println(s.getSocketName()+"悄悄地說:"+str.substring(str.indexOf(":")+1);pw.flush();pw=newPri

45、ntWriter(s.getSocket().getOutputStream();pw.println("悄悄地對"+es.getSocketName()+"說:"+str.substring(str.indexOf(":")+1);pw.flush();ServerFace.getArea().setText(ServerFace.getArea().getText()+"n"+s.getSocketName()+"悄悄地對"+getUser(toUser).getSocketName()+&

46、quot;說:"+str.substring(str.indexOf(":")+1);Pointp=newPoint();if(!ServerFace.getArea().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getArea().getHeight();ServerFace.getAr().getViewport().setViewPosition(p);查看所有用戶的狀態(tài)的設計原理:如果客戶端上線,則記錄用戶上線,直到用戶下線時,記錄用戶離線,其根據(jù)的也是用戶端發(fā)送的消息,只不

47、過是格式的不同而已,具體代碼如下:if(str.startsWith("exit:")str=str.substring(5);clients.remove(getUser(str);for(Messagemes:clients)pw=newPrintWriter(mes.getSocket().getOutputStream();pw.println(str+"走了.");pw.flush();ServerFace.getAreas().setText(ServerFace.getAreas().getText()+"n"+str+

48、"走了.");Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);b=false;break;catch(Exceptione)e.printStackTrace();ServerFace.getAreas().setText(ServerFace.getAreas(

49、).getText()+"n"+str+"意外退出.");Pointp=newPoint();if(!ServerFace.getAreas().getScrollableTracksViewportHeight()p.setLocation(0,ServerFace.getAreas().getHeight();ServerFace.getArs().getViewport().setViewPosition(p);ServerFace.getArea().setText(ServerFace.getArea().getText()+"n&q

50、uot;+s.getSocketName()+"意外退出.");服務器端界面(暫時)如下數(shù)據(jù)庫設計說明書1引言1.1編寫目的通信系統(tǒng)在數(shù)據(jù)庫管理系統(tǒng)的支持下,進行用戶信息的添加、整理、存儲、檢索、更新等操作。對于數(shù)據(jù)庫應用開發(fā)人員來說,如何利用數(shù)據(jù)庫管理系統(tǒng)、系統(tǒng)軟件和相關(guān)硬件系統(tǒng),將用戶信息轉(zhuǎn)化成要有效的數(shù)據(jù)結(jié)構(gòu),并使數(shù)據(jù)庫結(jié)構(gòu)易于實現(xiàn)用戶新的要求。確切的說,數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,提供一個確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設計,以及一個確定數(shù)據(jù)庫存儲結(jié)構(gòu)與存取方法的物理設計,建立起既能反映現(xiàn)實世界信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,有能被某個數(shù)據(jù)庫管

51、理系統(tǒng)所接受,同時能實現(xiàn)系統(tǒng)目標,并有效存取數(shù)據(jù)的數(shù)據(jù)庫1.2背景a.待開發(fā)軟件系統(tǒng)的名稱:山西大學計算機科學與信息技術(shù)學院局域網(wǎng)即時通信軟件b.本項目的任務提出者:計算機科學與信息技術(shù)學院2005級林真真、金鵬、王超、張拓開發(fā)者:林真真、金鵬、王超、張拓用戶:計算機科學與信息技術(shù)學院相關(guān)人員。1.3定義列出本文件中用到的專門術(shù)語的定義、外文首字母組詞的原詞組。1.4參考資料軟件設計文檔國家標準軟件工程導論(第4版)張海藩MySQL5.1官方簡體中文手冊2外部設計2.1標識符和狀態(tài)基本描述:每個數(shù)據(jù)表中只能有一個Person_id,即Person_id在同一個表中必須唯一,所以Person_id唯一地標識了單個字段。由于整個開發(fā)系統(tǒng)還在開發(fā)中,所以數(shù)據(jù)庫的開發(fā)還沒有完成,這個屬性必須在開發(fā)過程中和開發(fā)結(jié)束后有效。本系統(tǒng)中有唯一標識的見下表數(shù)據(jù)表名稱標識符名稱標識符名稱屬性PersonManagerPerson_id管理員用戶名PersonPerson_id普通用戶名2.2使用它的程序由于數(shù)據(jù)的存取是通過界面的接口和數(shù)據(jù)庫進行連接的,所以在實現(xiàn)過

溫馨提示

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

評論

0/150

提交評論