基于Java的智能網(wǎng)吧管理系統(tǒng)_第1頁(yè)
基于Java的智能網(wǎng)吧管理系統(tǒng)_第2頁(yè)
基于Java的智能網(wǎng)吧管理系統(tǒng)_第3頁(yè)
基于Java的智能網(wǎng)吧管理系統(tǒng)_第4頁(yè)
基于Java的智能網(wǎng)吧管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

PAGE-摘要隨著信息時(shí)代的來(lái)臨,internet和網(wǎng)絡(luò)游戲的發(fā)展,大大小小的網(wǎng)吧已經(jīng)遍及全國(guó),無(wú)論是大中城市還是小城市甚至是很小的縣城。但一直以來(lái)人們使用傳統(tǒng)人工的方式管理網(wǎng)吧即工作人員人工記時(shí),結(jié)算的方式來(lái)進(jìn)行管理,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差、容易出錯(cuò),另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。使用計(jì)算機(jī)對(duì)網(wǎng)吧收費(fèi),計(jì)帳,上機(jī),查找管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。本文介紹了一種在JAVA平臺(tái)下設(shè)計(jì)并實(shí)現(xiàn)智能卡網(wǎng)吧管理系統(tǒng)的全過(guò)程。通過(guò)分析比較流行的智能卡網(wǎng)吧管理系統(tǒng)的開(kāi)發(fā)技術(shù),結(jié)合網(wǎng)吧管理的一系列特點(diǎn),java語(yǔ)言基礎(chǔ)上使用Eclipse開(kāi)發(fā)工具實(shí)現(xiàn)智能卡網(wǎng)吧管理系統(tǒng)的解決方案。本文經(jīng)過(guò)實(shí)際的需求分析,闡述了智能卡網(wǎng)吧管理系統(tǒng)支撐的相關(guān)技術(shù),以及數(shù)據(jù)庫(kù)設(shè)計(jì),最后闡述系統(tǒng)的總體結(jié)構(gòu)與系統(tǒng)的各個(gè)功能模塊。關(guān)鍵詞:智能卡,JAVA平臺(tái),網(wǎng)吧管理

ABSTRACTAlongwiththeadventofinformationageandthecontinuousdevelopmentofinternetandonlinegames,alotofnetbarshavebeendistributedalloverthewholecountry,notonlydistributedinthelargecitiesbutalsointhesmallcitiesandeveninthesmallcounties.Butpeoplehavealwaysusedthetraditionalmethodstomanagethenetbars,whichmethodsarethatadoptingtheartificialrememberingtimewayandtheartificialsettlingaccountswaytomanagethenetbars.Suchmanagementmethodsexistmanyshortcomings,suchaslowefficiency,poorsecurity,easytogenerateerror,besides,aftermanyyearslaterwillproducealargenumberofdocumentsanddate,whichwillbringalotofdifficultiestofind,updateandmaintainthedate.UsecomputertomanagenetbarsmustbemuchmoreconvenientthanUserthetraditionalmethodstomanagethenetbars.Usecomputertomanagenetbarsisbeyondcomparewhichhasalotofadvantages.Suchashighefficiency,goodsecurity,lowcostandsoon.ThispaperintroducesallprocessesaboutdesignandimplementationofthenetbarssmartcardmanagementsystemintheJAVAplatform.Byanalyzingandcomparingthepopularnetbarssmartcardmanagementsystemdevelopmenttechnology,combinednetbarsmanagementSystemfeatures,bringingforwardachievingnetbarssmartcardmanagementsystemusingoftheEclipsedevelopmenttoolonthebasisofthejava.Thispaperisdescribedthesystemanalysisanddesignusingtherelevanttechnologyanditsfeatures,anddescribedtheoverallsystemstructureandthefunctionofthevarioussystemmodulesKeywords:smartcard,JAVAplatform,netbarsmanage

