網(wǎng)吧管理系統(tǒng)論文-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第1頁(yè)
網(wǎng)吧管理系統(tǒng)論文-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第2頁(yè)
網(wǎng)吧管理系統(tǒng)論文-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第3頁(yè)
網(wǎng)吧管理系統(tǒng)論文-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第4頁(yè)
網(wǎng)吧管理系統(tǒng)論文-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 本文配套程序下載地址 : 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ()-大學(xué)生畢業(yè)設(shè)計(jì)站 ,免費(fèi)畢業(yè)設(shè)計(jì)論文 ,無(wú)憂無(wú)慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計(jì) ,出售各類畢業(yè)設(shè)計(jì)源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費(fèi)視頻教程 ,我們將竭誠(chéng)為您服務(wù)! 第一章 緒 論 1 1 前言 隨著高科技的蓬勃發(fā)展,智能化管理已經(jīng)走進(jìn)了人們的社會(huì)生活,一座座智能化大廈拔地而起,適應(yīng) 信息的時(shí)代需要 ,作為跨世紀(jì)使用的建筑 ,必須在功能上滿足當(dāng)前和未來發(fā)展的需求 ,成為文化和經(jīng)濟(jì)發(fā)展的基地。 門禁系統(tǒng)開發(fā)作為一項(xiàng)先進(jìn)的高科技技術(shù)防范和管理手段,在一些經(jīng) 濟(jì)發(fā)達(dá)的國(guó)家已經(jīng)廣泛應(yīng)用于科研、工業(yè)、博物館、酒店、商場(chǎng)、醫(yī)療監(jiān)護(hù)、銀行、監(jiān)獄等,特別是由于系統(tǒng)本身具有隱蔽性,及時(shí)性等特點(diǎn),在許多領(lǐng)域的應(yīng)用越來越廣泛。 門禁系統(tǒng)的技術(shù)不斷向前發(fā)展 , 用戶需求也在發(fā)生變化 , 因此門禁系統(tǒng)的設(shè)計(jì)與實(shí)施應(yīng)考慮到將來可擴(kuò)展的實(shí)際需要 , 亦即 : 可靈活增減或更新各個(gè)子系統(tǒng) , 滿足不同時(shí)期的需要 , 保持長(zhǎng)時(shí)間領(lǐng)先地位 , 成為智能建筑的典范。系統(tǒng)設(shè)計(jì)時(shí) ,對(duì)需要實(shí)現(xiàn)的功能進(jìn)行了合理配置 ,并且這種配置是可以改變的 ,設(shè)置甚至在工程完成后 ,這種配置的改變也是可能的和方便的 .系統(tǒng)軟件根據(jù)開發(fā)商 符合不同歷史時(shí)期市場(chǎng)的需求進(jìn)行相應(yīng)的升級(jí)和完善 ,并免費(fèi)為相應(yīng)的應(yīng)用客戶進(jìn)行免費(fèi)的軟件升級(jí) .同時(shí),可以擴(kuò)展為考勤系統(tǒng)、會(huì)議簽到系統(tǒng)、巡邏管理系統(tǒng),就餐管理系統(tǒng)等一卡通工程。 1 2 Delphi 簡(jiǎn)介 本課題是在 Delphi 的基礎(chǔ)上開發(fā)研制的,下面對(duì) Delphi進(jìn)行簡(jiǎn)單的介紹。Delphi是 Borland 公司開發(fā)的可視化軟件開發(fā)系統(tǒng)。 Delphi系列軟件的工作平臺(tái)相當(dāng)廣泛,可以工作于 Windows 95、 Windows98、 Windows NT、 Windows2000以及 Windows XP下,編程所用的 語(yǔ)言為結(jié)構(gòu)化程度相當(dāng)高的 Object Pascal 語(yǔ)言。用過 Delphi 系列軟件的程序員一定都會(huì)覺得 Object Pascal 語(yǔ)言具有高度清晰的結(jié)構(gòu),高效率的優(yōu)化系統(tǒng),是一種簡(jiǎn)單易學(xué),但又不乏其作為優(yōu)秀編無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 程語(yǔ)言的特點(diǎn)。同時(shí),由于 Delphi采用了內(nèi)置高速的優(yōu)化編譯器,使得程序的編譯、鏈接速度快的驚人。在與其相類似的可視化軟件開發(fā)系統(tǒng) Microsoft Visual C+的比較中,我們不可否認(rèn) Microsoft Visual C+的功能相當(dāng)強(qiáng)大,但調(diào)試程序時(shí)的編譯時(shí)間過長(zhǎng),使很多程序員感到棘手;而 Delphi 在編譯時(shí)等待的時(shí)間很少。 Delphi 的編譯器采用了事件編譯和選擇鏈接技術(shù),使生成的可執(zhí)行文件冗余更少,運(yùn)行起來速度更快。另外,由于 Delphi生成的可執(zhí)行文件不需要?jiǎng)討B(tài)鏈接庫(kù)的支持,可以直接交付使用,這會(huì)使得使用 Delphi 的程序員充分享受 Delphi 為他們帶來的方便快捷。 Delphi 系列另一個(gè)廣受歡迎的原因是其強(qiáng)大的可擴(kuò)展數(shù)據(jù)庫(kù)功能。 Delphi6.0 不但在傳統(tǒng)的開發(fā)能力方面持續(xù)進(jìn)步,讓程序員能夠享有更具生產(chǎn)力的開發(fā)環(huán)境,對(duì)于最新的信息技術(shù),也有非常良好的支持,讓程序員能夠快速地使用這些新的技術(shù)。 在對(duì) Delphi 有了一個(gè)初步的了解之后,我們將進(jìn)入對(duì) Delphi 集成開發(fā)環(huán)境和工程管理的介紹,使大家能夠進(jìn)一步深入了解 Delphi,并在此基礎(chǔ)上介紹編輯器和調(diào)試器的使用方法。 IDE是提供設(shè)計(jì)、運(yùn)行和測(cè)試應(yīng)用程序所需的所有工具的集成環(huán)境。 Delphi的集成開發(fā)環(huán)境( IDE)包括代碼編輯器、調(diào)試器、工具欄、圖像編輯器以及諸多用于應(yīng)用程序開發(fā)的組件(如數(shù)據(jù)庫(kù)開發(fā)組件等)。所有這些都以集成方式進(jìn)行操作,極大地簡(jiǎn)化了用戶編程的過程。 1 3 研究背景 當(dāng)前 ,大學(xué)內(nèi)的微機(jī)機(jī)房正在朝著開放式 ,大型化方向發(fā)展。一個(gè) 教學(xué)實(shí)驗(yàn)中心里的幾個(gè)機(jī)房有著幾百臺(tái)微機(jī) ,已是很普遍的現(xiàn)象。使用方式也由原來的以計(jì)劃安排集體上機(jī)為主 ,變?yōu)橐詡€(gè)人自由上機(jī)為主。因此、以往那種主要針對(duì)集體上機(jī)的以機(jī)房和時(shí)間段為單位來安排機(jī)器使用的管理方式已顯得不適用。為適應(yīng)新的應(yīng)用和發(fā)展 ,結(jié)合中心自身的特點(diǎn) ,四川大學(xué)工程設(shè)計(jì)中心和西南交通大學(xué)共同研制出了這套用于微機(jī)機(jī)房管理的集中式 IC 卡控制門禁系統(tǒng)。該系統(tǒng)著眼于對(duì)大型開放式機(jī)房進(jìn)行集中管理。把原來的分機(jī)房分散管理變?yōu)閱我怀鋈肟诘募泄芾?。變?cè)瓉淼娜斯び?jì)時(shí)計(jì)費(fèi)為計(jì)算機(jī)管理的 IC 卡計(jì)費(fèi)。 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 1 4 特點(diǎn)及組成原 理 該系統(tǒng)有如下特點(diǎn) : (1)技術(shù)上充分利用機(jī)房?jī)?nèi)部局域網(wǎng)系統(tǒng) (LAN)環(huán)境。管轄范圍內(nèi)只設(shè)一個(gè)出入口。將所有投入使用的機(jī)器置于集中統(tǒng)一管理之下。 (2)采用多模塊結(jié)構(gòu)化模式設(shè)計(jì) ,使用多種軟件混合編程。實(shí)現(xiàn)子系統(tǒng)內(nèi)數(shù)據(jù)庫(kù)管理和通訊及子系統(tǒng)與子系統(tǒng)之間的通訊。通過相互間的通訊 ,把幾個(gè)子系統(tǒng)的結(jié)合在一起。形成一個(gè)完善的門禁管理系統(tǒng)。 (3)用戶界面友好、操作簡(jiǎn)便、并且具有較好的可維護(hù)性。 (4)系統(tǒng)除強(qiáng)調(diào)其實(shí)用性外 ,還對(duì)其安全性和可靠性作了充分考慮。 該系統(tǒng)主要由 IC 卡刷卡機(jī)管理子系統(tǒng)、登錄管理服務(wù)器及用戶端登 錄子系統(tǒng)組成。它們之間通過內(nèi)部局域網(wǎng)交換信息以保證機(jī)房外刷卡和機(jī)房?jī)?nèi)登錄能協(xié)調(diào)工作。除此之外 ,還有與之相配套的數(shù)據(jù)后備系統(tǒng)提供電源保障的 UPS 系統(tǒng),在門禁系統(tǒng)管理下 ,刷卡機(jī)管理子系統(tǒng)向機(jī)器使用者提供上機(jī)刷卡服務(wù)。持卡用戶首先在設(shè)于機(jī)房外出入口的刷卡機(jī)前刷卡 ,刷卡機(jī)管理管理服務(wù)器在對(duì)卡的有效性進(jìn)行驗(yàn)證 ,待驗(yàn)證無(wú)誤后使用者方可能進(jìn)入機(jī)房。進(jìn)入機(jī)房后還要進(jìn)行登記才能使用機(jī)器。登錄管理服務(wù)器及用戶端登錄子系統(tǒng)提供使用者刷卡后進(jìn)入機(jī)房后的登錄服務(wù)。上機(jī)要進(jìn)行登錄是為了避免無(wú)卡上機(jī)和一人使用多臺(tái)機(jī)器情況的發(fā)生而設(shè)計(jì)的。 使用者進(jìn)入機(jī)房后 ,可以隨意選定機(jī)位但必需進(jìn)行登錄后才能獲得機(jī)器的使用權(quán)。為了避免未經(jīng)刷卡就上機(jī) ,在登錄管理服務(wù)器的管理下 ,未刷卡的人將不能通過登錄驗(yàn)證 ,一個(gè)人也不能同時(shí)登錄兩臺(tái)機(jī)器。同樣 ,一臺(tái)已經(jīng)被登錄使用的機(jī)器如果未被使用者注銷 ,它也不能再被其他人登錄。當(dāng)機(jī)器使用完畢后 ,使用者必須先執(zhí)行登錄管理服務(wù)器所提供的下機(jī)注銷功能 ,釋放該機(jī)器的使用權(quán) ,然后再到刷卡機(jī)前刷卡 ,刷卡機(jī)管理子系統(tǒng)根據(jù)使用時(shí)間計(jì)算并從卡上扣除相應(yīng)機(jī)時(shí)金額。如此 ,門禁管理系統(tǒng)就完成了一個(gè)上下機(jī)的管理過程。從上面上下機(jī)的過程可以看出 ,門禁管理系 統(tǒng)的核心部分主要由設(shè)在機(jī)房外的 IC 卡刷卡機(jī)管理子系統(tǒng)、登錄管理服務(wù)器和裝在機(jī)房?jī)?nèi)每臺(tái)機(jī)器上的用戶端登錄子系統(tǒng)組成 ,形成內(nèi)外兩道防線。使其即實(shí)現(xiàn)上機(jī)必須刷卡 ,且一人只能使用一臺(tái)計(jì)算機(jī) ,又能根據(jù)需要自由選定機(jī)位 ,調(diào)換機(jī)位。給管理和使用都帶來了方無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 便。下面分別介紹各子系統(tǒng)的功能及工作原理。 1 4 1 刷卡機(jī)管理子系統(tǒng) 刷卡機(jī)管理子系統(tǒng)負(fù)責(zé)對(duì)出入機(jī)房進(jìn)行計(jì)時(shí) ,以及對(duì)卡的有效性進(jìn)行驗(yàn)證。它還兼有對(duì)當(dāng)前正在上機(jī)和當(dāng)日上機(jī)總?cè)藬?shù)進(jìn)行統(tǒng)計(jì)的功能。該子系統(tǒng)由 IC 卡刷卡機(jī)和刷卡機(jī)管理服務(wù)器組成。 IC 卡刷卡機(jī)由單片機(jī)加上一個(gè) 通過 IC 卡機(jī)構(gòu)成 ,使其具有了和刷卡機(jī)管理服務(wù)器之間進(jìn)行通訊的能力和驅(qū)動(dòng)數(shù)碼管顯示的能力。加上一個(gè)多用戶串行通信卡與刷卡機(jī)進(jìn)行通信 ,一臺(tái)刷卡機(jī)管理服務(wù)器上的多用戶卡最多可掛接 8 臺(tái) IC 卡刷卡機(jī)。 IC 卡使用者刷卡后 ,刷卡機(jī)將 IC 卡信息送至刷卡機(jī)管理服務(wù)器 ,經(jīng)校驗(yàn)傳送信息無(wú)誤后 ,刷卡機(jī)管理服務(wù)器查找數(shù)據(jù)庫(kù)對(duì)該卡記錄進(jìn)行處理 ,判別是上機(jī)還是下機(jī) ,如果是上機(jī) ,就必須對(duì)該卡的有效性進(jìn)行驗(yàn)證。它要檢查該卡是否已經(jīng)超過使用期限、是否是掛失卡、卡上金額是否滿足設(shè)定的要求等。如驗(yàn)證有誤 ,管理服務(wù)器送相應(yīng)錯(cuò)誤代碼至 IC 卡刷卡機(jī) ,IC 卡刷卡機(jī)將顯示誤代碼 ,并發(fā)聲提示。如果是下機(jī) ,管理服務(wù)器首先要通過 LAN 從用戶端登錄服務(wù)器獲取該卡登錄信息 ,判斷該卡是否按正常下機(jī)步驟已經(jīng)注銷。如已注銷 ,根據(jù)用機(jī)時(shí)間和設(shè)定的機(jī)時(shí)價(jià)格送至刷卡機(jī)扣出金額并清除庫(kù)中相應(yīng)的上機(jī)信息。否則送“尚未注銷”錯(cuò)誤代碼至 IC 卡刷卡機(jī)通知該卡用戶返回機(jī)房注銷機(jī)器以釋放該機(jī)器的使用權(quán)。一次刷卡過程在 500ms 內(nèi)完成。該系統(tǒng)還可按不同機(jī)房的不同機(jī)型設(shè)置收費(fèi)標(biāo)準(zhǔn)。根據(jù)實(shí)際應(yīng)用的需要 ,該子系統(tǒng)還設(shè)置了跨日下機(jī) ,不注銷刷卡下機(jī)等特殊處理功能。登錄管理服務(wù)器及用戶端錄子系統(tǒng)該子系統(tǒng)由一 個(gè)含有控制引導(dǎo)過程的擴(kuò)展 ROM 卡和事先寫在硬盤特殊位置的登錄軟件構(gòu)成。放在 ROM 擴(kuò)展卡上的程序用來獲取對(duì)系統(tǒng)引導(dǎo)過程的控制權(quán) ,確保該計(jì)算機(jī)的使用者必須經(jīng)過上機(jī)登錄并且有效才能取得對(duì)該機(jī)器的使用權(quán)。由于采用了硬件設(shè)計(jì) ,一般用戶無(wú)法繞過登錄 ,因此 ,設(shè)置登錄功能就有效地避免了未經(jīng)刷卡就使用機(jī)器或一個(gè)使用多臺(tái)機(jī)器現(xiàn)象的發(fā)生。用戶端登錄服務(wù)通訊程序 BOLABDC+編寫 ,它的作用是用它通過 LAN 與登錄服務(wù)器進(jìn)行通訊 ,以完成對(duì)該機(jī)的上機(jī)登錄和下機(jī)注銷以及更改密碼的工作。使用者刷卡進(jìn)入機(jī)房后 ,首先將申請(qǐng)?jiān)摍C(jī)使用權(quán)的用戶的 卡號(hào) ,密碼輸入。登錄服務(wù)通訊程序?qū)⑤斎氲目ㄌ?hào) ,密碼連同本機(jī)地址一道通過 LAN 發(fā)送至登錄管理服務(wù)器 ,登無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 錄管理服務(wù)器收到登錄申請(qǐng)請(qǐng)求后通過 LAN 查詢刷卡機(jī)管理服務(wù)器。通過卡號(hào)查詢檢查該卡用戶是否已經(jīng)刷卡。如果找到該卡的刷卡信息并且核對(duì)密碼無(wú)誤 ,則返回登錄成功信息到用戶終端機(jī)。用戶終端機(jī)收到返回的登錄成功信息后將控制權(quán)交本機(jī) WIN98 引導(dǎo)系統(tǒng)。進(jìn)入正常使用狀態(tài)。否則 ,如果在刷卡機(jī)管理服務(wù)器未查到該用戶的刷卡信息或核對(duì)密碼有誤 ,則返回一登錄失敗以及相應(yīng)的錯(cuò)誤信息到用戶終端機(jī)。用戶終端機(jī)收到返回錯(cuò)誤信息后將在計(jì)算機(jī)屏 幕上顯示“無(wú)此卡號(hào)”或“密碼錯(cuò)誤”的信息 ,讓使用者確定是否刷卡,或是輸入了錯(cuò)誤的卡號(hào)或密碼而作出相應(yīng)處理 ,直至登錄正確。同樣 ,使用者在機(jī)器使用完后要使用戶端登錄服務(wù)提供的注銷功能進(jìn)行注銷 ,才能釋放該機(jī)的使用權(quán) ,才能正常通過刷卡機(jī)管理子系統(tǒng)刷卡下機(jī)。在登錄管理服務(wù)器端運(yùn)行的登錄軟件 ,不僅負(fù)責(zé)對(duì)用戶登錄和注銷的及時(shí)處理 ,還對(duì)登錄后的使用情況進(jìn)行管理和監(jiān)控。它記錄并保存用戶上機(jī)的起始時(shí)間和使用者機(jī)位變更情況。以備需要時(shí)查詢。它還負(fù)責(zé)對(duì)集體上機(jī)這類不需登錄的情況進(jìn)行處理。登錄管理服務(wù)器端可以把某些機(jī)位設(shè)置為不檢測(cè)卡 號(hào)和登錄。因此集體上機(jī)的用戶在指定機(jī)位上無(wú)須登錄即可使用計(jì)算機(jī)。 1 4 2 數(shù)據(jù)后備系統(tǒng) 在整個(gè)門禁系統(tǒng)運(yùn)行過程中 ,數(shù)據(jù)的可靠性和安全性是非常重要的 ,數(shù)據(jù)一但丟失或遭到破壞將會(huì)造成巨大損失。因此 ,從系統(tǒng)及數(shù)據(jù)的安全考慮。專門為各子系統(tǒng)軟件設(shè)計(jì)了一個(gè)自動(dòng)備份模塊。該自動(dòng)備份模塊確保各子系統(tǒng)不僅要將自己的數(shù)據(jù)保存一段時(shí)間 ,在每天關(guān)機(jī)前退出相應(yīng)的管理程序時(shí) ,各子系統(tǒng)還會(huì)啟動(dòng)自己的自動(dòng)備份模塊 ,自動(dòng)將當(dāng)日的所有數(shù)據(jù)通過 LAN 傳送到一個(gè)專門的數(shù)據(jù)后備服務(wù)器予以保存。這樣 ,即使發(fā)生意外 ,最多只能影響到當(dāng)日數(shù)據(jù)。從而把損失降到最少。 1 4 3 UPS 系統(tǒng) 為保證因意外事故導(dǎo)致突然停電后 ,所有的登錄及刷卡信息不被丟失和使用者能刷卡下機(jī)。門禁系統(tǒng)專門配備了 50KW/UPS 不間斷電源 ,在電網(wǎng)停電時(shí)能為各子系統(tǒng)提供不少于 30 分鐘的供電。保證正在上機(jī)的使用者都能在這段時(shí)間無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 內(nèi)能利用刷卡機(jī)子系統(tǒng)提供的“不注銷下機(jī)”功能正常刷卡下機(jī)。管理人員也能在所有使用者刷卡退出后按正常步驟關(guān)閉各子系統(tǒng)并在退出過程中自動(dòng)備份當(dāng)日的相關(guān)數(shù)據(jù)。 第二章 總體概要設(shè)計(jì) 2 1 系統(tǒng)需求分析 在此實(shí)例中,我們要開發(fā)一個(gè)實(shí)現(xiàn)局域網(wǎng)門禁系統(tǒng)功能的 客戶 /服務(wù)器( C/S)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),下面是用戶對(duì)系統(tǒng)需求功能的陳述。 系統(tǒng)應(yīng)用在一個(gè)各臺(tái) PC 均安裝 WINDOWS NT/2000 操作系統(tǒng)的局域網(wǎng)內(nèi),且此網(wǎng)由一臺(tái)域控制器(服務(wù)器)和多臺(tái)域成員 PC 組成。此局域網(wǎng)的用戶為某學(xué)校的學(xué)生與教職員,分成 Teacher、 Master 和 Graduate 三組。他們每人均有一張機(jī)讀卡,對(duì)學(xué)生而言標(biāo)識(shí)其學(xué)號(hào),對(duì)教職員而言則標(biāo)識(shí)其員工代號(hào),在此我們系統(tǒng)稱為 ID。每個(gè) ID 均由數(shù)字和英文字母組成,長(zhǎng)度不大于 16 位?,F(xiàn)在要對(duì)該網(wǎng)進(jìn)行管理,實(shí)現(xiàn)刷卡上機(jī),自動(dòng)計(jì)費(fèi)。因此,該系統(tǒng)應(yīng)有刷卡 和實(shí)時(shí)監(jiān)控兩個(gè)模塊。在刷卡端能夠使用刷卡器讀取用戶卡上的 ID 并發(fā)送給服務(wù)器,然后顯示用戶信息及刷卡成功或失敗等反饋消息;在實(shí)時(shí)監(jiān)控端,要求設(shè)立管理員,能夠?qū)崟r(shí)顯示已刷卡用戶、進(jìn)行自動(dòng)計(jì)費(fèi)以及輸出查詢統(tǒng)計(jì)報(bào)表。管理員可以維護(hù)上機(jī)用戶的數(shù)據(jù),實(shí)現(xiàn)增加、刪除用戶及修改用戶信息。下表1-1 顯示了系統(tǒng)模塊劃分情況。 模塊名 所在機(jī)器 功能 刷卡模塊 專門用于刷卡的 PC 上 刷卡及顯示反饋信息 實(shí)時(shí)監(jiān)控模塊 域控制器上(服務(wù)器) 實(shí)時(shí)顯示、自動(dòng)計(jì)費(fèi)、用戶管理和輸出查詢統(tǒng)計(jì)報(bào)表 表 1-1 局域網(wǎng)門禁系統(tǒng)模塊劃分情況 刷卡模塊主要完成刷卡功能,同時(shí)顯示從服務(wù)器上反饋回來的信息,包括:用戶 ID、用戶姓名、用戶班級(jí)、用戶刷卡登記時(shí)間、用戶刷卡注銷時(shí)間、當(dāng)前無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 的上機(jī)余款、刷卡是否成功。為了防止用戶使用鍵盤關(guān)閉刷卡模塊,必須實(shí)現(xiàn)只能通過服務(wù)器端的實(shí)時(shí)監(jiān)控模塊制刷卡模塊退出的功能。 實(shí)時(shí)監(jiān)控模塊主要完成實(shí)時(shí)監(jiān)控功能,隨時(shí)監(jiān)聽從刷卡端發(fā)來的刷卡消息,叛斷是刷卡登錄還是刷卡注銷,隨后進(jìn)行相應(yīng)的數(shù)據(jù)處理,再向刷卡端返回反饋消息。 用戶管理主要分為用戶帳號(hào)的增加、刪除,用戶信息的修改。每一個(gè)欲上機(jī)的用戶必須首先在實(shí)時(shí)監(jiān)控模塊端進(jìn)行注冊(cè), 然后在刷卡端刷卡,方可使用局域網(wǎng)內(nèi)的任一臺(tái)機(jī)器。系統(tǒng)對(duì)用戶進(jìn)行了分類,分成老師、研究生、本科生三類,分別有不同的計(jì)費(fèi)標(biāo)準(zhǔn)。 統(tǒng)計(jì)查詢功能要求有登錄日志查詢、用戶信息查詢、組信息查詢和用戶上機(jī)情況統(tǒng)計(jì)。登錄日志查詢要求顯示某段日期內(nèi)某個(gè)用戶的登錄記錄;用戶信息查詢要求顯示某用戶的具體信息如金額等;組信息查詢要求顯示某組的計(jì)費(fèi)標(biāo)準(zhǔn)和成員列表;用戶上機(jī)情況統(tǒng)計(jì)要求統(tǒng)計(jì)用戶的總上機(jī)小時(shí)數(shù)以便核查。所有查詢統(tǒng)計(jì)結(jié)果均為只讀信息,不可以進(jìn)行任何修改。在用戶管理和查詢統(tǒng)計(jì)前,均要求使用者輸入管理員帳號(hào)和密碼。 由于實(shí)時(shí)臨 近模塊端可以對(duì)用戶數(shù)據(jù)庫(kù)進(jìn)行操作,考慮到安全性,必須在啟動(dòng)的時(shí)候?qū)κ褂谜叩纳矸葸M(jìn)行認(rèn)證,由使用者輸入管理員帳號(hào)和密碼,同數(shù)據(jù)庫(kù)中的記錄進(jìn)行核對(duì),核對(duì)正確后方可進(jìn)入系統(tǒng)。這樣確保了只有管理員才可以運(yùn)行實(shí)時(shí)監(jiān)控模塊,也保證了用戶資料不受惡意修改。管理員進(jìn)入實(shí)時(shí)監(jiān)控模塊后,可以維護(hù)自己的密碼,以滿足自己的需要。 2 2 系統(tǒng)設(shè)計(jì) 在以上的系統(tǒng)功能分析中,我們確定了系統(tǒng)的模塊劃分和所需要具有的功能。然而用戶需求還不能直接指導(dǎo)我們進(jìn)行開發(fā),作為開發(fā)人員,我們必須根據(jù)用戶需求進(jìn)行詳細(xì)的系統(tǒng)分析和設(shè)計(jì),形成相應(yīng)的數(shù) 據(jù)模型,包括數(shù)據(jù)庫(kù)的表結(jié)構(gòu)、數(shù)據(jù)在各表及各模塊之間的傳遞關(guān)系、網(wǎng)絡(luò)通信所使用的自定義協(xié)議等。只有事先確定了這些,我們才能在開發(fā)時(shí)做到心中有數(shù),游刃有余。 2 2 1 畫出數(shù)據(jù)流圖 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 刷 卡 消息處理 實(shí)時(shí)監(jiān)控 P1 管理員 查詢統(tǒng)計(jì) 用戶維護(hù) 登錄日志D1 組計(jì)費(fèi)標(biāo)準(zhǔn) D2 用戶列表 D3 P4 P2 P3 數(shù)據(jù)流圖( Data Flow Diagram,簡(jiǎn)稱 DFD 圖)是用一些規(guī)定的圖標(biāo)和符號(hào)來描述數(shù)據(jù)在系統(tǒng)中的流動(dòng)和處理的情況。數(shù)據(jù)流圖在表示系統(tǒng)時(shí),采用自上而下逐步細(xì)化的結(jié)構(gòu)化方法表示。頂層一級(jí)的功能在下一級(jí)中加以細(xì)化。 根據(jù)系統(tǒng)分析,我們可以畫出如圖 1-5 所示的頂層數(shù)據(jù)流圖。 圖 1-5 頂層數(shù)據(jù)流圖 上面的 頂層數(shù)據(jù)流圖經(jīng)過細(xì)化后,得到圖 1-6 所示的監(jiān)控模塊第二層數(shù)據(jù)流圖與圖 1-7 所示的刷卡模塊第二層數(shù)據(jù)流圖。 反 退 刷 饋 出 卡 消 命 消 息 令 息 刷卡消息量 驗(yàn)證信息 身份驗(yàn)證 處理結(jié)果 驗(yàn) 身 證 份 調(diào)用信息 調(diào)用信息 調(diào)用信息 信 驗(yàn) 查詢要求 統(tǒng)計(jì)要求 修改要求 息 證 查詢結(jié)果 統(tǒng)計(jì)結(jié)果 修改結(jié)果 圖 1-6 實(shí)時(shí)監(jiān)控模塊第二層數(shù)據(jù)流 局域網(wǎng)門禁系統(tǒng) 刷卡消息 刷卡反饋消息 系統(tǒng)退出命令 刷卡模塊 實(shí)時(shí)監(jiān)控模塊 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 顯示信息 刷卡消息 刷卡反饋消息 刷卡 ID 系統(tǒng)退出命令 圖 1-7 刷卡模塊第二層數(shù)據(jù)流 2 2 2 編寫數(shù)據(jù)項(xiàng) 根據(jù)數(shù)據(jù)項(xiàng)的含義,我們將數(shù)據(jù)項(xiàng)的定義分為以下幾個(gè)方面:數(shù)據(jù)項(xiàng)名、類型、長(zhǎng)度、附加說明。主要數(shù)據(jù)項(xiàng)定義如表 5-14 至表 5-16 所示。 數(shù)據(jù)項(xiàng)名 類型 長(zhǎng)度 說明 用戶 ID( id) 字符型 16 英文字符和數(shù)字的組合 類型( type) 字符型 4 固定為“刷卡”,為以后功能擴(kuò)充使用 登錄時(shí)間( intime) 日期型 形式: 2005-3-4 12: 00 注銷時(shí)間( outtime) 日期型 形式同上 IP 字符型 15 以后功能擴(kuò)充使用 表 1-14 數(shù)據(jù)項(xiàng)定義(登錄日志) 數(shù)據(jù)項(xiàng)名 類型 長(zhǎng)度 說明 組類別( type) 字符型 16 英文字符和數(shù)字的組合(主碼),為Teacher|Master|Graduate 計(jì)費(fèi)標(biāo)準(zhǔn) (criteria) 浮點(diǎn)型 Single 類型 表 1-15 數(shù)據(jù)項(xiàng)定義(組計(jì)費(fèi)標(biāo)準(zhǔn)) 數(shù)據(jù)項(xiàng)名 類型 長(zhǎng)度 說明 用戶 ID(id) 字符型 16 用戶卡上的標(biāo)識(shí)碼(主碼) 類型( type) 字符型 16 同組類別 姓名( name) 字符型 20 密碼( pwd) 字符 型 20 英文字符和數(shù)字的組合 金額( money) 浮點(diǎn)型 Single 類型 刷卡器 刷卡信息處理 P5 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 附加信息( info) 字符型 100 其他信息 表 1-16 數(shù)據(jù)項(xiàng)定義(用戶列表) 2 3 數(shù)據(jù)庫(kù)設(shè)計(jì) 1 數(shù)據(jù)庫(kù)概念設(shè)計(jì) 根據(jù)對(duì)數(shù)據(jù)流圖和數(shù)據(jù)字典的分析,我們可以確定該應(yīng)用中的實(shí)體、屬性和實(shí)體之間的關(guān)系,并畫出如圖所示的用戶 E-R 圖。 1 1 n 1 1 n m n m 2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 轉(zhuǎn)換后的關(guān)系模型如下所示 ,關(guān)系主碼用下劃線標(biāo)出 . 登錄日志 Log( id, type, intime, outtime,ip ) 計(jì)費(fèi)標(biāo)準(zhǔn) Rule( type, criteria ) 用戶列表 Users( id, type, class, name, pwd, money, info ) 下面我們將利用 SQL 語(yǔ)言的 CREATE 語(yǔ)句建立上述關(guān)系 ,并定義好完整性約束 . CRAETE TABLE Log 登錄日志 ( id VARCHAR(16), type VARCHAR(16), intime DATETIME, outtime DATETIME, 組 屬于 用戶 對(duì)應(yīng) 金額 對(duì)應(yīng) ID 對(duì)應(yīng) 計(jì)費(fèi) 標(biāo)準(zhǔn) 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: ip VARCHAR(15) ); CREATE TABLE Rule 計(jì)費(fèi)標(biāo)準(zhǔn) (type VARCHAR(16) CONSTRAINT CONDNO PRIMARY KEY , criteria FLOAT ); CREATE TABLE Users (id VARCHAR(16) CONSTRAINT CONDNO PRIMARY KEY , type VARCHAR(16), class VARCHAR(16), name VARCHAR(20), pwd VARCHAR(20), money FLOAT, info VARCHAR(100) ); 具體到建立數(shù)據(jù)庫(kù) ,需要手工建立一個(gè)數(shù)據(jù)庫(kù) LGSys.mdb. 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 第三章 分子模塊的設(shè)計(jì) 3 1 C/S 基本概念 什么是 C/S?如果你是一位 DELPHI 開發(fā)人員,那你一定要把這個(gè)概念弄清楚。因?yàn)閷?shí)際上, DELPHI 本身就是一個(gè)客戶 /服務(wù)器開發(fā)環(huán)境。典型的客戶 /服務(wù)器結(jié)構(gòu)總是包括一個(gè)前端程序,也叫客戶。其作用于是向遠(yuǎn)程服務(wù)器上的程序發(fā)送數(shù)據(jù),并接收來自服務(wù)器的數(shù)據(jù)并進(jìn)行一定的處理,再根據(jù)情況進(jìn)行反饋。即遠(yuǎn)程服務(wù)器是服務(wù)的提供者,它可以從內(nèi)部訪問服務(wù)器上的數(shù)據(jù)庫(kù);而客戶總是向服務(wù)器請(qǐng)求服務(wù) ,并不能直接訪問數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)。在這種情況下,服務(wù)器盡可能詳盡地定義業(yè)務(wù)規(guī)則和實(shí)現(xiàn)盡可對(duì)強(qiáng)大的功能,因?yàn)樗歉卤容^緩慢的,而客戶往往比較“瘦小”,因?yàn)樗穷l繁更新和分發(fā)的對(duì)象。 一般情況下,客戶 /服務(wù)器方案可以解決以下幾個(gè)問題: 允許將不同客戶進(jìn)行分類,每類客戶只允許處理它負(fù)責(zé)的數(shù)據(jù)。 以一種更為有效的方式為決策者提供決策支持。 在 MIS 中加強(qiáng)對(duì)數(shù)據(jù)的集中控制,而在數(shù)據(jù)分析和使用的集中控制上只需要花費(fèi)比較少的精力。 在服務(wù)器端可以對(duì)整個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)完整性驗(yàn)證。 更靈活的業(yè)務(wù)劃分,客戶端和服務(wù) 器端業(yè)務(wù)功能分離,各司其職。 服務(wù)器向客戶端傳遞的數(shù)據(jù)是經(jīng)過篩選的,可以減輕網(wǎng)絡(luò)負(fù)擔(dān)。 1 客戶 /服務(wù)器模型 客戶 /服務(wù)器模型通常分兩層模型和三層模型兩類。下面我們分別進(jìn)行介紹。 兩層模型 兩層模型的應(yīng)用十廣泛,基本上,它是由桌面數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)演變而來的。 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 在此模型中,數(shù)據(jù)庫(kù)位于服務(wù)器端,客戶應(yīng)用程序位于客戶機(jī)上,業(yè)務(wù)邏輯放在客戶或服務(wù)器上。如圖 1-5 所示。 三層模型 如圖 1-6 所示,客戶僅僅起顯示數(shù)據(jù)的作用,業(yè)務(wù)規(guī)則(處理邏輯)放在服務(wù)器上,而實(shí)際的數(shù)據(jù)庫(kù)則放在另外一臺(tái)機(jī)器上。由于三者處于不同的機(jī)器,開發(fā)人 員可以更靈活高效地劃分系統(tǒng)功能,優(yōu)化數(shù)據(jù)訪問及維護(hù)數(shù)據(jù)的完整性。 圖 1-5 兩層客戶 /服務(wù)器模型 圖 1-6 三層客戶 /服務(wù)器模 2 客戶 /服務(wù)器模型與桌面數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的比較 客戶 /服務(wù)器器模型與桌面模型應(yīng)用系統(tǒng)的比較:面向集合與面向記錄。 對(duì)客戶端而言,它面向的是記錄。對(duì)桌面數(shù)據(jù)庫(kù)而言,它直接面對(duì)數(shù)據(jù)集合;而在 C/S 模型中,客戶面對(duì)的只是數(shù)據(jù)集合的一個(gè)子集。通過 SQL 語(yǔ)句,客戶可以從服務(wù)器端獲取到符合一定要求 的一組記錄,而不需要把整個(gè)數(shù)據(jù)表格全部下載到本地再進(jìn)行處理。而一個(gè)桌面數(shù)據(jù)庫(kù)要從網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)時(shí),它得到的是整個(gè)數(shù)據(jù)表格。如果數(shù)據(jù)表格很大,那網(wǎng)絡(luò)傳輸所需要的時(shí)間是很數(shù)據(jù) 業(yè)務(wù)規(guī)則 客戶 1 客戶 2 客戶 3 數(shù)據(jù)庫(kù) 業(yè)務(wù)規(guī)則 客戶 1 客戶 2 客戶 3 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 長(zhǎng)的。相比之下,通過 SQL,只需要通過網(wǎng)絡(luò)傳輸符合記錄的部分記錄集,這就大大減輕了網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān),也使系統(tǒng)的響應(yīng)速度得到了很大的提高。 3 3 1 刷卡模塊 刷卡模塊主要有 2 個(gè)子模塊組成,如圖 1-7 所示。 圖 1-7 刷卡模塊系統(tǒng)結(jié)構(gòu)圖 下面是各模塊的主要功能: 背景框架子模 塊 該子模塊是刷卡模塊的背景界面,通過覆蓋整個(gè)桌面起到模擬的效果。同時(shí),它起到禁止用戶關(guān)閉系統(tǒng)的作用。通過在內(nèi)部設(shè)定一個(gè)開關(guān),使得用戶無(wú)法通過鍵盤和鼠標(biāo)關(guān)閉刷卡應(yīng)用程序,而只能通過接收來自服務(wù)器的命令才能夠自動(dòng)關(guān)閉。 刷卡消息處理子模塊 該子模塊是刷卡模塊的邏輯核心部分。在這個(gè)子模塊中,能夠?qū)崿F(xiàn)自動(dòng)讀取用戶刷卡信息、向服務(wù)器傳送刷卡信息和接收并顯示服務(wù)器反饋信息的功能。通過這個(gè)模塊,用戶可以刷卡,實(shí)時(shí)看到自己刷卡的處理結(jié)果以及自己的姓名、班級(jí)、刷卡登錄時(shí)間、注銷時(shí)間和當(dāng)前余額信息。如果用戶余額不足,該子模塊 將顯示拒絕用戶登錄的提示。 3 3 2 實(shí)時(shí)監(jiān)控模塊 該模塊主要由四個(gè)子模塊組成,如圖 1-8 所示 背景框架子模塊 刷卡消息處理模塊 實(shí)時(shí)監(jiān)控 子模塊 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 圖 1-8 實(shí)時(shí)監(jiān)控子模塊系統(tǒng)結(jié)構(gòu)圖 下面是各模塊的主要功能: 實(shí)時(shí)監(jiān)控子模塊 該子模塊是實(shí)時(shí)監(jiān)控模塊的主界面,也是系統(tǒng)的惟一進(jìn)入和退出端。通過此子模塊,用戶可以調(diào)用查詢統(tǒng)計(jì)子模塊和用戶管理子模塊,同時(shí),此子模塊還自動(dòng)調(diào)用刷卡消息處理子模塊處理來自刷卡模塊的消息。由于只有管理員才可以訪問這四個(gè)子模塊,因此,在進(jìn)入此模塊時(shí)必須進(jìn)行身份驗(yàn)證,確保只有管理員才能運(yùn)行實(shí)時(shí)監(jiān)控應(yīng)用程序。 在此模塊中,管理員還可以實(shí)時(shí)看到當(dāng)前刷卡上機(jī)的用戶列表及每個(gè)用戶的詳細(xì)信息。 刷卡消息處理子模塊 該子模塊是實(shí)時(shí)監(jiān)控模塊實(shí)現(xiàn)門禁功能和自動(dòng)計(jì)費(fèi)功能的核心部分。這個(gè)子模塊由實(shí)時(shí)監(jiān)控子模塊自動(dòng)調(diào)用,以刷卡消息為處理對(duì)象,自動(dòng)維護(hù)已刷卡用戶列表和域用戶列表,并向數(shù)據(jù)庫(kù)中寫入登錄住處和更新用戶金額。由于采用了多線程模型和臨界區(qū)域?qū)ο?,可以處理同時(shí)到達(dá)的多個(gè)刷卡信息。 用戶管理子模塊 該子模塊是管理員維護(hù)域用戶列表和用戶信息的界面。管理員可以瀏覽并修改三個(gè)用戶組的成員列表,組計(jì)費(fèi)標(biāo)準(zhǔn)和各用戶的詳細(xì)信息??梢詾楦鱾€(gè)用戶 組添加新用戶和刪除無(wú)用的用戶。由于用戶信息同時(shí)存在于域用戶(操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu))和數(shù)據(jù)庫(kù)(系統(tǒng)自帶數(shù)據(jù)表單),如圖 1-9 所示,因此管理員要修改用戶清單必須使用此子模塊,而不能單獨(dú)使用操作系統(tǒng)自帶的管理工具來維護(hù)用戶列表。 刷卡消息處理子模塊 用戶管理子模塊 查詢統(tǒng)計(jì)子模塊 用戶管理子模塊 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 一一對(duì)應(yīng) 同步更新 圖 1-9 用戶管理子模塊內(nèi)部結(jié)構(gòu)說明 查詢統(tǒng)計(jì)子模塊 該子模塊允許管理員就登錄、用戶信息和組成員列表進(jìn)行查詢。允許對(duì)查詢?cè)O(shè)定關(guān)鍵字進(jìn)行模糊查詢,對(duì)登錄記錄的查詢還允許設(shè)定查詢的 時(shí)間段。統(tǒng)計(jì)功能分為用戶上機(jī)清單和用戶上機(jī)總時(shí)兩部分,前者給出用戶每一天的上機(jī)時(shí)間,后者給出用戶總上機(jī)時(shí)間。統(tǒng)計(jì)前,可以設(shè)定統(tǒng)計(jì)的用戶 ID 進(jìn)行模糊查詢,還可以設(shè)定統(tǒng)計(jì)的時(shí)間段。最后生成的數(shù)據(jù)集體傳遞給報(bào)表及輸出子模塊進(jìn)行顯示和輸出。 報(bào)表及輸出子模塊 該子模塊顯示查詢統(tǒng)計(jì)模塊生成的數(shù)據(jù)集,并以 Microsoft Word XP 的形式自動(dòng)輸出到固定的目錄下,供用戶瀏覽、修改和打印。 3 4 系統(tǒng)功能實(shí)現(xiàn) 通過上面對(duì)本局域網(wǎng)門禁系統(tǒng)的功能的簡(jiǎn)單介紹,我們把此系統(tǒng)分割成兩個(gè)單獨(dú)的模塊,刷卡模塊和實(shí)時(shí)監(jiān)控模 塊,兩者之間通過網(wǎng)絡(luò)進(jìn)行通信。下面將介紹系統(tǒng)的詳細(xì)設(shè)計(jì)和具體的實(shí)現(xiàn)細(xì)節(jié)。 3 4 1 刷卡模塊的設(shè)計(jì)和實(shí)現(xiàn) 本模塊采用 MDI 結(jié)構(gòu),背景窗口為 MDI 框架窗口,刷卡窗口為 MDI 子窗口。系統(tǒng)啟動(dòng)后背景窗口將以全屏顯示 ,重點(diǎn)突出刷卡窗口。 MDI 結(jié)構(gòu)即多文檔結(jié)構(gòu),是從 Windows2.0 下的 Microsoft Excel 電子表格程序開始引入的,與它相對(duì)應(yīng)的是 SDI(單文檔結(jié)構(gòu))。 一個(gè) MDI 應(yīng)用程序包含如下窗口: 框架窗口:框架窗口雖應(yīng)用程序的主要窗口。此窗口一般含有標(biāo)題欄、菜單條和系統(tǒng)菜單。右上角為最小化、最 大化和關(guān)閉按鈕。 數(shù)據(jù)庫(kù) 各用戶組計(jì)費(fèi) 標(biāo)準(zhǔn) Rule表單用戶列表 Users表單 Windows2000/NT 域全局組 域用戶列表 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 客戶窗口: MDI 程序的窗口管理器,是框架窗口呂間的空白區(qū)域。用來管理和顯示 MDI 子窗口。 MDI 子窗口:顯示在客戶窗口內(nèi)的窗口,不能移出客戶區(qū)。 由于 Delphi6.0 會(huì)自動(dòng)管理 MDI 窗口元素。因此對(duì)我們來說,只需要記住對(duì)框架窗口而言,必須把 FormStyle 屬性設(shè)置成 fsMDIForm;對(duì)子窗口而言,必須把 FormStyle 屬性設(shè)置成 fsMDIChild。如果子窗口是自動(dòng)建立的,那么在程序啟動(dòng)的時(shí)候會(huì)自動(dòng)顯示在客戶窗口內(nèi)。缺省地,每一個(gè)窗口都有是自動(dòng)建立的,這可以在 Project 菜單的 Options 內(nèi)的 Forms 卡內(nèi)觀察。 Auto-create forms列表里的窗口 Form1v 和 Form2 都是在程序運(yùn)行的時(shí)候自動(dòng)建立的,如果不是MDI 子窗口,則處于隱藏狀態(tài)。如果把某個(gè) Form 如 Form3 放進(jìn) Available forms列表下,那在調(diào)用這個(gè)窗口前必須手工建立它。 3 5 UDP 協(xié)議的基本知識(shí) UDP 協(xié)議( User Datagram Protocol),即用戶數(shù)據(jù)報(bào)協(xié)議,廣泛使用在計(jì)算機(jī)間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用上,如網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)、語(yǔ)音傳播等眾多的客戶 /服務(wù)器模式。 UDP 協(xié)議從問世至今 已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使在今天, UDP 協(xié)議仍然在一項(xiàng)非常衫和有效的網(wǎng)絡(luò)傳輸層協(xié)議。與我們所熟知的 TCP 協(xié)議一樣, UDP 協(xié)議位于 IP( Internet Protocol)協(xié)議的頂層。根據(jù) OSI (Open System Interconnect )參考模型, UDP 和TCP 同屬于傳輸層協(xié)議。 UDP 協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)報(bào)的形式。一個(gè)典型的數(shù)據(jù)報(bào)是一個(gè)二進(jìn)制數(shù)據(jù)的傳輸單位。每一個(gè)數(shù)據(jù)報(bào)的前 8 個(gè)字節(jié)用來包含報(bào)頭號(hào)信息,剩余字節(jié)則用來包含具體的傳輸數(shù)據(jù) 。 UDP 協(xié)議是一種無(wú)連接協(xié)議。它與 TCP 操作不同,計(jì)算機(jī)間進(jìn)行通信時(shí)并不需要事先建立一個(gè)連接。而且,一個(gè) UDP 的接受方可以同時(shí)作為一個(gè)發(fā)送方,相比 TCP 協(xié)議,它的應(yīng)用方法也非常簡(jiǎn)單。因此,在我們的系統(tǒng)中,使用 UDP協(xié)議作為我們進(jìn)行網(wǎng)絡(luò)通信的網(wǎng)絡(luò)協(xié)議。 3 6 界面設(shè)計(jì) 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 刷卡消息處理子模塊的界面布局如圖 1-17 所示。 圖 1-17 刷卡消息處理子模塊界面布局 從圖中我們可以看到刷卡界面的基本布局。對(duì)此窗口,我們需要把FormStyle 屬性設(shè)置為 fsMDIChild,命名為 fmScanForm,Caption 為“ LGYSY-刷卡窗口”。 窗口內(nèi)最上面是刷卡用的 Tedit 控件,命名為 editCardNo。下面是個(gè)人信息界面,分別顯示了用戶姓名、班級(jí)、登錄時(shí)間、注銷時(shí)間和當(dāng)前上機(jī)余額,分別命名為 editName,editClass,editInTime,editOutTime,editMoney。由于只起顯示作用,因此這五個(gè) Tedit 控件的 ReadOnly 屬性需要設(shè)置為 False。對(duì)于設(shè)置多個(gè)組件的同一屬性,有一個(gè)簡(jiǎn)單的方法,即按住鍵盤 Shift 鍵分別點(diǎn)選各個(gè) Tedit 組件,然后在 Object Inspector 里選擇 ReadOnly 項(xiàng),設(shè)置為 True 即可。最下面是狀態(tài)欄,左邊的 Panel 用于顯示刷卡成功 /失敗的信息,右邊的 Panel 顯示當(dāng)前日期。 最關(guān)鍵的 TNMUDP 控件我們命名為 nuScanCard,LocalPort 屬性設(shè)置為無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 2171, RemotePort 屬性設(shè)置為 2173, ReportLevel 屬性為 1。 3 7 代碼設(shè)計(jì) 首先,在窗口創(chuàng)建時(shí)需要將個(gè)人信息下的各個(gè)輸入框設(shè)置為只讀。其次,我們?cè)诖诵枰玫?UDP 的廣播功能,這樣只需要把 RemoteIP 設(shè)置為廣播地址,發(fā)送的數(shù)據(jù)就可以被局域網(wǎng)內(nèi)的所有 機(jī)器所接收。這樣,我們就沒必要單獨(dú)設(shè)置服務(wù)器的 IP ,否則,當(dāng)服務(wù)器 IP 改變的時(shí)候,還必須重新設(shè)置nuScanCard.RemoteHost 屬性值。對(duì)于廣播的詳細(xì)信息,請(qǐng)參閱其他專業(yè)文獻(xiàn),在這里只需要指出,如果本機(jī) IP 為 3 而子網(wǎng)掩碼為 ,則廣播地址即為 55。因此,在窗口創(chuàng)建時(shí)需要獲取廣播地址并賦給RemoteIP 屬性。如果獲取 IP 失敗,則應(yīng)該退出系統(tǒng)。另外,由于下面的代碼用到了 WinSock.pas 單元,而這個(gè)單元并沒有缺省包含在引用列表中 ,所以必須手工在接口部分的引用列表中添加此單元。 3 8 ODBC 數(shù)據(jù)源 設(shè)計(jì) 所有的模塊及界面做好以后,最后就要進(jìn)行數(shù)據(jù)庫(kù)連接了。打開開始設(shè)置控制面板管理工具 ODBC 數(shù)據(jù)源,選擇系統(tǒng) DNS,如下圖所示: 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 選擇添加創(chuàng)建新數(shù)據(jù)源如下圖所示: 點(diǎn)擊完成。填寫數(shù)據(jù)源名稱網(wǎng)吧管理系統(tǒng),選擇數(shù)據(jù)庫(kù),如下圖所示: 點(diǎn)擊確定完成。 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 第四章 總結(jié)與展望 通過本次畢業(yè)設(shè)計(jì),我們基本明確了一個(gè)局域網(wǎng)門禁系統(tǒng)從構(gòu)思到設(shè)計(jì)再到實(shí)現(xiàn)的一般步驟以及需要注意的方面,這也是一個(gè)讓我 們自己學(xué)習(xí)知識(shí)和運(yùn)用知識(shí)的大好機(jī)會(huì)。 我們最大的遺憾就是由于能力和設(shè)備的限制沒有能夠把一整套網(wǎng)絡(luò)管理系統(tǒng)做出來。還有部分功能還有待進(jìn)一步加強(qiáng)。嚴(yán)格的來說,我們的系統(tǒng)還不是真正意義上的局域網(wǎng)門禁系統(tǒng),而是一個(gè)單機(jī)測(cè)試版。原因就是缺乏很強(qiáng)專業(yè)技術(shù)水平以及沒有很高的技術(shù)含量。 由于在校內(nèi)課程中沒有涉及到很深 Delphi 程序,以及我個(gè)人學(xué)習(xí)能力的限制,系統(tǒng)也沒有能夠?qū)崿F(xiàn)很強(qiáng)的功能。 還有就是各組員間聯(lián)系不夠緊密,缺乏團(tuán)隊(duì)合作精神。由于與指導(dǎo)教師缺乏默契的合作和密切的聯(lián)系,為后期的時(shí)間緊迫埋下了隱患。而作為組長(zhǎng),我負(fù) 有不可推卸的責(zé)任。 但是在各位領(lǐng)導(dǎo)和老師對(duì)我們的關(guān)心和指導(dǎo)之下,我們克服了困難,經(jīng)過調(diào)試,系統(tǒng)已基本達(dá)到我們初步制定的目標(biāo),完成簡(jiǎn)單登錄、查詢、管理等功能,并能順利通過單機(jī)環(huán)境測(cè)試。 我相信,在不久的將來,局域網(wǎng)門禁系統(tǒng)將提供更為簡(jiǎn)單,同時(shí)也是更為精細(xì)和完善的實(shí)現(xiàn)手段。到那時(shí),使用局域網(wǎng)門禁系統(tǒng)管理網(wǎng)絡(luò),將更加簡(jiǎn)單! 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 致 謝 在這幾個(gè)月的畢業(yè)設(shè)計(jì)過程中,學(xué)校領(lǐng)導(dǎo)和老師對(duì)我們表達(dá)了深切的關(guān)心和嚴(yán)格的督促;尤其是在課題設(shè)計(jì)的初始階段,專業(yè)老師對(duì)我進(jìn)行了悉心的教導(dǎo)并提出了許多寶貴的意見 ;在系統(tǒng)開發(fā)過程中,指導(dǎo)教師在百忙之中抽出時(shí)間為我們的設(shè)計(jì)提供參考書目和專業(yè)指導(dǎo);在課題研究過程中,其他老師也為我們提供了許多的寶貴意見和幫助;班主任老師更是一遍一遍不厭其煩地督促我們完成設(shè)計(jì)工作。 參 考 文 獻(xiàn) 1、江毅等 .DELPHI6.0 數(shù)據(jù)庫(kù)實(shí)例編程 . 北京:中國(guó)水利水電出版社, 2002 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 2、苗雪蘭,劉瑞新,王懷峰 .數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用教程 . 北京:機(jī)械工業(yè)出版社, 2001 3、袁培根 ,楊東艷 ,肖仁琴 ,何明儒 .開放式機(jī)房門禁系統(tǒng)研制與實(shí)踐 . 北京:實(shí)驗(yàn)室研究與探索第 20卷 第 5期, 2001 4、賈成宇 ,李樹秋 ,王世剛 .智能門禁系統(tǒng)門控部分硬件設(shè)計(jì) . 吉林:長(zhǎng)春郵電學(xué)院學(xué)報(bào)第 18卷第 3期, 2000 5、賈成宇 ,李樹秋 ,王世剛 .智能門禁系統(tǒng)門控部分軟件設(shè)計(jì) . 吉林:長(zhǎng)春郵電學(xué)院學(xué)報(bào)第 19卷第 1期, 2001 附 錄 部分重要代碼詳解 unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, Menus, Mask, DBCtrls, Buttons; 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Edit1: TEdit; Label1: TLabel; DBGrid1: TDBGrid; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N4: TMenuItem; N6: TMenuItem; N5: TMenuItem; PC1: TMenuItem; DBEsdjg: TDBEdit; DBEshangji: TDBEdit; DBExiaji: TDBEdit; DBEsj: TDBEdit; DBExj: TDBEdit; Label2: TLabel; Timer1: TTimer; Splitter1: TSplitter; Label3: TLabel; Label4: TLabel; Panel3: TPanel; DBGrid2: TDBGrid; Panel4: TPanel; N7: TMenuItem; DBEmrjg: TDBEdit; DBEyhm: TDBEdit; N8: TMenuItem; N9: TMenuItem; DBEqx: TDBEdit; DBText1: TDBText; N3: TMenuItem; Label5: TLabel; function sswu(yuanshi:string):real; function jgjs(shangji:string;xiaji:string;MM:string):string; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure N5Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure PC1Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure N3Click(Sender: TObject); private Private declarations public Public declarations end; var Form1: TForm1; implementation uses D_M, sd_gl, dd_gl, mr_jg, deng_lu, dl_gl, shan_chu; $R *.dfm function Tform1.sswu(yuanshi:string):real; var dd:string; begin if pos(.,yuanshi)0 then 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: begin dd:=copy(yuanshi,pos(.,yuanshi)+1,3); if (strtofloat(dd)=0)and(strtofloat(dd)25)and(strtofloat(dd)75)and(strtofloat(dd)=99) then result:=strtofloat(copy(yuanshi,1,pos(.,yuanshi)-1)+1; end else result:=strtofloat(yuanshi); end; function Tform1.jgjs(shangji:string;xiaji:string;MM:string):string; var tt,xiaoshi,fenzhong,allmoney:string; begin tt:=; xiaoshi:=; fenzhong:=; allmoney:=; /tt:=timetostr(now()-strtodatetime(DM.ADOTgltemp.Lookup( 卡編號(hào) ,edit1.Text, 上機(jī)時(shí)間); tt:=timetostr(strtodatetime(xiaji)-strtodatetime(shangji); xiaoshi:=copy(tt,1,2); if copy(xiaoshi,2,2)=: then xiaoshi:=copy(xiaoshi,1,1); xiaoshi:=floattostr(strtofloat(xiaoshi)*strtofloat(MM);/小時(shí)位的計(jì)算 if copy(tt,3,1)=: then fenzhong:=copy(tt,4,2) else fenzhong:=copy(tt,3,2); fenzhong:=copy(floattostr(strtofloat(fenzhong)/60*strtofloat(MM),1,4);/ 分鐘位的計(jì)算 result:=floattostr(strtofloat(xiaoshi)+strtofloat(fenzhong);/總金額的計(jì)算 end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var moneyall:double; ok,ss,xx:string; begin ss:=; xx:=; if key=#13 then if (DM.ADOTgltemp.Lookup(卡編號(hào) ,edit1.Text,卡編號(hào) )=Null) then begin DM.ADOTgl.Append; DM.ADOTgl.FieldByName(卡編號(hào) ).AsString:=edit1.Text; DM.ADOTgl.FieldByName(上機(jī)時(shí)間 ).AsString:=datetimetostr(now(); DM.ADOTgl.FieldByName(操作員 ).AsString:=DBEyhm.Text; DM.ADOTgl.Post; DM.ADOTgltemp.Append; DM.ADOTgltemp.FieldByName(卡編號(hào) ).AsString:=edit1.Text; DM.ADOTgltemp.FieldByName(上機(jī)時(shí)間 ).AsString:=datetimetostr(now(); DM.ADOTgltemp.Post; edit1.Text:=; DBText1.Caption:=inttostr(strtoint(DBtext1.Caption)-1); 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: DM.ADOQuery1.Close; DM.ADOQuery1.Open; DM.ADOQuery2.Close; DM.ADOQuery2.Open; end else begin dm.ADOTgl.Locate( 卡編號(hào) ; 上機(jī)時(shí)間 ,vararrayof(DM.ADOTgltemp.Lookup( 卡編號(hào),edit1.Text,卡編號(hào) ),DM.ADOTgltemp.Lookup(卡編號(hào) ,edit1.Text,上機(jī)時(shí)間 ),); dm.ADOTgl.Edit; DM.ADOTgl.FieldByName(下機(jī)時(shí)間 ).AsString:=datetimetostr(now(); DM.ADOTgl.UpdateBatch; DM.ADOTgl.Edit; DM.ADOTjggl.First; ok:=; repeat begin if strtodatetime(DBEsj.Text)=strtodatetime(datetostr(now()+ +DBEshangji.Text)and(strtodatetime(DBExj.Text)=strtodatetime(datetostr(now()+ +DBExiaji.Text) then begin moneyall:=0; moneyall:=sswu(jgjs(DBEsj.Text,datetostr(now()+ +DBEshangji.Text,DBEmrjg.text); while okok do begin DM.ADOTjggl.Next; if DM.ADOTjggl.eof then begin DM.ADOTgl.FieldByName( 結(jié)算).AsFloat:=moneyall+sswu(jgjs(datetostr(now()+ +DBEshangji.Text,datetostr(now()+ +DBExiaji.Text,DBEsdjg.Text)+sswu(jgjs(datetostr(now()+ +DBExiaji.Text,DBExj.Text,DBEmrjg.Text); ok:=ok; break; end; if (strtodatetime(DBExj.Text)=strtodatetime(datetostr(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論