目錄TOC\o"1-3"\t"樣式1,1,樣式2,2,樣式3,3"\h摘要 IABSTRACT II第1章緒論 11.1智能卡網(wǎng)吧管理系統(tǒng) 11.1.1智能卡網(wǎng)吧管理的概念及特點(diǎn) 11.1.2國(guó)內(nèi)網(wǎng)吧管理的現(xiàn)狀 21.2課題的背景及意義 31.3系統(tǒng)簡(jiǎn)介 31.4課題的主要工作及論文的組織 3第2章系統(tǒng)相關(guān)技術(shù) 42.1JAVA語(yǔ)言的特點(diǎn) 42.2SWT/JFace簡(jiǎn)介 42.2.1SWT/JFace的特點(diǎn) 42.2.2SWT/JFace的優(yōu)缺點(diǎn) 52.3Socket簡(jiǎn)介 52.4URL與URLConnection 62.5java鏈表的實(shí)現(xiàn) 72.6C/S結(jié)構(gòu)概述 72.7本章小結(jié) 9第3章系統(tǒng)分析 103.1系統(tǒng)分析概述 103.2系統(tǒng)主要功能 103.3數(shù)據(jù)流圖 123.4數(shù)據(jù)字典 133.5本章小結(jié) 14第4章數(shù)據(jù)庫(kù)設(shè)計(jì) 154.1數(shù)據(jù)庫(kù)設(shè)計(jì)原則 154.2概念結(jié)構(gòu)設(shè)計(jì) 154.3邏輯結(jié)構(gòu)設(shè)計(jì) 174.4本章小結(jié) 19第5章系統(tǒng)實(shí)現(xiàn) ..205.1插件的導(dǎo)入 205.2配置數(shù)據(jù)庫(kù) 205.3界面的實(shí)現(xiàn) 205.3.1JavaVE實(shí)現(xiàn)系統(tǒng)服務(wù)端主界面 205.3.2JavaVE實(shí)現(xiàn)系統(tǒng)客戶端主界面 225.4具體功能的實(shí)現(xiàn) 225.4.1卡片管理模塊 225.4.2系統(tǒng)管理模塊 265.4.3服務(wù)端聊天管理模塊 295.4.4客戶端聊天服務(wù)模塊 315.4.5系統(tǒng)其它功能模塊 335.5本章小結(jié) 37第6章結(jié)論 38致謝 39參考文獻(xiàn) 40第1章緒論1.1智能卡網(wǎng)吧管理系統(tǒng)1.1.1智能卡網(wǎng)吧管理的概念及特點(diǎn)智能卡網(wǎng)吧管理系統(tǒng),可以應(yīng)用于網(wǎng)吧、學(xué)校、政府機(jī)關(guān)、稅務(wù)、銀行等領(lǐng)域的機(jī)房計(jì)費(fèi)管理,使管理方便、快捷而取得更好的經(jīng)濟(jì)效益。目前,智能卡網(wǎng)吧管理系統(tǒng)主要有三種類(lèi)型:主要是硬件網(wǎng)吧管理系統(tǒng)、軟件網(wǎng)吧管理系統(tǒng)、硬件及軟件相結(jié)合的網(wǎng)吧管理系統(tǒng)。這里主要是介紹硬件與軟件相結(jié)合的智能卡網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)。根據(jù)網(wǎng)吧經(jīng)營(yíng)的性質(zhì),作為網(wǎng)吧老板,可能常遇到以下問(wèn)題:例如1、手工記錄時(shí)間勞動(dòng)強(qiáng)度大而計(jì)費(fèi)方式不靈活。2、顧客上完后便走,無(wú)法把握回頭客。3、老板經(jīng)常不在網(wǎng)吧,對(duì)雇員缺乏財(cái)務(wù)監(jiān)控4、管理煩瑣而增加人員,成本相應(yīng)增加。5、老顧客應(yīng)打折而不方便查詢6、每個(gè)工作人員均感繁忙而沒(méi)有經(jīng)濟(jì)效益7、怎樣均勻顧客來(lái)源,提高上機(jī)率?8、怎樣樹(shù)立網(wǎng)吧形象而有更多的回頭客等等問(wèn)題。怎樣更好管理網(wǎng)吧經(jīng)營(yíng)呢?使用高效率的智能卡網(wǎng)吧管理系統(tǒng)可使管理規(guī)范化、標(biāo)準(zhǔn)化、效益化。靈活的計(jì)費(fèi)方式是強(qiáng)化經(jīng)營(yíng)、吸引顧客的最好手段。智能卡網(wǎng)吧計(jì)費(fèi)管理系統(tǒng),有著很好的開(kāi)放性和適應(yīng)性,允許用戶對(duì)不同電腦(如貴賓房電腦),不同卡型、不同的時(shí)段,定義不同的費(fèi)率。允許網(wǎng)吧業(yè)主根據(jù)情況設(shè)定優(yōu)惠條件,如金卡、銀卡、普通卡、計(jì)時(shí)卡等。通過(guò)發(fā)行不同的卡型,可以滿足網(wǎng)吧各種不同的銷(xiāo)售推廣計(jì)劃和銷(xiāo)售方案。我認(rèn)為智能卡網(wǎng)吧管理系統(tǒng)的軟件是為管理服務(wù)的,是為提高網(wǎng)吧的效益服務(wù)的。待業(yè)主只需點(diǎn)擊服務(wù)器端菜單,即可了解到每時(shí)、每刻、每天、每月等不同時(shí)間段的的上機(jī)情況、盈利額及銷(xiāo)售報(bào)表等情況,查詢方便快捷,提高經(jīng)濟(jì)效益。智能卡網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)往往由服務(wù)端軟件和客戶端軟件組成。服務(wù)端軟件負(fù)責(zé)發(fā)行卡片、充值加錢(qián)、注銷(xiāo)卡片、卡片掛失、費(fèi)率管理等工作;客戶端軟件負(fù)責(zé)聯(lián)系網(wǎng)吧管理人員等工作。正如前面所述,提高管理效率、管理安全有效、提升網(wǎng)吧檔次等等都是智能卡網(wǎng)吧管理系統(tǒng)較傳統(tǒng)網(wǎng)吧管理的優(yōu)點(diǎn)。1.1.2國(guó)內(nèi)網(wǎng)吧管理的現(xiàn)狀目前在中國(guó),網(wǎng)民數(shù)量大大超過(guò)上網(wǎng)計(jì)算機(jī)的數(shù)量,相當(dāng)大的一部分網(wǎng)民是在網(wǎng)吧上網(wǎng),所以在各個(gè)城市都有大量的網(wǎng)吧存在。像深圳市的網(wǎng)吧就有600O多家,而全國(guó)就可想而知了。北京網(wǎng)吧失火事件后,在全國(guó)范圍內(nèi)加大了對(duì)網(wǎng)吧管理的力度,對(duì)所有注冊(cè)的網(wǎng)吧,全國(guó)正在進(jìn)行整頓、檢查。對(duì)所有無(wú)證的網(wǎng)吧,也正在進(jìn)行清理。對(duì)于公安部門(mén)和文化部門(mén)也確實(shí)需要一套完整的網(wǎng)吧管理系統(tǒng)來(lái)監(jiān)控網(wǎng)吧的運(yùn)行。上網(wǎng)實(shí)名制也正在開(kāi)始在各城市推廣。對(duì)于網(wǎng)吧管理,由于上網(wǎng)人員較多,負(fù)責(zé)收款的人也往往不是老板本人,如何對(duì)收費(fèi)進(jìn)行管理,減少上機(jī)不付費(fèi)的現(xiàn)象及收銀員吞沒(méi)上網(wǎng)款的現(xiàn)象,實(shí)時(shí)遠(yuǎn)程監(jiān)測(cè)網(wǎng)吧的運(yùn)營(yíng)情況,也是擺在各個(gè)網(wǎng)吧老板面前的一個(gè)問(wèn)題。使用了該系統(tǒng),通過(guò)發(fā)卡,網(wǎng)吧能夠獲得大量的忠實(shí)用戶,網(wǎng)民也可以從網(wǎng)吧得到打折等實(shí)惠。因此,從網(wǎng)吧老板、網(wǎng)民到公安、文化部門(mén)對(duì)本系統(tǒng)都將持歡迎態(tài)度,我國(guó)經(jīng)過(guò)幾年的整頓和發(fā)展取得了長(zhǎng)足的進(jìn)步,網(wǎng)吧管理系統(tǒng)已經(jīng)廣泛的應(yīng)用到學(xué)校、政府機(jī)關(guān)、銀行等各個(gè)領(lǐng)域的機(jī)房管理中。在未來(lái)的幾十年中,網(wǎng)吧管理系統(tǒng)的應(yīng)用研究將繼續(xù)前所未有的速度發(fā)展。這一方面是網(wǎng)吧發(fā)展的需要,隨著網(wǎng)吧規(guī)模不斷的發(fā)展壯大,網(wǎng)民的不斷增加,網(wǎng)吧的管理、網(wǎng)民與網(wǎng)吧管理員之間的協(xié)調(diào)等問(wèn)題也越來(lái)越突出,這也就客觀促使了網(wǎng)吧管理系統(tǒng)技術(shù)的發(fā)展;另一方面隨著全球經(jīng)濟(jì)一體化進(jìn)程的加速,網(wǎng)吧與網(wǎng)吧之間的交流與合作也越來(lái)越密切,Internet、電子商務(wù)蓬勃發(fā)展客觀上也要求有功能更為全面的網(wǎng)吧管理產(chǎn)品的出現(xiàn)。展望下一代的網(wǎng)吧管理系統(tǒng)應(yīng)具備如下特點(diǎn):1.完成從C/S模式向B/S模式的轉(zhuǎn)換;2.維護(hù)網(wǎng)吧的大量數(shù)據(jù)應(yīng)該更加簡(jiǎn)單方便;3.需要支持電子商務(wù);4.系統(tǒng)更有安全性、實(shí)用性、先進(jìn)性和經(jīng)濟(jì)性;1.2課題的背景及意義智能卡網(wǎng)吧管理系統(tǒng)是用計(jì)算機(jī)軟件系統(tǒng)管理網(wǎng)吧日常經(jīng)營(yíng)的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,它的內(nèi)容對(duì)于網(wǎng)吧的老板和管理者來(lái)說(shuō)都至關(guān)重要,所以網(wǎng)吧管理系統(tǒng)應(yīng)該能夠?yàn)楣芾碚吆蜕蠙C(jī)人員提供方便的管理和上機(jī)。使用計(jì)算機(jī)對(duì)網(wǎng)吧收費(fèi),計(jì)帳,上機(jī),查找管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高網(wǎng)吧管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件1.3系統(tǒng)簡(jiǎn)介此網(wǎng)吧管理系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)使用MYSQL??梢詫?shí)現(xiàn)卡片發(fā)行,卡片注銷(xiāo),卡片掛失,卡片充值等基本功能,此外網(wǎng)吧管理員還能對(duì)網(wǎng)吧收費(fèi)信息以及網(wǎng)吧經(jīng)營(yíng)的商品信息進(jìn)行管理。采用了JAVA,Socket套接字等技術(shù)實(shí)現(xiàn)。開(kāi)發(fā)工具使用了當(dāng)前流行的Eclipse,其中加上了VE插件。1.4課題的主要工作及論文的組織本文共分為五章:第1章主要闡述了智能卡網(wǎng)吧管理的概念、特點(diǎn)、國(guó)內(nèi)外的發(fā)展?fàn)顩r,介紹了本課題的來(lái)源、背景及主要研究?jī)?nèi)容。第2章主要闡述了智能卡管理系統(tǒng)支撐的相關(guān)技術(shù)。第3章對(duì)網(wǎng)吧管理系統(tǒng)進(jìn)行了分析。第4章論述了網(wǎng)吧管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。第5章論述了只能卡網(wǎng)吧管理系統(tǒng)的具體實(shí)現(xiàn)。第6章是結(jié)束語(yǔ)。第2章系統(tǒng)相關(guān)技術(shù)2.1JAVA語(yǔ)言的特點(diǎn)Java是面向?qū)ο蟮木幊陶Z(yǔ)言。面向?qū)ο蠹夹g(shù)較好的解決了當(dāng)今軟件開(kāi)發(fā)過(guò)程中新出現(xiàn)的種種傳統(tǒng)面向過(guò)程語(yǔ)言所不能處理的問(wèn)題,包括軟件開(kāi)發(fā)的規(guī)模擴(kuò)大,升級(jí)加快,維護(hù)量增大以及開(kāi)發(fā)分工日趨細(xì)化、專(zhuān)業(yè)化和標(biāo)準(zhǔn)化等[1]。面向?qū)ο蟮暮诵氖且愿咏谌祟?lèi)思維的方式建立計(jì)算機(jī)模型,它利用類(lèi)和對(duì)象的機(jī)制將數(shù)據(jù)與其上的操作封裝在一起,通過(guò)統(tǒng)一的接口與外界交互,使反映現(xiàn)實(shí)世界實(shí)體的各個(gè)類(lèi)在程序中能夠獨(dú)立、自治和繼承。Java包括一個(gè)支持HTTP(超文本傳輸協(xié)議)和FTP(文件傳輸協(xié)議)等基于TCP/IP的子庫(kù)[1]。因此Java應(yīng)用程序可憑借URL(統(tǒng)一資源定位符)打開(kāi)并訪問(wèn)網(wǎng)絡(luò)上的對(duì)象,其訪問(wèn)方式與訪問(wèn)本地文件系統(tǒng)幾乎完全相同。其分布環(huán)境是一項(xiàng)很宏大的工程,但Java語(yǔ)言的語(yǔ)法特性可以很容易的實(shí)現(xiàn)這一目標(biāo)。Java語(yǔ)言獨(dú)特的運(yùn)行機(jī)制使得它具有良好的二進(jìn)制可移植性,利用Java,開(kāi)發(fā)人員可編寫(xiě)出與具體平臺(tái)無(wú)關(guān),普遍適用的應(yīng)用程序,大大降低了開(kāi)發(fā)、維護(hù)和管理的開(kāi)銷(xiāo),也就是一次編譯,隨處運(yùn)行,方便存取數(shù)據(jù)庫(kù)的JDBAPI,CORBA、JND1、RM1技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等功能,為用戶和開(kāi)發(fā)人員提供一個(gè)具有高度的可移植性、兼容性和安全性的平臺(tái)。Java語(yǔ)言還具有動(dòng)態(tài)性的特點(diǎn),它的動(dòng)態(tài)性是面向?qū)ο笤O(shè)計(jì)方法的擴(kuò)展,它允許程序動(dòng)態(tài)的裝入運(yùn)行過(guò)程中所需要的類(lèi)。2.2SWT/JFace簡(jiǎn)介2.2.1SWT/JFace的特點(diǎn)Eclipse不僅提供了一個(gè)優(yōu)秀的JavaIDE(集成開(kāi)發(fā)環(huán)境),還提供了一個(gè)能夠替代JavaAWT和Swing的SWT和JFace庫(kù)。JavaAWT實(shí)現(xiàn)了有關(guān)GUI元素和圖形操作的Java和C庫(kù),Swing則使用純Java語(yǔ)言在此基礎(chǔ)上實(shí)現(xiàn)更高級(jí)的GUI元素。相比較而言,SWT簡(jiǎn)化了各種針對(duì)本地窗口系統(tǒng)函數(shù)的調(diào)用方式。由于操作系統(tǒng)緊密集成,采用SWT實(shí)現(xiàn)的應(yīng)用程序的感官效果及響應(yīng)方式同本地程序幾乎一樣。對(duì)于Java而言,這是子桌面應(yīng)用領(lǐng)域的一個(gè)突破。SWT是提供的開(kāi)發(fā)平臺(tái)Eclipse中使用的一個(gè)窗口控件集和圖形庫(kù),它集成于本機(jī)窗口系統(tǒng),但有獨(dú)立于操作系統(tǒng)窗口的API[3]。同SWT相比,JFace庫(kù)中的組件不會(huì)直接與本地窗口系統(tǒng)打交道。JFace完全采用Java實(shí)現(xiàn),并采用SWT中的類(lèi)和方法,實(shí)現(xiàn)一些簡(jiǎn)單的GUI元素。無(wú)疑,SWT/JFace像一股清新的風(fēng)吹入Java的GUI開(kāi)發(fā)領(lǐng)域,為這個(gè)沉悶的領(lǐng)域帶來(lái)了勃勃生機(jī)。雖然SUN不接納SWT/JFace作為Java的一種圖形API標(biāo)準(zhǔn),但它仍然借著Eclipse的優(yōu)異表現(xiàn),以不可阻擋之勢(shì)向前發(fā)展著。借助SWT,可以輕松的開(kāi)發(fā)出高效率的GUI程序,并且擁有標(biāo)準(zhǔn)的Windows外觀。Eclipse軟件就是基于SWT/JFace構(gòu)建的。2.2.2SWT/JFace的優(yōu)缺點(diǎn)SWT的先進(jìn)之處在于它能夠?qū)⒒赟WT開(kāi)發(fā)的緊密集成到所在的環(huán)境中去,普通用戶不會(huì)覺(jué)察出基于SWT的用戶界面和本地用戶界面有什么不同之處[3]。比如在Windows2000中,SWT的按鈕看起來(lái)就像Windows2000中的按鈕。在WindowsXP中就像WindowsXP中的按鈕。當(dāng)轉(zhuǎn)到Mac操作系統(tǒng)中時(shí),按鈕又與Mac操作系統(tǒng)中的一樣了。如果使用Swing則按鈕始終保持一種樣式。SWT采用了本地事件處理機(jī)制,所以從響應(yīng)時(shí)間上來(lái)說(shuō),基于SWT開(kāi)發(fā)的程序比基于Swing開(kāi)發(fā)的程序稍微快一些,并且需要的資源要少一些。同時(shí)由于大部分基于SWT的小部件僅僅是本地窗口的適配器,所以在諸多異構(gòu)的部件和各種圖形子系統(tǒng)加速設(shè)備下,SWT可能更穩(wěn)定。但是使用SWT也有它的局限性。(1)基于SWT的應(yīng)用程序只能在實(shí)現(xiàn)了SWT的平臺(tái)上運(yùn)行。(2)一般來(lái)說(shuō),各種SWT的實(shí)現(xiàn)是等同的。但對(duì)于某些功能來(lái)說(shuō),GUI元素的行為可能因平臺(tái)的不同而不同。因此一個(gè)軟件在多個(gè)平臺(tái)上進(jìn)行部署的時(shí)候,最好是在各個(gè)平臺(tái)上都能夠測(cè)試。(3)同AWT相比,SWT顯示的進(jìn)行資源管理,SWT中使用的資源,如圖片、顏色等,不再需要時(shí),必須進(jìn)行釋放。在這一點(diǎn)上,SWT有類(lèi)似C/C++里面的資源動(dòng)態(tài)分配方式。2.3Socket簡(jiǎn)介套接字(Socket)是網(wǎng)絡(luò)通信的基本操作單元,又被稱(chēng)作端口,通常用來(lái)實(shí)現(xiàn)客戶方和服務(wù)器方的連接。網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,在實(shí)現(xiàn)雙向通信鏈路的每一端都建立一個(gè)Socket,通過(guò)對(duì)Socket的讀/寫(xiě)操作實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。套接字是網(wǎng)絡(luò)通信的一個(gè)標(biāo)準(zhǔn),它就像房中的電源插座,無(wú)論是電燈還是電腦等電器,它們只要使用220V50Hz的交流電壓,插在電源插座上就能正常工作[4]。套接字可以分為以下三種類(lèi)型:(1)流套接字這是最常用的套接字類(lèi)型,TCP/IP協(xié)議中的TCP協(xié)議使用此類(lèi)接口,它提供面向連接的、無(wú)差錯(cuò)的、發(fā)送先后順序一致的、包長(zhǎng)度不限和非重復(fù)的網(wǎng)絡(luò)信包傳輸。(2)數(shù)據(jù)報(bào)套接字TCP/IP協(xié)議族中的UDP協(xié)議使用此類(lèi)接口,它是無(wú)連接的服務(wù),以獨(dú)立的信包進(jìn)行網(wǎng)絡(luò)傳輸,信包最大長(zhǎng)度為32KB,傳輸不保證順序性、可靠性和無(wú)重復(fù)性,它通常用于單個(gè)報(bào)文傳輸或可靠性不重復(fù)的場(chǎng)合。(3)原始數(shù)據(jù)報(bào)套接字提供對(duì)網(wǎng)絡(luò)通信下層通信協(xié)議(如IP協(xié)議)的直接訪問(wèn),它一般不是提供給普通用戶的,主要用于開(kāi)發(fā)新的協(xié)議或用于提取協(xié)議較隱蔽的功能。所有Socket通信程序的基本結(jié)構(gòu)都是一樣的,主要有創(chuàng)建Socket、打開(kāi)連接到Socket的輸入流和輸出流、按照一定的協(xié)議對(duì)Socket進(jìn)行讀寫(xiě)操作、關(guān)閉Socket這四個(gè)步驟,通過(guò)這四個(gè)步驟可以完成一般的Socket通信[4]。為了完成Socket通信,包中提供了Socket和ServerSocket這兩個(gè)類(lèi),它們分別用來(lái)表示雙向連接的客戶端和服務(wù)端。2.4URL與URLConnectionURL的全稱(chēng)是UniformResourceLocator,意思是統(tǒng)一資源定位器,表示的Internet上某一資源的地址,通過(guò)URL可以訪問(wèn)Internet上主機(jī)所開(kāi)放的資源。URL由協(xié)議名和資源名組成,中間用“:”分隔。協(xié)議名指定獲取資源所使用的傳輸協(xié)議,比如:ftp、http等。而資源名則是資源的完整地址,包括主機(jī)名、端口號(hào)、文件名或者文件內(nèi)部的一個(gè)引用。URLConnection是一個(gè)抽象類(lèi),代表與URL指定數(shù)據(jù)源的動(dòng)態(tài)連接,URLConnection類(lèi)提供比URL類(lèi)更強(qiáng)的服務(wù)器交互控制。如果你建立了與遠(yuǎn)程服務(wù)器之間的連接,你可以在傳輸它到本地之前URLConnection來(lái)檢查遠(yuǎn)程對(duì)象的屬性。這些屬性為HTTP協(xié)議的規(guī)范定義,并且僅對(duì)用HTTP的協(xié)議的URL對(duì)象有意義。同時(shí),它還允許用POST或PUT和其他HTTP請(qǐng)求方法將數(shù)據(jù)送回服務(wù)器。在包中只有抽象的URLConnection類(lèi),其中的許多方法和字段與單個(gè)構(gòu)造函數(shù)一樣是受保護(hù)的,這些方法只可以被URLConnection類(lèi)及其子類(lèi)訪問(wèn)。2.5java鏈表的實(shí)現(xiàn)線型表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是把線型表的數(shù)據(jù)元素存放在節(jié)點(diǎn)中,因此,用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)的線性表稱(chēng)為鏈表。節(jié)點(diǎn)(node)由數(shù)據(jù)元素域和一個(gè)或若干個(gè)指針域組成。指針是用來(lái)指向其他節(jié)點(diǎn)地址的,指向鏈表第一個(gè)節(jié)點(diǎn)的指針成為鏈表的頭指針,一個(gè)鏈表由頭指針指向第一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的鏈指向其后繼節(jié)點(diǎn),其中一個(gè)節(jié)點(diǎn)的鏈為空(null)。在C或C++里鏈表可以通過(guò)指針的操作來(lái)實(shí)現(xiàn),在Java中是沒(méi)有指針的,但是可以通過(guò)使用對(duì)象的引用等方法實(shí)現(xiàn)鏈表。鏈表的節(jié)點(diǎn)個(gè)數(shù)稱(chēng)為鏈表的長(zhǎng)度,長(zhǎng)度為零時(shí)稱(chēng)為空表。鏈表可以根據(jù)鏈的個(gè)數(shù)可以分為單向鏈表和雙向鏈表,本文只討論單向鏈表,一個(gè)單向鏈表包含一組節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都包含了有關(guān)數(shù)據(jù)和指向下一個(gè)節(jié)點(diǎn)的指針。表的頭就是一個(gè)指針,它指向第一個(gè)節(jié)點(diǎn),而表的結(jié)束則用空指針表示。2.6C/S結(jié)構(gòu)概述C/S結(jié)構(gòu)(Client/Server結(jié)構(gòu))是大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。C/S又稱(chēng)Client/Server或客戶/服務(wù)器模式。服務(wù)器通常采用高性能的PC、工作站或小型機(jī),并采用大型數(shù)據(jù)庫(kù)系統(tǒng),如ORACLE、SYBASE、InfORMix或SQLServer。客戶端需要安裝專(zhuān)用的客戶端軟件。傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開(kāi)放模式,但這只是系統(tǒng)開(kāi)發(fā)一級(jí)的開(kāi)放性,在特定的應(yīng)用中無(wú)論是Client端還是Server端都還需要特定的軟件支持。由于沒(méi)能提供用戶真正期望的開(kāi)放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)用戶同時(shí)使用。而且代價(jià)高,效率低。如本文介紹的智能卡網(wǎng)吧管理系統(tǒng)軟件就是典型的C/S體系結(jié)構(gòu)管理軟件。一、C/S結(jié)構(gòu)的優(yōu)點(diǎn)和缺點(diǎn)C/S結(jié)構(gòu)的優(yōu)點(diǎn)是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶端響應(yīng)速度快。缺點(diǎn)主要有以下幾個(gè):只適用于局域網(wǎng)。而隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)辦公和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。這種方式遠(yuǎn)程訪問(wèn)需要專(zhuān)門(mén)的技術(shù),同時(shí)要對(duì)系統(tǒng)進(jìn)行專(zhuān)門(mén)的設(shè)計(jì)來(lái)處理分布式的數(shù)據(jù)??蛻舳诵枰惭b專(zhuān)用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺(tái)電腦出問(wèn)題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù)。特別是有很多分部或?qū)Yu(mài)店的情況,不是工作量的問(wèn)題,而是路程的問(wèn)題。還有,系統(tǒng)軟件升級(jí)時(shí),每一臺(tái)客戶機(jī)需要重新安裝,其維護(hù)和升級(jí)成本非常高。對(duì)客戶端的操作系統(tǒng)一般也會(huì)有限制??赡苓m應(yīng)于Win98,但不能用于win2000或WindowsXP?;蛘卟贿m用于微軟新的操作系統(tǒng)等等,更不用說(shuō)Linux、Unix等。二、C/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì)(1)、應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱(chēng)為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱(chēng)為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱(chēng)為客戶電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。(2)、數(shù)據(jù)的儲(chǔ)存管理功能較為透明。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,前臺(tái)應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明”的,他們無(wú)須過(guò)問(wèn)(通常也無(wú)法干涉)背后的過(guò)程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序不是非?!笆菪 ?,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。在C/S體系的下,數(shù)據(jù)庫(kù)不能真正成為公共、專(zhuān)業(yè)化的倉(cāng)庫(kù),它受到獨(dú)立的專(zhuān)門(mén)管理。(3)、C/S架構(gòu)的劣勢(shì)是高昂的維護(hù)成本且投資大。首先,采用C/S架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫(kù)平臺(tái)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫(kù)系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù)才能有效實(shí)現(xiàn),有這樣一些問(wèn)題,如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫(kù)服務(wù)器在線運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對(duì)服務(wù)器維護(hù)管理,又要對(duì)客戶端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。2.7本章小結(jié)本章主要介紹了系統(tǒng)使用到的相關(guān)技術(shù),包括JAVA平臺(tái)和JAVA語(yǔ)言特點(diǎn)的介紹、SWT/JFace技術(shù)的特點(diǎn)以及它的優(yōu)缺點(diǎn)的羅列、URL與URLConnection(統(tǒng)一資源定位器)的相關(guān)介紹、Java鏈表的整個(gè)實(shí)現(xiàn)過(guò)程、三種Socket套接字技術(shù)的簡(jiǎn)介,以及C/S結(jié)構(gòu)的一些基本介紹。

第3章系統(tǒng)分析3.1系統(tǒng)分析概述采用自頂向下的結(jié)構(gòu)化分析方法分析和表達(dá)用戶需求的方法:圖3-1需求分析圖用結(jié)構(gòu)化的方法做需求分析,可以將任何一個(gè)系統(tǒng)可以抽象成如下圖的形式:圖3-2系統(tǒng)抽象圖將處理功能分解成若干個(gè)子功能,再將各個(gè)子功能繼續(xù)分解,直到把整個(gè)系統(tǒng)工作流程表達(dá)清楚為止。3.2系統(tǒng)主要功能本系統(tǒng)主要功能涉及到如下部分:卡片管理、系統(tǒng)設(shè)置,聊天服務(wù)管理,另外還有管理員對(duì)網(wǎng)吧進(jìn)行上下機(jī)管理和網(wǎng)吧經(jīng)營(yíng)情況的管理。以下是本系統(tǒng)的模塊圖:圖3-3系統(tǒng)模塊圖1.卡片管理功能包括卡片發(fā)行、卡片充值、卡片注銷(xiāo)、卡片掛失等模塊。客戶可以用卡片進(jìn)行網(wǎng)吧上網(wǎng)消費(fèi),卡片有三種類(lèi)型,即普通卡、銀卡、金卡和計(jì)時(shí)卡。每種卡片可以擁有不同的優(yōu)惠方式,例如普通卡可以不打折,銀卡和金卡都可以進(jìn)行打折。上網(wǎng)顧客在卡中儲(chǔ)存一定數(shù)量的金額,每次上機(jī)費(fèi)用從中扣除。待卡中金額用完時(shí)可以向卡中加存,繼續(xù)使用。如卡片遺失就可去該網(wǎng)吧進(jìn)行掛失??蛻羧舨恍枰摼W(wǎng)吧計(jì)費(fèi)卡也可注銷(xiāo),拿回卡片內(nèi)剩余的金額。2.系統(tǒng)設(shè)置功能系統(tǒng)管理是網(wǎng)吧管理員才具有的功能,即網(wǎng)吧的費(fèi)率設(shè)置,智能卡計(jì)費(fèi)管理系統(tǒng)的各項(xiàng)功能都是根據(jù)經(jīng)營(yíng)中的實(shí)際作經(jīng)驗(yàn)及長(zhǎng)期發(fā)展策略而提煉而成,比如為了支持網(wǎng)吧優(yōu)惠政策,提供靈活機(jī)動(dòng)的費(fèi)率設(shè)置功能,讓網(wǎng)吧管理系統(tǒng)真正成為網(wǎng)吧的管家,而不是礙手礙腳的障礙。包括網(wǎng)吧不同卡片不同時(shí)間段的收費(fèi)設(shè)置和網(wǎng)吧所售商品的進(jìn)售價(jià)設(shè)置,通過(guò)這兩個(gè)設(shè)置可以根據(jù)當(dāng)時(shí)的需求對(duì)價(jià)格進(jìn)行管理。3.聊天服務(wù)管理功能聊天程序分為服務(wù)器端和客戶端兩個(gè)部分,服務(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)所有的用戶連接??蛻舳说墓δ転椋哼B接到已經(jīng)開(kāi)啟聊天服務(wù)的服務(wù)端;客戶可以配置要連接服務(wù)器端的IP地址與端口號(hào);用戶可以配置連接后顯示的客戶名;當(dāng)服務(wù)器開(kāi)啟的話,用戶可以隨時(shí)登陸和注銷(xiāo);用戶可以向網(wǎng)吧管理員發(fā)送消息,提出需要解決的問(wèn)題或者要求。4.上下機(jī)情況功能這一功能主要是管理網(wǎng)吧客戶的上下機(jī),客戶一上機(jī)即可以對(duì)其進(jìn)行計(jì)費(fèi),在上機(jī)的過(guò)程中客戶可以發(fā)送消息給管理員,要求購(gòu)買(mǎi)什么商品和購(gòu)買(mǎi)商品的數(shù)量,網(wǎng)吧管理員即可對(duì)其卡片進(jìn)行相應(yīng)的扣費(fèi)。若客戶要下機(jī)了,就可以進(jìn)行結(jié)帳退出。5.網(wǎng)吧經(jīng)營(yíng)情況功能這一功能主要是顯示網(wǎng)吧過(guò)去到現(xiàn)在的營(yíng)業(yè)情況,網(wǎng)吧產(chǎn)生的經(jīng)濟(jì)效益對(duì)網(wǎng)吧管理員和老板來(lái)說(shuō)可以一目了然,在這一模塊中還可以根據(jù)年月來(lái)顯示網(wǎng)吧的經(jīng)營(yíng)記錄,通過(guò)選擇需要顯示的年份或者月份從而顯示相關(guān)的一系列記錄,方便統(tǒng)計(jì)比較分析,提高經(jīng)濟(jì)效益。6.退出系統(tǒng)功能只要點(diǎn)擊退出按鈕,就會(huì)出現(xiàn)提示對(duì)話框“確定要退出嗎?”,點(diǎn)擊“是”即可退出系統(tǒng)。3.3數(shù)據(jù)流圖數(shù)據(jù)流圖是用來(lái)描述數(shù)據(jù)處理的過(guò)程,不反映時(shí)間的順序,只反映數(shù)據(jù)的流向、自然的邏輯過(guò)程和必要的邏輯數(shù)據(jù)存儲(chǔ),即表示“做什么”,而不表示“怎么做”我畢業(yè)設(shè)計(jì)的流圖大體如下所示:卡片管理網(wǎng)吧客戶系統(tǒng)管理聊天服務(wù)管理卡片管理網(wǎng)吧客戶系統(tǒng)管理聊天服務(wù)管理網(wǎng)吧經(jīng)營(yíng)情況管理網(wǎng)管修改各種費(fèi)率信息數(shù)據(jù)庫(kù)聯(lián)系網(wǎng)管操作操作聯(lián)系交換數(shù)據(jù)3.4數(shù)據(jù)字典數(shù)據(jù)字典是對(duì)系統(tǒng)用到的所有數(shù)據(jù)項(xiàng)和結(jié)構(gòu)的定義,以確保開(kāi)發(fā)人員使用統(tǒng)一的數(shù)據(jù)定義。本系統(tǒng)中的部分的數(shù)據(jù)字典如下:數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng):卡片ID含義說(shuō)明:唯一的表示一張卡片類(lèi)型:整型長(zhǎng)度:11取值含義:用戶自定義數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng):卡片類(lèi)型含義說(shuō)明:唯一的表示一種卡的類(lèi)型類(lèi)型:字符型長(zhǎng)度:10數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):卡片信息含義說(shuō)明:記錄卡片的所有信息。組成:卡片ID、卡片類(lèi)型、持卡人姓名、持卡人身份證號(hào)、卡內(nèi)金額、卡片押金、卡內(nèi)贈(zèng)送金額數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):卡片費(fèi)率信息表含義說(shuō)明:記錄各類(lèi)卡片上網(wǎng)消費(fèi)的收費(fèi)信息。組成:卡片類(lèi)型、最低收費(fèi)、最小收費(fèi)單位、每單位收費(fèi)、通宵計(jì)費(fèi)單位、通宵每單位計(jì)費(fèi)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ):上下機(jī)情況信息說(shuō)明:記錄客戶上下機(jī)情況信息存取方式:隨即存取處理過(guò)程處理過(guò)程:上下機(jī)說(shuō)明:客戶上下機(jī)輸入:客戶上下機(jī)信息輸出:客戶下機(jī)信息處理:保存上下機(jī)信息到數(shù)據(jù)庫(kù)3.5本章小結(jié)本章主要概述了系統(tǒng)的各個(gè)功能模塊,包括系統(tǒng)設(shè)置功能、卡片管理功能、聊天服務(wù)管理功能、退出系統(tǒng)功能、網(wǎng)吧經(jīng)營(yíng)情況功能、上下機(jī)情況功能。也分別介紹了各個(gè)功能模塊的相應(yīng)的功能;畫(huà)出了系統(tǒng)的數(shù)據(jù)流圖,寫(xiě)出了部分?jǐn)?shù)據(jù)字典。為系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的展開(kāi)打好了基礎(chǔ)。

第4章數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)是要求完全滿足業(yè)務(wù)的數(shù)據(jù)存儲(chǔ)要求。如果能夠設(shè)計(jì)一個(gè)合理的數(shù)據(jù)庫(kù)模型,不僅會(huì)降低程序編程和維護(hù)的難度,也會(huì)提高系統(tǒng)實(shí)際運(yùn)行的性能,因而必須仔細(xì)的制定設(shè)計(jì)步驟方案,了解規(guī)范的設(shè)計(jì)方法和必要的規(guī)則。4.1數(shù)據(jù)庫(kù)設(shè)計(jì)原則一個(gè)成功的管理系統(tǒng),是由:[50%的業(yè)務(wù)+50%的軟件]所組成,而50%的成功的軟件又有[25%的數(shù)據(jù)庫(kù)+25%的程序]所組成,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞是一個(gè)關(guān)鍵。如果把企業(yè)的數(shù)據(jù)比做生命所需的血液,那么數(shù)據(jù)庫(kù)設(shè)計(jì)就是應(yīng)用中最重要的一部分。對(duì)于智能卡網(wǎng)吧管理系統(tǒng)來(lái)說(shuō),擁有大量的上網(wǎng)人員需要強(qiáng)有力的數(shù)據(jù)庫(kù)支撐,但是對(duì)于本系統(tǒng)來(lái)說(shuō),由于不會(huì)在實(shí)際環(huán)境中運(yùn)行,所以數(shù)據(jù)庫(kù)的使用可以選擇容易使用,并且易于維護(hù)的、容易獲取的數(shù)據(jù)庫(kù)作為后臺(tái)存放網(wǎng)吧相關(guān)信息等的數(shù)據(jù)庫(kù)最終選擇了MYSQL作為后臺(tái)支持?jǐn)?shù)據(jù)庫(kù)。4.2概念結(jié)構(gòu)設(shè)計(jì)E-R模型和關(guān)系模型是兩種對(duì)數(shù)據(jù)庫(kù)不同的描述,在E-R模型中用實(shí)體集和聯(lián)系表示現(xiàn)實(shí)世界中的事物及其相互之間的關(guān)系;而在關(guān)系模型中則用單一的結(jié)構(gòu)來(lái)組織數(shù)據(jù)。所以,在這里就存在一個(gè)如何將E-R模型轉(zhuǎn)化為關(guān)系模型的問(wèn)題。下面介紹轉(zhuǎn)化所需要遵守的幾條準(zhǔn)則:★E-R模型中的每一個(gè)實(shí)體都轉(zhuǎn)化成一個(gè)同名的關(guān)系,實(shí)體集的屬性就是關(guān)系的屬性,實(shí)體集的碼就是關(guān)系的碼。★E-R模型中的每一個(gè)聯(lián)系也用一個(gè)關(guān)系表示,與該聯(lián)系相連的各實(shí)體集的碼以及聯(lián)系的屬性轉(zhuǎn)化為關(guān)系的屬性。該關(guān)系的碼有三種情況:●若聯(lián)系為1:1,則每個(gè)實(shí)體的碼均是該關(guān)系的候選碼?!袢袈?lián)系為1:n,則關(guān)系的碼為n端實(shí)體集的碼?!袢袈?lián)系為m:n,則關(guān)系的碼為各實(shí)體集碼的組合?!锞哂邢嗤a的關(guān)系模式可以合并(合并原則)。在這里我們將要設(shè)計(jì)的是數(shù)據(jù)庫(kù)的概念模式。根據(jù)對(duì)數(shù)據(jù)流圖和數(shù)據(jù)字典的分析,我們可以確定該應(yīng)用中的實(shí)體、屬性和實(shí)體之間的關(guān)系,并畫(huà)出表E-R圖:卡片卡片NNNN消費(fèi)設(shè)置消費(fèi)設(shè)置M1M1費(fèi)率費(fèi)率賬單賬單NN分析統(tǒng)計(jì)分析統(tǒng)計(jì)MM總營(yíng)業(yè)額 總營(yíng)業(yè)額圖4-1實(shí)體及其聯(lián)系圖cardsendcardsendidentifyPNumumnamecachPledgeinMoneycardTypecardIdidentifyPNumumnamecachPledgeinMoneycardTypecardId圖4-2卡片實(shí)體及其屬性圖feesfeesnightunitfeesnightfeesunitunitfeestimecardTypelowestnightunitfeesnightfeesunitunitfeestimecardTypelowest圖4-3費(fèi)率實(shí)體及其屬性圖totaltotalcardTypetotalMoneybuyMoneyplayMoneytimecardTypetotalMoneybuyMoneyplayMoneytime圖4-4經(jīng)營(yíng)匯總實(shí)體及其屬性圖updowncomputerupdowncomputermoneyIncardcomputerIdmoneyIncardcomputerIdcomputerAdresscomputerAdressplayMoneybuyMoneytotalMoneycardTypetimeplayMoneybuyMoneytotalMoneycardTypetime圖4-5上下機(jī)實(shí)體及其屬性圖goodsgoodsbuyingPricebuyingPricequntitygoodsTypesellingPricegoodsNameunitquntitygoodsTypesellingPricegoodsNameunit圖4-6商品實(shí)體及其屬性圖4.3邏輯結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)邏輯結(jié)構(gòu)的是和分三步進(jìn)行:將概念結(jié)構(gòu)(E-R圖)轉(zhuǎn)化為一般關(guān)系模型將轉(zhuǎn)化來(lái)的關(guān)系模型向MYSQL支持下的數(shù)據(jù)模型轉(zhuǎn)化對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化,消除冗余字段。對(duì)數(shù)據(jù)依賴進(jìn)行極小化處理。對(duì)關(guān)系模式進(jìn)行必要的分解合并和優(yōu)化,形成以下的邏輯結(jié)構(gòu)表4-1cardsend信息表字段數(shù)據(jù)類(lèi)型大小允許空/主鍵描述cardIdint11NO/主鍵卡片idcardTypevarchar20NO卡片類(lèi)型cachPledgefloat8NO卡片押金inMoneyfloat8NO卡內(nèi)金額givePresentfloat8NO卡內(nèi)贈(zèng)送金額namevarchar20NO持卡人姓名identifyPNumvarchar45NO持卡人身份證表4-2卡片fees信息表字段數(shù)據(jù)類(lèi)型大小允許空/主鍵描述cardtypevarchar10NO/主鍵卡片類(lèi)型lowestfloat8NO最低收費(fèi)timeint11NO最小收費(fèi)單位unitfeesfloat8NO每單位收費(fèi)nightfeesunitint11NO通宵計(jì)費(fèi)單位nightunitfeesfloat8NO通宵每單位計(jì)費(fèi)表4-3goods信息表字段數(shù)據(jù)類(lèi)型大小允許空/主鍵描述goodsIdint11NO/主鍵商品idgoodsTypevarchar10NO商品類(lèi)型goodsNamevarchar20NO商品名稱(chēng)goodsUnitvarchar10NO商品單位goodsQuantityint11NO商品數(shù)量sellingPricefloat8NO進(jìn)價(jià)buyingPricefloat8NO售價(jià)表4-4total匯總表字段數(shù)據(jù)類(lèi)型大小允許空/主鍵描述timevarchar20NO/主鍵經(jīng)營(yíng)時(shí)間playMoneyfloat8NO上網(wǎng)消費(fèi)buyMoneyfloat8NO購(gòu)物消費(fèi)cardTypevarchar10NO卡片類(lèi)型totalMoneyfloat8NO總消費(fèi)表4-5updowncomputer臨時(shí)信息表字段數(shù)據(jù)類(lèi)型大小允許空/主鍵描述computerIdint11NO/主鍵計(jì)算機(jī)idIpadressvarchar25NO計(jì)算機(jī)IpcardTypevarchar20YES卡片類(lèi)型moneyIncardfloat8YES卡內(nèi)金額timevarchar20YES上機(jī)時(shí)間playMoneyfloat8YES上網(wǎng)消費(fèi)buyMoneyfloat8YES購(gòu)物消費(fèi)totalMoneyfloat8YES總消費(fèi)yearint11YES上機(jī)年份monthint11YES上機(jī)月份dayint11YES上機(jī)時(shí)間(日)hourint11YES上機(jī)時(shí)間(時(shí))minuteint11YES上機(jī)時(shí)間(分)secondint11YES上機(jī)時(shí)間(秒)4.4本章小結(jié)本章介紹了數(shù)據(jù)庫(kù)的設(shè)計(jì)原則和概念結(jié)構(gòu)的設(shè)計(jì),作了對(duì)系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)工作。畫(huà)出了E-R圖和各個(gè)數(shù)據(jù)庫(kù)表的實(shí)體及其屬性圖,分析了表與表之間的關(guān)系,以及寫(xiě)出了詳細(xì)的表結(jié)構(gòu)信息。

第5章系統(tǒng)實(shí)現(xiàn)5.1插件的導(dǎo)入開(kāi)發(fā)這個(gè)系統(tǒng)我用的開(kāi)發(fā)工具是Eclipse,在Eclipse中我導(dǎo)入了三個(gè)插件用來(lái)進(jìn)行可視化的GUI編程,它們分別是emfsdoxsdSDK2.2,GEF-ALL-3.3和VE-SDK-1。這三個(gè)插件導(dǎo)入過(guò)程很輕松,只要分別將三個(gè)包中的features和plugins文件夾中的內(nèi)容全部分別復(fù)制到Eclipse的features和plugins文件夾內(nèi)。加入到工程后,重新啟動(dòng)Eclipse,這時(shí)候在工程中就可以新建可視化的類(lèi)了即(Visualclass),這樣為開(kāi)發(fā)系統(tǒng)的界面帶來(lái)了很多方便。5.2配置數(shù)據(jù)庫(kù)本系統(tǒng)用JDBC來(lái)連接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)是MYSQL,所以需要導(dǎo)入mysql-connector-java-3.1.jar這個(gè)java包。導(dǎo)入方法為:在工程下新建一個(gè)文件夾lib,把mysql-connector-java-3.1.jar這個(gè)jar包放入lib文件夾中,然后在工程的屬性中就可添加新的庫(kù)。這是com.mysql.jdbc.Driver是JDBC連Mysql數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序;jdbc:mysql://localhost:3306/system是連接數(shù)據(jù)庫(kù)的url;兩個(gè)root分別為Mysql的用戶名和密碼。5.3界面的實(shí)現(xiàn)5.3.1JavaVE實(shí)現(xiàn)系統(tǒng)服務(wù)端主界面系統(tǒng)服務(wù)端主頁(yè)面是MainFrame.java這個(gè)文件,具體代碼如下: publicvoidcreateSShell(){ sShell=newShell(display); sShell.setText("智能網(wǎng)吧管理系統(tǒng)"); sShell.setSize(newPoint(800,500)); sShell.setLayout(null); MenumenuBar=newMenu(sShell,SWT.BAR); MenuItemitemCard=newMenuItem(menuBar,SWT.CASCADE); Menumenu1=newMenu(itemCard); MenuItemitemCardsend=newMenuItem(menu1,SWT.PUSH); MenuItemitemCardinmoney=newMenuItem(menu1,SWT.PUSH); MenuItemitemCardloss=newMenuItem(menu1,SWT.PUSH); MenuItemitemCarddistroy=newMenuItem(menu1,SWT.PUSH); MenuItemitemSystemSet=newMenuItem(menuBar,SWT.CASCADE); Menumenu2=newMenu(itemSystemSet); MenuItemitemFeesSet=newMenuItem(menu2,SWT.PUSH); MenuItemitemGoodsSafeguard=newMenuItem(menu2,SWT.PUSH); MenuItemnews=newMenuItem(menu2,SWT.PUSH); itemSystemSet.setMenu(menu2); Menumenu3=newMenu(itemHelp); MenuItemitemAbout=newMenuItem(menu3,SWT.PUSH); MenuItemitemExit=newMenuItem(menuBar,SWT.PUSH); MenuItemitemChat=newMenuItem(menuBar,SWT.PUSH);sShell.open();}界面效果如下:圖5-1系統(tǒng)服務(wù)端主界面頁(yè)面中定義了兩個(gè)選項(xiàng)卡,一個(gè)選項(xiàng)卡用來(lái)控制客戶的上下網(wǎng)情況,對(duì)于未有人上網(wǎng)的計(jì)算機(jī)可以進(jìn)行上網(wǎng)服務(wù),對(duì)于已經(jīng)有人上網(wǎng)的計(jì)算機(jī)可以進(jìn)行下網(wǎng)服務(wù)和購(gòu)物服務(wù)。另一個(gè)選項(xiàng)卡用來(lái)統(tǒng)計(jì)網(wǎng)吧經(jīng)營(yíng)情況,網(wǎng)吧管理員可以根據(jù)年份或者月份對(duì)經(jīng)營(yíng)情況進(jìn)行查看和統(tǒng)計(jì)。5.3.2JavaVE實(shí)現(xiàn)系統(tǒng)客戶端主界面系統(tǒng)客戶端主頁(yè)面是ClientLogin.java這個(gè)文件,具體代碼如下:publicvoidcreateSShell(){ sShell=newShell(); sShell.setText("歡迎界面"); sShell.setSize(newPoint(300,200)); sShell.setLayout(null); connect=newButton(sShell,SWT.NONE); connect.setBounds(newRectangle(114,98,65,29)); connect.setText("聯(lián)系網(wǎng)管"); sShell.open();界面效果如下:圖5-2系統(tǒng)客戶端主界面5.4具體功能的實(shí)現(xiàn)5.4.1卡片管理模塊(1)系統(tǒng)的卡片發(fā)行對(duì)話框:圖5-3卡片發(fā)行對(duì)話框管理員輸入卡片信息,點(diǎn)擊發(fā)行進(jìn)行卡片發(fā)行。這里進(jìn)行了非空驗(yàn)證:if(cardType.getText()==null||cardType.getText().trim().equals("")){messageBox.setMessage("卡片類(lèi)型不能為空!"); }if(cachPledge.getText()==null||cachPledge.getText().trim().equals("")){messageBox.setMessage("押金不能為空!"); }if(inMoney.getText()==null||inMoney.getText().trim().equals("")){ messageBox.setMessage("充值金額不能為空!"); }if(name.getText()==null||name.getText().trim().equals("")){messageBox.setMessage("姓名不能為空!"); } Stringstr5=identifyPNum.getText();if(identifyPNum.getText()==null||identifyPNum.getText().trim().equals("")){messageBox.setMessage("身份證號(hào)碼不能為空!");}這里將對(duì)身份證號(hào)碼進(jìn)行唯一性驗(yàn)證,單擊“檢查唯一性”按鈕,系統(tǒng)將對(duì)輸入的身份證號(hào)碼與數(shù)據(jù)庫(kù)中已經(jīng)存在的身份證號(hào)碼進(jìn)行逐個(gè)匹配,如果已存在在數(shù)據(jù)庫(kù)中則發(fā)卡失敗,返回繼續(xù)填寫(xiě)信息;在其它信息和身份證號(hào)碼格式都填寫(xiě)正確的情況下若身份證號(hào)碼不存在數(shù)據(jù)庫(kù)中則發(fā)卡成功。圖5-4發(fā)卡成功對(duì)話框(2)系統(tǒng)的卡片掛失對(duì)話框:圖5-5發(fā)髂掛失對(duì)話框管理員輸入來(lái)掛失客戶的身份證號(hào)碼,點(diǎn)擊“查找”按鈕,客戶的卡片內(nèi)的一切信息就會(huì)顯示出來(lái),包括卡內(nèi)的剩余金額balance也會(huì)顯示出來(lái),然后點(diǎn)擊“掛失”按鈕,就會(huì)出現(xiàn)一個(gè)選擇對(duì)話框是否返回客戶balance元,點(diǎn)擊“”就掛失成功,卡內(nèi)的剩余金額就變成0元。(3)系統(tǒng)的卡片充值對(duì)話框:圖5-6卡片充值對(duì)話框通過(guò)卡號(hào)對(duì)卡片進(jìn)行充值,關(guān)鍵代碼為:Stringsql1="selectinMoneyfromcardsendwherecardId='"+str1+"'";//查找相應(yīng)要充值卡片的本來(lái)剩余金額rs=stmt.executeQuery(sql1);//執(zhí)行上條SQL語(yǔ)句 if(rs.next()){str2=rs.getFloat("inMoney");//得到剩余金額的值} floatstr4=str2+str3;//剩余金額與剛充值的金額相加Stringsql2="updatecardsendsetinMoney="+str4+"wherecardId='"+str1+"'";//把數(shù)據(jù)庫(kù)中的剩余金額改為充值之后的金額,從而充值動(dòng)作完成stmt.executeUpdate(sql2);//執(zhí)行上條SQL語(yǔ)句(4)系統(tǒng)的卡片注銷(xiāo)對(duì)話框:圖5-7卡片注銷(xiāo)對(duì)話框若客戶不需要此張卡片,或者卡片已經(jīng)永久遺失,則可以通過(guò)該功能注銷(xiāo)卡片,通過(guò)用戶的身份證注銷(xiāo)卡片,返還客戶卡片內(nèi)的剩余金額。關(guān)鍵代碼如下:Stringsql="select*fromcardsendwhereidentifyPNum='"+str1+"'";//查找要注銷(xiāo)卡片的相關(guān)信息,并顯示在對(duì)話框中 rs=stmt.executeQuery(sql);//執(zhí)行以上SQL語(yǔ)句 Stringsql="deletefromcardsendwhereidentifyPNum='"+str2+"'";//刪除要注銷(xiāo)卡片的所有信息stmt.executeUpdate(sql);//執(zhí)行以上SQL語(yǔ)句5.4.2系統(tǒng)管理模塊點(diǎn)主對(duì)話框上的菜單欄中的系統(tǒng)設(shè)置,下拉菜單出現(xiàn)三個(gè)選擇項(xiàng):收費(fèi)設(shè)置、商品資料維護(hù)、系統(tǒng)初始化。收費(fèi)設(shè)置收費(fèi)設(shè)置類(lèi)FeesSet.java調(diào)用了修改卡片費(fèi)率的類(lèi)ModifyFees.java,關(guān)鍵代碼為:ModifyFeesmodify=newModifyFees();//創(chuàng)建實(shí)例對(duì)象modifymodify.createSShell(ctype);//引用類(lèi)ModifyFees中的createSShell()方法圖5-8收費(fèi)設(shè)置對(duì)話框選中要修改的卡類(lèi)的收費(fèi)信息行,接著點(diǎn)擊修改記錄按鈕,即會(huì)彈出修改收費(fèi)信息頁(yè)面,若沒(méi)有選中數(shù)據(jù)項(xiàng),則會(huì)報(bào)錯(cuò)。圖5-9修改收費(fèi)信息對(duì)話框圖5-10報(bào)錯(cuò)對(duì)話框商品資料維護(hù)商品資料維護(hù)類(lèi)GoodsSafeguard.java調(diào)用了商品資料信息修改類(lèi)GoodsModify.java。關(guān)鍵代碼為: ModifyGoodsmodify=newModifyGoods();//創(chuàng)建實(shí)例對(duì)象modify modify.createSShell(goodsIp);//引用類(lèi)ModifyGoods中的createSShell()方法圖5-11商品資料設(shè)置對(duì)話框在商品資料設(shè)置對(duì)話框中有修改商品信息和添加商品信息的功能,選中要修改的信息項(xiàng),然后點(diǎn)擊修改記錄,彈出修改商品信息對(duì)話框。圖5-12修改商品信息對(duì)話框修改后點(diǎn)修改按紐修改商品信息。關(guān)鍵代碼:Stringsql="updategoodssetquantity="+Quantity+",buyingPrice="+BuyingPrice+",sellingPrice="+SellingPrice+"wheregoodsName='"+GoodsName+"'";stmt.executeUpdate(sql);//調(diào)用executeUpdate()方法實(shí)現(xiàn)修改商品信息。在商品資料設(shè)置對(duì)話框中點(diǎn)擊添加記錄按鈕,即會(huì)彈出添加商品信息對(duì)話框,在添加商品信息對(duì)話框中填寫(xiě)完整要添加商品的信息后,點(diǎn)擊添加按鈕完成了對(duì)商品信息的添加,關(guān)鍵代碼:strSQL="insertintogoods(goodsType,goodsName,unit,quantity,buyingprice,sellingprice)values('"+str1+"','"+str2+"','"+str3+"','"+str4+"','"+str5+"','"+str6+"')";stmt.executeUpdate(strSQL);//調(diào)用executeUpdate()方法實(shí)現(xiàn)添加商品信息。系統(tǒng)初始化系統(tǒng)初始化的類(lèi)為New.java,該類(lèi)實(shí)現(xiàn)系統(tǒng)中部分信息的處始清零,關(guān)鍵代碼為:Stringsql1="deletefromgoods";//商品資料初始化代碼 stmt.executeUpdate(sql1);//調(diào)用executeUpdate()方法執(zhí)行sql語(yǔ)句Stringsql1="deletefromtotal";//經(jīng)營(yíng)情況初始化代碼stmt.executeUpdate(sql1);//調(diào)用executeUpdate()方法執(zhí)行sql語(yǔ)句Stringsql1="deletefromfees";//收費(fèi)資料初始化代碼stmt.executeUpdate(sql1);//調(diào)用executeUpdate()方法執(zhí)行sql語(yǔ)句圖5-13系統(tǒng)信息初始化對(duì)話框點(diǎn)“商品資料初始化”按鈕,商品資料信息表中的內(nèi)容全部被清楚,可以重新設(shè)置商品資料的一切信息。其它按鈕也是如此。5.4.3服務(wù)端聊天管理模塊該模塊是和客戶端進(jìn)行聯(lián)系的。點(diǎn)主頁(yè)面的開(kāi)啟聊天服務(wù)圖5-14服務(wù)端聊天主對(duì)話框管理員要啟動(dòng)服務(wù),客戶端的聊天程序才能連接上服務(wù)器而進(jìn)行正常的聊天,點(diǎn)端口設(shè)置可以對(duì)要偵聽(tīng)的端口進(jìn)行設(shè)置,默認(rèn)的端口號(hào)為8888,點(diǎn)停止服務(wù)服務(wù)端就會(huì)被關(guān)閉。服務(wù)端聊天管理主要包括6個(gè)文件,它們的功能如下:(1)ChatServer.java包含名為ChatServer的public類(lèi),其主要功能為定義服務(wù)器端的界面,添加事件偵聽(tīng)與事件處理。調(diào)用ServerListen類(lèi)來(lái)實(shí)現(xiàn)服務(wù)端用戶上線與下線的偵聽(tīng),調(diào)用ServerReceive類(lèi)來(lái)實(shí)現(xiàn)服務(wù)器端的消息收發(fā)。(2)ServerListen.java該類(lèi)實(shí)現(xiàn)服務(wù)端用戶上線與下線的偵聽(tīng)。該類(lèi)對(duì)用戶上線下線的偵聽(tīng)是通過(guò)用戶鏈表(UserLinkList)來(lái)實(shí)現(xiàn)的,當(dāng)用戶上線下線的情況發(fā)生變化時(shí),該類(lèi)會(huì)對(duì)主類(lèi)的界面進(jìn)行相應(yīng)的修改。(3)ServerReceive.java該類(lèi)是實(shí)現(xiàn)服務(wù)器消息收發(fā)的類(lèi)。該類(lèi)分別定義了向客戶發(fā)送消息的方法,發(fā)送的消息會(huì)顯示在主界面類(lèi)的界面上。PortConf.java該類(lèi)是對(duì)服務(wù)器端偵聽(tīng)端口進(jìn)行修改配置的類(lèi)。(5)Node.java用戶鏈表的節(jié)點(diǎn)類(lèi),定義了鏈表中的用戶。該類(lèi)與前面所講的鏈表節(jié)點(diǎn)Node類(lèi)的功能相當(dāng)。(6)UserLinkList.java用戶鏈表節(jié)點(diǎn)的具體實(shí)現(xiàn)類(lèi)。該類(lèi)通過(guò)構(gòu)造函數(shù)構(gòu)造用戶鏈表,定義了添加用戶、刪除用戶、返回用戶數(shù)、根據(jù)用戶名查找用戶、根據(jù)索引查找用戶這5個(gè)方法。點(diǎn)退出按鈕,即會(huì)彈出是否真的要退出的選擇對(duì)話框。點(diǎn)擊是或者按回車(chē)鍵,就退出了界面。圖5-15聊天服務(wù)退出對(duì)話框5.4.4客戶端聊天服務(wù)模塊聊天服務(wù)客戶端主要包括5個(gè)文件,它們的功能如下:(1)ChatClient.java包含名為ChatClient的public類(lèi),其主要功能為定義客戶端的界面,添加事件偵聽(tīng)與事件處理。該類(lèi)定義了Connect()與DisConnect()方法實(shí)現(xiàn)與服務(wù)器的連接與斷開(kāi)連接。同時(shí)該類(lèi)還定義了SendMessage()方法向網(wǎng)管發(fā)送消息或者與網(wǎng)管悄悄話聊天。(2)ClientReceive該類(lèi)是實(shí)現(xiàn)服務(wù)器端與客戶端消息收發(fā)的類(lèi)。(3)ConnectConf.java該類(lèi)繼承自對(duì)話框,是用戶對(duì)所要連接的服務(wù)器IP及偵聽(tīng)端口進(jìn)行修改配置的類(lèi)。(4)UserConf.java該類(lèi)也繼承自對(duì)話框,是用戶對(duì)連接到服務(wù)器時(shí)所顯示的用戶名進(jìn)行修改配置的類(lèi)。圖5-16聊天服務(wù)客戶端界面點(diǎn)聊天服務(wù)客戶端界面用戶設(shè)置,用戶可以配置連接后顯示的用戶名,若沒(méi)有配置用戶名,則顯示系統(tǒng)默認(rèn)的用戶名。關(guān)鍵代碼:userInputName=userName.getText();/*輸入的用戶名在非空和字符小于15個(gè)字符的情況下,保存成功*/圖5-17客戶端用戶名配置界面點(diǎn)聊天服務(wù)客戶端界面連接設(shè)置,用戶可以配置要連接服務(wù)器的IP地址與端口號(hào)。關(guān)鍵代碼: userInputIp=""+InetAddress.getByName(inputIp.getText());userInputIp=userInputIp.substring(1);//判斷端口號(hào)是否合法savePort=Integer.parseInt(inputPort.getText());if(savePort<1||savePort>65535){DLGINFO.setText("偵聽(tīng)端口必須是0-65535之間的整數(shù)!");inputPort.setText("");return;}//判斷端口號(hào)是否合法圖5-18連接設(shè)置界面點(diǎn)登錄,如果服務(wù)器端已經(jīng)啟動(dòng)了服務(wù),則用戶可以正常與網(wǎng)管進(jìn)行聊天。用戶登陸后也可以隨時(shí)注銷(xiāo)和退出客戶端聊天界面。如果服務(wù)器沒(méi)有被啟動(dòng),登錄就失敗。關(guān)鍵代碼: try{ socket=newSocket(ip,port); } catch(Exceptione){ JOptionPane.showConfirmDialog( this,"不能連接到指定的服務(wù)器。\n請(qǐng)確認(rèn)連接設(shè)置是否正確。","提示",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE); return; }圖5-19客戶端用戶登錄失敗界面5.4.5系統(tǒng)其它功能模塊(1)網(wǎng)吧經(jīng)營(yíng)查詢模塊圖5-20網(wǎng)吧經(jīng)營(yíng)查詢界面在這一模塊中可以根據(jù)年月來(lái)顯示網(wǎng)吧的經(jīng)營(yíng)記錄,通過(guò)選擇需要顯示的年份或者月份從而顯示相關(guān)的一系列記錄,方便統(tǒng)計(jì)比較分析,提高經(jīng)濟(jì)效益。關(guān)鍵代碼:Stringsql1="select*fromtotalwhereyear="+Year+"";//SQL語(yǔ)句按年份查詢r(jià)s=stmt.executeQuery(sql1);//執(zhí)行SQL語(yǔ)句Stringsql1

溫馨提示

  • 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)論