




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北京廣播電視大學(xué)畢業(yè)設(shè)計(jì)論文題目: 局域網(wǎng)門(mén)禁系統(tǒng) 姓 名: 學(xué) 號(hào): 專(zhuān)業(yè)年級(jí): 分 校: 指導(dǎo)教師: 目 錄目 錄2摘 要3第1章 系統(tǒng)環(huán)境41.1 Delphi 簡(jiǎn)介41.2 研究背景51.3 特點(diǎn)及組成原理51.3.1 刷卡機(jī)管理子系統(tǒng)61.3.2 數(shù)據(jù)后備系統(tǒng)71.3.3 UPS系統(tǒng)8第2章 總體概要設(shè)計(jì)921 系統(tǒng)需求分析922 系統(tǒng)設(shè)計(jì)10221 畫(huà)出數(shù)據(jù)流圖10222 編寫(xiě)數(shù)據(jù)項(xiàng)1223數(shù)據(jù)庫(kù)設(shè)計(jì)13第三章 分子模塊的設(shè)計(jì)153.1 C/S基本概念15331 刷卡模塊17332實(shí)時(shí)監(jiān)控模塊1734 系統(tǒng)功能實(shí)現(xiàn)19341 刷卡模塊的設(shè)計(jì)和實(shí)現(xiàn)19Windows2000/NT19
2、35 UDP協(xié)議的基本知識(shí)2036 界面設(shè)計(jì)2137 代碼設(shè)計(jì)2238 ODBC數(shù)據(jù)源設(shè)計(jì)22結(jié)束語(yǔ)24致謝25參 考 文 獻(xiàn)26附 錄27摘 要隨著高科技的蓬勃發(fā)展,智能化管理已經(jīng)走進(jìn)了人們的社會(huì)生活,一座座智能化大廈拔地而起,適應(yīng)信息的時(shí)代需要,作為跨世紀(jì)使用的建筑,必須在功能上滿(mǎn)足當(dāng)前和未來(lái)發(fā)展的需求,成為文化和經(jīng)濟(jì)發(fā)展的基地。門(mén)禁系統(tǒng)開(kāi)發(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)用越來(lái)越廣泛。門(mén)禁系統(tǒng)的技術(shù)不斷向前發(fā)展, 用戶(hù)需求也在發(fā)生變化
3、, 因此門(mén)禁系統(tǒng)的設(shè)計(jì)與實(shí)施應(yīng)考慮到將來(lái)可擴(kuò)展的實(shí)際需要, 亦即: 可靈活增減或更新各個(gè)子系統(tǒng), 滿(mǎn)足不同時(shí)期的需要, 保持長(zhǎng)時(shí)間領(lǐng)先地位, 成為智能建筑的典范。系統(tǒng)設(shè)計(jì)時(shí),對(duì)需要實(shí)現(xiàn)的功能進(jìn)行了合理配置,并且這種配置是可以改變的,設(shè)置甚至在工程完成后,這種配置的改變也是可能的和方便的.系統(tǒng)軟件根據(jù)開(kāi)發(fā)商符合不同歷史時(shí)期市場(chǎng)的需求進(jìn)行相應(yīng)的升級(jí)和完善,并免費(fèi)為相應(yīng)的應(yīng)用客戶(hù)進(jìn)行免費(fèi)的軟件升級(jí).同時(shí),可以擴(kuò)展為考勤系統(tǒng)、會(huì)議簽到系統(tǒng)、巡邏管理系統(tǒng),就餐管理系統(tǒng)等一卡通工程。第1章 系統(tǒng)環(huán)境1.1 Delphi 簡(jiǎn)介本課題是在Delphi的基礎(chǔ)上開(kāi)發(fā)研制的,下面對(duì)Delphi進(jìn)行簡(jiǎn)單的介紹。Del
4、phi是Borland公司開(kāi)發(fā)的可視化軟件開(kāi)發(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ǔ)言。用過(guò)Delphi系列軟件的程序員一定都會(huì)覺(jué)得Object Pascal 語(yǔ)言具有高度清晰的結(jié)構(gòu),高效率的優(yōu)化系統(tǒng),是一種簡(jiǎn)單易學(xué),但又不乏其作為優(yōu)秀編程語(yǔ)言的特點(diǎn)。同時(shí),由于Delphi采用了內(nèi)置高速的優(yōu)化編譯器,使得程序的編譯、鏈接速度快的驚人。在與其相類(lèi)似的可視化軟件開(kāi)發(fā)系統(tǒng)Microsoft Visual C+
5、的比較中,我們不可否認(rèn)Microsoft Visual C+的功能相當(dāng)強(qiáng)大,但調(diào)試程序時(shí)的編譯時(shí)間過(guò)長(zhǎng),使很多程序員感到棘手;而Delphi在編譯時(shí)等待的時(shí)間很少。Delphi的編譯器采用了事件編譯和選擇鏈接技術(shù),使生成的可執(zhí)行文件冗余更少,運(yùn)行起來(lái)速度更快。另外,由于Delphi生成的可執(zhí)行文件不需要?jiǎng)討B(tài)鏈接庫(kù)的支持,可以直接交付使用,這會(huì)使得使用Delphi的程序員充分享受Delphi為他們帶來(lái)的方便快捷。Delphi系列另一個(gè)廣受歡迎的原因是其強(qiáng)大的可擴(kuò)展數(shù)據(jù)庫(kù)功能。Delphi6.0不但在傳統(tǒng)的開(kāi)發(fā)能力方面持續(xù)進(jìn)步,讓程序員能夠享有更具生產(chǎn)力的開(kāi)發(fā)環(huán)境,對(duì)于最新的信息技術(shù),也有非常良好
6、的支持,讓程序員能夠快速地使用這些新的技術(shù)。在對(duì)Delphi有了一個(gè)初步的了解之后,我們將進(jìn)入對(duì)Delphi集成開(kāi)發(fā)環(huán)境和工程管理的介紹,使大家能夠進(jìn)一步深入了解Delphi,并在此基礎(chǔ)上介紹編輯器和調(diào)試器的使用方法。IDE是提供設(shè)計(jì)、運(yùn)行和測(cè)試應(yīng)用程序所需的所有工具的集成環(huán)境。Delphi的集成開(kāi)發(fā)環(huán)境(IDE)包括代碼編輯器、調(diào)試器、工具欄、圖像編輯器以及諸多用于應(yīng)用程序開(kāi)發(fā)的組件(如數(shù)據(jù)庫(kù)開(kāi)發(fā)組件等)。所有這些都以集成方式進(jìn)行操作,極大地簡(jiǎn)化了用戶(hù)編程的過(guò)程。1.2 研究背景當(dāng)前,大學(xué)內(nèi)的微機(jī)機(jī)房正在朝著開(kāi)放式,大型化方向發(fā)展。一個(gè)教學(xué)實(shí)驗(yàn)中心里的幾個(gè)機(jī)房有著幾百臺(tái)微機(jī),已是很普遍的現(xiàn)象
7、。使用方式也由原來(lái)的以計(jì)劃安排集體上機(jī)為主,變?yōu)橐詡€(gè)人自由上機(jī)為主。因此、以往那種主要針對(duì)集體上機(jī)的以機(jī)房和時(shí)間段為單位來(lái)安排機(jī)器使用的管理方式已顯得不適用。為適應(yīng)新的應(yīng)用和發(fā)展,結(jié)合中心自身的特點(diǎn),四川大學(xué)工程設(shè)計(jì)中心和西南交通大學(xué)共同研制出了這套用于微機(jī)機(jī)房管理的集中式IC卡控制門(mén)禁系統(tǒng)。該系統(tǒng)著眼于對(duì)大型開(kāi)放式機(jī)房進(jìn)行集中管理。把原來(lái)的分機(jī)房分散管理變?yōu)閱我怀鋈肟诘募泄芾?。變?cè)瓉?lái)的人工計(jì)時(shí)計(jì)費(fèi)為計(jì)算機(jī)管理的IC卡計(jì)費(fèi)。1.3 特點(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)采
8、用多模塊結(jié)構(gòu)化模式設(shè)計(jì),使用多種軟件混合編程。實(shí)現(xiàn)子系統(tǒng)內(nèi)數(shù)據(jù)庫(kù)管理和通訊及子系統(tǒng)與子系統(tǒng)之間的通訊。通過(guò)相互間的通訊,把幾個(gè)子系統(tǒng)的結(jié)合在一起。形成一個(gè)完善的門(mén)禁管理系統(tǒng)。(3)用戶(hù)界面友好、操作簡(jiǎn)便、并且具有較好的可維護(hù)性。(4)系統(tǒng)除強(qiáng)調(diào)其實(shí)用性外,還對(duì)其安全性和可靠性作了充分考慮。該系統(tǒng)主要由IC卡刷卡機(jī)管理子系統(tǒng)、登錄管理服務(wù)器及用戶(hù)端登錄子系統(tǒng)組成。它們之間通過(guò)內(nèi)部局域網(wǎng)交換信息以保證機(jī)房外刷卡和機(jī)房?jī)?nèi)登錄能協(xié)調(diào)工作。除此之外,還有與之相配套的數(shù)據(jù)后備系統(tǒng)提供電源保障的UPS系統(tǒng),在門(mén)禁系統(tǒng)管理下,刷卡機(jī)管理子系統(tǒng)向機(jī)器使用者提供上機(jī)刷卡服務(wù)。持卡用戶(hù)首先在設(shè)于機(jī)房外出入口的刷卡機(jī)
9、前刷卡,刷卡機(jī)管理管理服務(wù)器在對(duì)卡的有效性進(jìn)行驗(yàn)證,待驗(yàn)證無(wú)誤后使用者方可能進(jìn)入機(jī)房。進(jìn)入機(jī)房后還要進(jìn)行登記才能使用機(jī)器。登錄管理服務(wù)器及用戶(hù)端登錄子系統(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ù)器的管理下,未刷卡的人將不能通過(guò)登錄驗(yàn)證,一個(gè)人也不能同時(shí)登錄兩臺(tái)機(jī)器。同樣,一臺(tái)已經(jīng)被登錄使用的機(jī)器如果未被使用者注銷(xiāo),它也不能再被其他人登錄。當(dāng)機(jī)器使用完畢后,使用者必須先執(zhí)行登錄管理服務(wù)器所提供的下機(jī)注銷(xiāo)功能,釋放該機(jī)器的
10、使用權(quán),然后再到刷卡機(jī)前刷卡,刷卡機(jī)管理子系統(tǒng)根據(jù)使用時(shí)間計(jì)算并從卡上扣除相應(yīng)機(jī)時(shí)金額。如此,門(mén)禁管理系統(tǒng)就完成了一個(gè)上下機(jī)的管理過(guò)程。從上面上下機(jī)的過(guò)程可以看出,門(mén)禁管理系統(tǒng)的核心部分主要由設(shè)在機(jī)房外的IC卡刷卡機(jī)管理子系統(tǒng)、登錄管理服務(wù)器和裝在機(jī)房?jī)?nèi)每臺(tái)機(jī)器上的用戶(hù)端登錄子系統(tǒng)組成,形成內(nèi)外兩道防線。使其即實(shí)現(xiàn)上機(jī)必須刷卡,且一人只能使用一臺(tái)計(jì)算機(jī),又能根據(jù)需要自由選定機(jī)位,調(diào)換機(jī)位。給管理和使用都帶來(lái)了方便。下面分別介紹各子系統(tǒng)的功能及工作原理。1.3.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ì)的功
11、能。該子系統(tǒng)由IC卡刷卡機(jī)和刷卡機(jī)管理服務(wù)器組成。IC卡刷卡機(jī)由單片機(jī)加上一個(gè)通過(guò)IC卡機(jī)構(gòu)成,使其具有了和刷卡機(jī)管理服務(wù)器之間進(jìn)行通訊的能力和驅(qū)動(dòng)數(shù)碼管顯示的能力。加上一個(gè)多用戶(hù)串行通信卡與刷卡機(jī)進(jìn)行通信,一臺(tái)刷卡機(jī)管理服務(wù)器上的多用戶(hù)卡最多可掛接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)超過(guò)使用期限、是否是掛失卡、卡上金額是否滿(mǎn)足設(shè)定的要求等。如驗(yàn)證有誤,管理服務(wù)器送相應(yīng)錯(cuò)誤代碼至IC卡刷卡機(jī),IC卡刷卡機(jī)
12、將顯示誤代碼,并發(fā)聲提示。如果是下機(jī),管理服務(wù)器首先要通過(guò)LAN從用戶(hù)端登錄服務(wù)器獲取該卡登錄信息,判斷該卡是否按正常下機(jī)步驟已經(jīng)注銷(xiāo)。如已注銷(xiāo),根據(jù)用機(jī)時(shí)間和設(shè)定的機(jī)時(shí)價(jià)格送至刷卡機(jī)扣出金額并清除庫(kù)中相應(yīng)的上機(jī)信息。否則送“尚未注銷(xiāo)”錯(cuò)誤代碼至IC卡刷卡機(jī)通知該卡用戶(hù)返回機(jī)房注銷(xiāo)機(jī)器以釋放該機(jī)器的使用權(quán)。一次刷卡過(guò)程在500ms內(nèi)完成。該系統(tǒng)還可按不同機(jī)房的不同機(jī)型設(shè)置收費(fèi)標(biāo)準(zhǔn)。根據(jù)實(shí)際應(yīng)用的需要,該子系統(tǒng)還設(shè)置了跨日下機(jī),不注銷(xiāo)刷卡下機(jī)等特殊處理功能。登錄管理服務(wù)器及用戶(hù)端錄子系統(tǒng)該子系統(tǒng)由一個(gè)含有控制引導(dǎo)過(guò)程的擴(kuò)展ROM卡和事先寫(xiě)在硬盤(pán)特殊位置的登錄軟件構(gòu)成。放在ROM擴(kuò)展卡上的程序用來(lái)
13、獲取對(duì)系統(tǒng)引導(dǎo)過(guò)程的控制權(quán),確保該計(jì)算機(jī)的使用者必須經(jīng)過(guò)上機(jī)登錄并且有效才能取得對(duì)該機(jī)器的使用權(quán)。由于采用了硬件設(shè)計(jì),一般用戶(hù)無(wú)法繞過(guò)登錄,因此,設(shè)置登錄功能就有效地避免了未經(jīng)刷卡就使用機(jī)器或一個(gè)使用多臺(tái)機(jī)器現(xiàn)象的發(fā)生。用戶(hù)端登錄服務(wù)通訊程序BOLABDC+編寫(xiě),它的作用是用它通過(guò)LAN與登錄服務(wù)器進(jìn)行通訊,以完成對(duì)該機(jī)的上機(jī)登錄和下機(jī)注銷(xiāo)以及更改密碼的工作。使用者刷卡進(jìn)入機(jī)房后,首先將申請(qǐng)?jiān)摍C(jī)使用權(quán)的用戶(hù)的卡號(hào),密碼輸入。登錄服務(wù)通訊程序?qū)⑤斎氲目ㄌ?hào),密碼連同本機(jī)地址一道通過(guò)LAN發(fā)送至登錄管理服務(wù)器,登錄管理服務(wù)器收到登錄申請(qǐng)請(qǐng)求后通過(guò)LAN查詢(xún)刷卡機(jī)管理服務(wù)器。通過(guò)卡號(hào)查詢(xún)檢查該卡用戶(hù)是
14、否已經(jīng)刷卡。如果找到該卡的刷卡信息并且核對(duì)密碼無(wú)誤,則返回登錄成功信息到用戶(hù)終端機(jī)。用戶(hù)終端機(jī)收到返回的登錄成功信息后將控制權(quán)交本機(jī)WIN98引導(dǎo)系統(tǒng)。進(jìn)入正常使用狀態(tài)。否則,如果在刷卡機(jī)管理服務(wù)器未查到該用戶(hù)的刷卡信息或核對(duì)密碼有誤,則返回一登錄失敗以及相應(yīng)的錯(cuò)誤信息到用戶(hù)終端機(jī)。用戶(hù)終端機(jī)收到返回錯(cuò)誤信息后將在計(jì)算機(jī)屏幕上顯示“無(wú)此卡號(hào)”或“密碼錯(cuò)誤”的信息,讓使用者確定是否刷卡,或是輸入了錯(cuò)誤的卡號(hào)或密碼而作出相應(yīng)處理,直至登錄正確。同樣,使用者在機(jī)器使用完后要使用戶(hù)端登錄服務(wù)提供的注銷(xiāo)功能進(jìn)行注銷(xiāo),才能釋放該機(jī)的使用權(quán),才能正常通過(guò)刷卡機(jī)管理子系統(tǒng)刷卡下機(jī)。在登錄管理服務(wù)器端運(yùn)行的登錄
15、軟件,不僅負(fù)責(zé)對(duì)用戶(hù)登錄和注銷(xiāo)的及時(shí)處理,還對(duì)登錄后的使用情況進(jìn)行管理和監(jiān)控。它記錄并保存用戶(hù)上機(jī)的起始時(shí)間和使用者機(jī)位變更情況。以備需要時(shí)查詢(xún)。它還負(fù)責(zé)對(duì)集體上機(jī)這類(lèi)不需登錄的情況進(jìn)行處理。登錄管理服務(wù)器端可以把某些機(jī)位設(shè)置為不檢測(cè)卡號(hào)和登錄。因此集體上機(jī)的用戶(hù)在指定機(jī)位上無(wú)須登錄即可使用計(jì)算機(jī)。1.3.2 數(shù)據(jù)后備系統(tǒng)在整個(gè)門(mén)禁系統(tǒng)運(yùn)行過(guò)程中,數(shù)據(jù)的可靠性和安全性是非常重要的,數(shù)據(jù)一但丟失或遭到破壞將會(huì)造成巨大損失。因此,從系統(tǒng)及數(shù)據(jù)的安全考慮。專(zhuān)門(mén)為各子系統(tǒng)軟件設(shè)計(jì)了一個(gè)自動(dòng)備份模塊。該自動(dòng)備份模塊確保各子系統(tǒng)不僅要將自己的數(shù)據(jù)保存一段時(shí)間,在每天關(guān)機(jī)前退出相應(yīng)的管理程序時(shí),各子系統(tǒng)還會(huì)
16、啟動(dòng)自己的自動(dòng)備份模塊,自動(dòng)將當(dāng)日的所有數(shù)據(jù)通過(guò)LAN傳送到一個(gè)專(zhuān)門(mén)的數(shù)據(jù)后備服務(wù)器予以保存。這樣,即使發(fā)生意外,最多只能影響到當(dāng)日數(shù)據(jù)。從而把損失降到最少。1.3.3 UPS系統(tǒng)為保證因意外事故導(dǎo)致突然停電后,所有的登錄及刷卡信息不被丟失和使用者能刷卡下機(jī)。門(mén)禁系統(tǒng)專(zhuān)門(mén)配備了50KW/UPS不間斷電源,在電網(wǎng)停電時(shí)能為各子系統(tǒng)提供不少于30分鐘的供電。保證正在上機(jī)的使用者都能在這段時(shí)間內(nèi)能利用刷卡機(jī)子系統(tǒng)提供的“不注銷(xiāo)下機(jī)”功能正常刷卡下機(jī)。管理人員也能在所有使用者刷卡退出后按正常步驟關(guān)閉各子系統(tǒng)并在退出過(guò)程中自動(dòng)備份當(dāng)日的相關(guān)數(shù)據(jù)。第2章 總體概要設(shè)計(jì)21 系統(tǒng)需求分析在此實(shí)例中,我們要開(kāi)
17、發(fā)一個(gè)實(shí)現(xiàn)局域網(wǎng)門(mén)禁系統(tǒng)功能的客戶(hù)/服務(wù)器(C/S)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),下面是用戶(hù)對(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)的用戶(hù)為某學(xué)校的學(xué)生與教職員,分成Teacher、Master和Graduate三組。他們每人均有一張機(jī)讀卡,對(duì)學(xué)生而言標(biāo)識(shí)其學(xué)號(hào),對(duì)教職員而言則標(biāo)識(shí)其員工代號(hào),在此我們系統(tǒng)稱(chē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è)模塊。在刷卡端能夠使用刷卡器讀取用戶(hù)卡上的ID并
18、發(fā)送給服務(wù)器,然后顯示用戶(hù)信息及刷卡成功或失敗等反饋消息;在實(shí)時(shí)監(jiān)控端,要求設(shè)立管理員,能夠?qū)崟r(shí)顯示已刷卡用戶(hù)、進(jìn)行自動(dòng)計(jì)費(fèi)以及輸出查詢(xún)統(tǒng)計(jì)報(bào)表。管理員可以維護(hù)上機(jī)用戶(hù)的數(shù)據(jù),實(shí)現(xiàn)增加、刪除用戶(hù)及修改用戶(hù)信息。下表2-1顯示了系統(tǒng)模塊劃分情況。表2-1 局域網(wǎng)門(mén)禁系統(tǒng)模塊劃分情況模塊名所在機(jī)器功能刷卡模塊專(zhuān)門(mén)用于刷卡的PC上刷卡及顯示反饋信息實(shí)時(shí)監(jiān)控模塊域控制器上(服務(wù)器)實(shí)時(shí)顯示、自動(dòng)計(jì)費(fèi)、用戶(hù)管理和輸出查詢(xún)統(tǒng)計(jì)報(bào)表刷卡模塊主要完成刷卡功能,同時(shí)顯示從服務(wù)器上反饋回來(lái)的信息,包括:用戶(hù)ID、用戶(hù)姓名、用戶(hù)班級(jí)、用戶(hù)刷卡登記時(shí)間、用戶(hù)刷卡注銷(xiāo)時(shí)間、當(dāng)前的上機(jī)余款、刷卡是否成功。為了防止用戶(hù)使用
19、鍵盤(pán)關(guān)閉刷卡模塊,必須實(shí)現(xiàn)只能通過(guò)服務(wù)器端的實(shí)時(shí)監(jiān)控模塊制刷卡模塊退出的功能。實(shí)時(shí)監(jiān)控模塊主要完成實(shí)時(shí)監(jiān)控功能,隨時(shí)監(jiān)聽(tīng)從刷卡端發(fā)來(lái)的刷卡消息,叛斷是刷卡登錄還是刷卡注銷(xiāo),隨后進(jìn)行相應(yīng)的數(shù)據(jù)處理,再向刷卡端返回反饋消息。用戶(hù)管理主要分為用戶(hù)帳號(hào)的增加、刪除,用戶(hù)信息的修改。每一個(gè)欲上機(jī)的用戶(hù)必須首先在實(shí)時(shí)監(jiān)控模塊端進(jìn)行注冊(cè),然后在刷卡端刷卡,方可使用局域網(wǎng)內(nèi)的任一臺(tái)機(jī)器。系統(tǒng)對(duì)用戶(hù)進(jìn)行了分類(lèi),分成老師、研究生、本科生三類(lèi),分別有不同的計(jì)費(fèi)標(biāo)準(zhǔn)。統(tǒng)計(jì)查詢(xún)功能要求有登錄日志查詢(xún)、用戶(hù)信息查詢(xún)、組信息查詢(xún)和用戶(hù)上機(jī)情況統(tǒng)計(jì)。登錄日志查詢(xún)要求顯示某段日期內(nèi)某個(gè)用戶(hù)的登錄記錄;用戶(hù)信息查詢(xún)要求顯示某用戶(hù)
20、的具體信息如金額等;組信息查詢(xún)要求顯示某組的計(jì)費(fèi)標(biāo)準(zhǔn)和成員列表;用戶(hù)上機(jī)情況統(tǒng)計(jì)要求統(tǒng)計(jì)用戶(hù)的總上機(jī)小時(shí)數(shù)以便核查。所有查詢(xún)統(tǒng)計(jì)結(jié)果均為只讀信息,不可以進(jìn)行任何修改。在用戶(hù)管理和查詢(xún)統(tǒng)計(jì)前,均要求使用者輸入管理員帳號(hào)和密碼。由于實(shí)時(shí)臨近模塊端可以對(duì)用戶(hù)數(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)控模塊,也保證了用戶(hù)資料不受惡意修改。管理員進(jìn)入實(shí)時(shí)監(jiān)控模塊后,可以維護(hù)自己的密碼,以滿(mǎn)足自己的需要。22 系統(tǒng)設(shè)計(jì)在以上的系統(tǒng)功能分析中,我們確定了系統(tǒng)的模塊劃
21、分和所需要具有的功能。然而用戶(hù)需求還不能直接指導(dǎo)我們進(jìn)行開(kāi)發(fā),作為開(kāi)發(fā)人員,我們必須根據(jù)用戶(hù)需求進(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é)議等。只有事先確定了這些,我們才能在開(kāi)發(fā)時(shí)做到心中有數(shù),游刃有余。2.2.1 畫(huà)出數(shù)據(jù)流圖數(shù)據(jù)流圖(Data Flow Diagram,簡(jiǎn)稱(chēng)DFD圖)是用一些規(guī)定的圖標(biāo)和符號(hào)來(lái)描述數(shù)據(jù)在系統(tǒng)中的流動(dòng)和處理的情況。數(shù)據(jù)流圖在表示系統(tǒng)時(shí),采用自上而下逐步細(xì)化的結(jié)構(gòu)化方法表示。頂層一級(jí)的功能在下一級(jí)中加以細(xì)化。根據(jù)系統(tǒng)分析,我們可以畫(huà)出如圖2-1所示的頂層數(shù)據(jù)流圖。局域網(wǎng)門(mén)禁系統(tǒng)刷卡
22、消息 刷卡反饋消息 系統(tǒng)退出命令刷卡模塊實(shí)時(shí)監(jiān)控模塊圖2-1頂層數(shù)據(jù)流圖上面的頂層數(shù)據(jù)流圖經(jīng)過(guò)細(xì)化后,得到圖2-2所示的監(jiān)控模塊第二層數(shù)據(jù)流圖與圖2-3所示的刷卡模塊第二層數(shù)據(jù)流圖。刷卡消息處理實(shí)時(shí)監(jiān)控P1管理員查詢(xún)統(tǒng)計(jì)用戶(hù)維護(hù)登錄日志D1組計(jì)費(fèi)標(biāo)準(zhǔn) D2用戶(hù)列表D3 P4P2P3 反 退 刷 饋 出 卡 消 命 消 息 令 息 刷卡消息量 驗(yàn)證信息 身份驗(yàn)證 處理結(jié)果 驗(yàn) 身 證 份 調(diào)用信息 調(diào)用信息 調(diào)用信息 信 驗(yàn) 查詢(xún)要求 統(tǒng)計(jì)要求 修改要求 息 證 查詢(xún)結(jié)果 統(tǒng)計(jì)結(jié)果 修改結(jié)果圖2-2 實(shí)時(shí)監(jiān)控模塊第二層數(shù)據(jù)流 刷卡器刷卡信息處理 P5 顯示信息 刷卡消息 刷卡反饋消息 刷卡ID
23、系統(tǒng)退出命令圖2-3 刷卡模塊第二層數(shù)據(jù)流2.2.2 編寫(xiě)數(shù)據(jù)項(xiàng)根據(jù)數(shù)據(jù)項(xiàng)的含義,我們將數(shù)據(jù)項(xiàng)的定義分為以下幾個(gè)方面:數(shù)據(jù)項(xiàng)名、類(lèi)型、長(zhǎng)度、附加說(shuō)明。主要數(shù)據(jù)項(xiàng)定義如表2-2至表2-3所示。表2-2 數(shù)據(jù)項(xiàng)定義(登錄日志)數(shù)據(jù)項(xiàng)名類(lèi)型長(zhǎng)度說(shuō)明用戶(hù)ID(id)字符型16英文字符和數(shù)字的組合類(lèi)型(type)字符型4固定為“刷卡”,為以后功能擴(kuò)充使用登錄時(shí)間(intime)日期型形式:2005-3-4 12:00注銷(xiāo)時(shí)間(outtime)日期型形式同上IP字符型15以后功能擴(kuò)充使用表2-3 數(shù)據(jù)項(xiàng)定義(組計(jì)費(fèi)標(biāo)準(zhǔn))數(shù)據(jù)項(xiàng)名類(lèi)型長(zhǎng)度說(shuō)明組類(lèi)別(type)字符型16英文字符和數(shù)字的組合(主碼),為T(mén)ea
24、cher|Master|Graduate計(jì)費(fèi)標(biāo)準(zhǔn)(criteria)浮點(diǎn)型Single類(lèi)型表2-4 數(shù)據(jù)項(xiàng)定義(用戶(hù)列表)數(shù)據(jù)項(xiàng)名類(lèi)型長(zhǎng)度說(shuō)明用戶(hù)ID(id)字符型16用戶(hù)卡上的標(biāo)識(shí)碼(主碼)類(lèi)型(type)字符型16同組類(lèi)別姓名(name)字符型20密碼(pwd)字符型20英文字符和數(shù)字的組合金額(money)浮點(diǎn)型Single類(lèi)型附加信息(info)字符型100其他信息23數(shù)據(jù)庫(kù)設(shè)計(jì)1 數(shù)據(jù)庫(kù)概念設(shè)計(jì)根據(jù)對(duì)數(shù)據(jù)流圖和數(shù)據(jù)字典的分析,我們可以確定該應(yīng)用中的實(shí)體、屬性和實(shí)體之間的關(guān)系,并畫(huà)出如圖所示的用戶(hù)E-R圖。 組 1屬于 1 n對(duì)應(yīng)ID對(duì)應(yīng)金額用戶(hù) 1 1 n m對(duì)應(yīng) n計(jì)費(fèi)標(biāo)準(zhǔn) m圖2
25、-4 數(shù)據(jù)流程圖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 )用戶(hù)列表 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,ip VARCHAR(15
26、);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.第3章 分子模塊的設(shè)計(jì)3.1 C/S
27、基本概念什么是C/S?如果你是一位DELPHI開(kāi)發(fā)人員,那你一定要把這個(gè)概念弄清楚。因?yàn)閷?shí)際上,DELPHI本身就是一個(gè)客戶(hù)/服務(wù)器開(kāi)發(fā)環(huán)境。典型的客戶(hù)/服務(wù)器結(jié)構(gòu)總是包括一個(gè)前端程序,也叫客戶(hù)。其作用于是向遠(yuǎn)程服務(wù)器上的程序發(fā)送數(shù)據(jù),并接收來(lái)自服務(wù)器的數(shù)據(jù)并進(jìn)行一定的處理,再根據(jù)情況進(jìn)行反饋。即遠(yuǎn)程服務(wù)器是服務(wù)的提供者,它可以從內(nèi)部訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù);而客戶(hù)總是向服務(wù)器請(qǐng)求服務(wù),并不能直接訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)。在這種情況下,服務(wù)器盡可能詳盡地定義業(yè)務(wù)規(guī)則和實(shí)現(xiàn)盡可對(duì)強(qiáng)大的功能,因?yàn)樗歉卤容^緩慢的,而客戶(hù)往往比較“瘦小”,因?yàn)樗穷l繁更新和分發(fā)的對(duì)象。一般情況下,客戶(hù)/服務(wù)器方案可
28、以解決以下幾個(gè)問(wèn)題:l 允許將不同客戶(hù)進(jìn)行分類(lèi),每類(lèi)客戶(hù)只允許處理它負(fù)責(zé)的數(shù)據(jù)。l 以一種更為有效的方式為決策者提供決策支持。l 在MIS中加強(qiáng)對(duì)數(shù)據(jù)的集中控制,而在數(shù)據(jù)分析和使用的集中控制上只需要花費(fèi)比較少的精力。l 在服務(wù)器端可以對(duì)整個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)完整性驗(yàn)證。l 更靈活的業(yè)務(wù)劃分,客戶(hù)端和服務(wù)器端業(yè)務(wù)功能分離,各司其職。l 服務(wù)器向客戶(hù)端傳遞的數(shù)據(jù)是經(jīng)過(guò)篩選的,可以減輕網(wǎng)絡(luò)負(fù)擔(dān)。1 客戶(hù)/服務(wù)器模型客戶(hù)/服務(wù)器模型通常分兩層模型和三層模型兩類(lèi)。下面我們分別進(jìn)行介紹。l 兩層模型兩層模型的應(yīng)用十廣泛,基本上,它是由桌面數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)演變而來(lái)的。在此模型中,數(shù)據(jù)庫(kù)位于服務(wù)器端,客戶(hù)應(yīng)用程
29、序位于客戶(hù)機(jī)上,業(yè)務(wù)邏輯放在客戶(hù)或服務(wù)器上。如圖3-1所示。l 三層模型如圖3-2所示,客戶(hù)僅僅起顯示數(shù)據(jù)的作用,業(yè)務(wù)規(guī)則(處理邏輯)放在服務(wù)器上,而實(shí)際的數(shù)據(jù)庫(kù)則放在另外一臺(tái)機(jī)器上。由于三者處于不同的機(jī)器,開(kāi)發(fā)人員可以更靈活高效地劃分系統(tǒng)功能,優(yōu)化數(shù)據(jù)訪問(wèn)及維護(hù)數(shù)據(jù)的完整性??蛻?hù)3數(shù)據(jù)業(yè)務(wù)規(guī)則客戶(hù)2客戶(hù)1圖3-1 兩層客戶(hù)/服務(wù)器模型 數(shù)據(jù)庫(kù)業(yè)務(wù)規(guī)則客戶(hù)1客戶(hù)2客戶(hù)3 圖3-2 三層客戶(hù)/服務(wù)器模2 客戶(hù)/服務(wù)器模型與桌面數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的比較客戶(hù)/服務(wù)器器模型與桌面模型應(yīng)用系統(tǒng)的比較:面向集合與面向記錄。對(duì)客戶(hù)端而言,它面向的是記錄。對(duì)桌面數(shù)據(jù)庫(kù)而言,它直接面對(duì)數(shù)據(jù)集合;而在C/S模型中,客
30、戶(hù)面對(duì)的只是數(shù)據(jù)集合的一個(gè)子集。通過(guò)SQL語(yǔ)句,客戶(hù)可以從服務(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í)間是很長(zhǎng)的。相比之下,通過(guò)SQL,只需要通過(guò)網(wǎng)絡(luò)傳輸符合記錄的部分記錄集,這就大大減輕了網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān),也使系統(tǒng)的響應(yīng)速度得到了很大的提高。3.3.1 刷卡模塊刷卡模塊主要有2個(gè)子模塊組成,如圖3-3所示。背景框架子模塊刷卡消息處理模塊 圖3-3 刷卡模塊系統(tǒng)結(jié)構(gòu)圖下面是各模塊的主要功能:l 背景框架子模塊該子模塊是刷卡模塊的背景界面,通過(guò)覆蓋整個(gè)
31、桌面起到模擬的效果。同時(shí),它起到禁止用戶(hù)關(guān)閉系統(tǒng)的作用。通過(guò)在內(nèi)部設(shè)定一個(gè)開(kāi)關(guān),使得用戶(hù)無(wú)法通過(guò)鍵盤(pán)和鼠標(biāo)關(guān)閉刷卡應(yīng)用程序,而只能通過(guò)接收來(lái)自服務(wù)器的命令才能夠自動(dòng)關(guān)閉。l 刷卡消息處理子模塊該子模塊是刷卡模塊的邏輯核心部分。在這個(gè)子模塊中,能夠?qū)崿F(xiàn)自動(dòng)讀取用戶(hù)刷卡信息、向服務(wù)器傳送刷卡信息和接收并顯示服務(wù)器反饋信息的功能。通過(guò)這個(gè)模塊,用戶(hù)可以刷卡,實(shí)時(shí)看到自己刷卡的處理結(jié)果以及自己的姓名、班級(jí)、刷卡登錄時(shí)間、注銷(xiāo)時(shí)間和當(dāng)前余額信息。如果用戶(hù)余額不足,該子模塊將顯示拒絕用戶(hù)登錄的提示。3.3.2實(shí)時(shí)監(jiān)控模塊該模塊主要由四個(gè)子模塊組成,如圖3-4所示實(shí)時(shí)監(jiān)控子模塊查詢(xún)統(tǒng)計(jì)子模塊用戶(hù)管理子模塊刷
32、卡消息處理子模塊圖3-4 實(shí)時(shí)監(jiān)控子模塊系統(tǒng)結(jié)構(gòu)圖下面是各模塊的主要功能:l 實(shí)時(shí)監(jiān)控子模塊該子模塊是實(shí)時(shí)監(jiān)控模塊的主界面,也是系統(tǒng)的惟一進(jìn)入和退出端。通過(guò)此子模塊,用戶(hù)可以調(diào)用查詢(xún)統(tǒng)計(jì)子模塊和用戶(hù)管理子模塊,同時(shí),此子模塊還自動(dòng)調(diào)用刷卡消息處理子模塊處理來(lái)自刷卡模塊的消息。由于只有管理員才可以訪問(wèn)這四個(gè)子模塊,因此,在進(jìn)入此模塊時(shí)必須進(jìn)行身份驗(yàn)證,確保只有管理員才能運(yùn)行實(shí)時(shí)監(jiān)控應(yīng)用程序。在此模塊中,管理員還可以實(shí)時(shí)看到當(dāng)前刷卡上機(jī)的用戶(hù)列表及每個(gè)用戶(hù)的詳細(xì)信息。l 刷卡消息處理子模塊該子模塊是實(shí)時(shí)監(jiān)控模塊實(shí)現(xiàn)門(mén)禁功能和自動(dòng)計(jì)費(fèi)功能的核心部分。這個(gè)子模塊由實(shí)時(shí)監(jiān)控子模塊自動(dòng)調(diào)用,以刷卡消息為處
33、理對(duì)象,自動(dòng)維護(hù)已刷卡用戶(hù)列表和域用戶(hù)列表,并向數(shù)據(jù)庫(kù)中寫(xiě)入登錄住處和更新用戶(hù)金額。由于采用了多線程模型和臨界區(qū)域?qū)ο?,可以處理同時(shí)到達(dá)的多個(gè)刷卡信息。l 用戶(hù)管理子模塊該子模塊是管理員維護(hù)域用戶(hù)列表和用戶(hù)信息的界面。管理員可以瀏覽并修改三個(gè)用戶(hù)組的成員列表,組計(jì)費(fèi)標(biāo)準(zhǔn)和各用戶(hù)的詳細(xì)信息??梢詾楦鱾€(gè)用戶(hù)組添加新用戶(hù)和刪除無(wú)用的用戶(hù)。由于用戶(hù)信息同時(shí)存在于域用戶(hù)(操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu))和數(shù)據(jù)庫(kù)(系統(tǒng)自帶數(shù)據(jù)表單),如圖3-5所示,因此管理員要修改用戶(hù)清單必須使用此子模塊,而不能單獨(dú)使用操作系統(tǒng)自帶的管理工具來(lái)維護(hù)用戶(hù)列表。用戶(hù)管理子模塊數(shù)據(jù)庫(kù)各用戶(hù)組計(jì)費(fèi)標(biāo)準(zhǔn)Rule表單用戶(hù)列表Users表單Wind
34、ows2000/NT域全局組域用戶(hù)列表一一對(duì)應(yīng) 同步更新圖3-5 用戶(hù)管理子模塊內(nèi)部結(jié)構(gòu)說(shuō)明l 查詢(xún)統(tǒng)計(jì)子模塊該子模塊允許管理員就登錄、用戶(hù)信息和組成員列表進(jìn)行查詢(xún)。允許對(duì)查詢(xún)?cè)O(shè)定關(guān)鍵字進(jìn)行模糊查詢(xún),對(duì)登錄記錄的查詢(xún)還允許設(shè)定查詢(xún)的時(shí)間段。統(tǒng)計(jì)功能分為用戶(hù)上機(jī)清單和用戶(hù)上機(jī)總時(shí)兩部分,前者給出用戶(hù)每一天的上機(jī)時(shí)間,后者給出用戶(hù)總上機(jī)時(shí)間。統(tǒng)計(jì)前,可以設(shè)定統(tǒng)計(jì)的用戶(hù)ID進(jìn)行模糊查詢(xún),還可以設(shè)定統(tǒng)計(jì)的時(shí)間段。最后生成的數(shù)據(jù)集體傳遞給報(bào)表及輸出子模塊進(jìn)行顯示和輸出。l 報(bào)表及輸出子模塊該子模塊顯示查詢(xún)統(tǒng)計(jì)模塊生成的數(shù)據(jù)集,并以Microsoft Word XP 的形式自動(dòng)輸出到固定的目錄下,供用戶(hù)瀏
35、覽、修改和打印。3.4 系統(tǒng)功能實(shí)現(xiàn)通過(guò)上面對(duì)本局域網(wǎng)門(mén)禁系統(tǒng)的功能的簡(jiǎn)單介紹,我們把此系統(tǒng)分割成兩個(gè)單獨(dú)的模塊,刷卡模塊和實(shí)時(shí)監(jiān)控模塊,兩者之間通過(guò)網(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電子表格程序開(kāi)始引入的,與它相對(duì)應(yīng)的是SDI(單文檔結(jié)構(gòu))。一個(gè)MDI應(yīng)用程序包含如下窗口:l 框架窗口:框架窗口雖應(yīng)用程序的主要窗口。此窗口一般含有標(biāo)題欄、
36、菜單條和系統(tǒng)菜單。右上角為最小化、最大化和關(guān)閉按鈕。l 客戶(hù)窗口:MDI程序的窗口管理器,是框架窗口呂間的空白區(qū)域。用來(lái)管理和顯示MDI子窗口。l MDI子窗口:顯示在客戶(hù)窗口內(nèi)的窗口,不能移出客戶(hù)區(qū)。由于Delphi6.0會(huì)自動(dòng)管理MDI窗口元素。因此對(duì)我們來(lái)說(shuō),只需要記住對(duì)框架窗口而言,必須把FormStyle屬性設(shè)置成fsMDIForm;對(duì)子窗口而言,必須把FormStyle屬性設(shè)置成fsMDIChild。如果子窗口是自動(dòng)建立的,那么在程序啟動(dòng)的時(shí)候會(huì)自動(dòng)顯示在客戶(hù)窗口內(nèi)。缺省地,每一個(gè)窗口都有是自動(dòng)建立的,這可以在Project菜單的Options內(nèi)的Forms卡內(nèi)觀察。Auto-cr
37、eate 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),即用戶(hù)數(shù)據(jù)報(bào)協(xié)議,廣泛使用在計(jì)算機(jī)間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用上,如網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)、語(yǔ)音傳播等眾多的客戶(hù)/服務(wù)器模式。UDP協(xié)議從問(wèn)世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類(lèi)似協(xié)議所掩蓋,但是即使在今天,UDP協(xié)議仍然在一項(xiàng)非常衫和有效的網(wǎng)絡(luò)傳輸層協(xié)議。與我們所熟知的TC
38、P協(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é)用來(lái)包含報(bào)頭號(hào)信息,剩余字節(jié)則用來(lái)包含具體的傳輸數(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ò)通
39、信的網(wǎng)絡(luò)協(xié)議。3.6界面設(shè)計(jì)刷卡消息處理子模塊的界面布局如圖3-6所示。圖3-6 刷卡消息處理子模塊界面布局從圖中我們可以看到刷卡界面的基本布局。對(duì)此窗口,我們需要把FormStyle屬性設(shè)置為fsMDIChild,命名為fmScanForm,Caption為“LGYSY-刷卡窗口”。窗口內(nèi)最上面是刷卡用的Tedit控件,命名為editCardNo。下面是個(gè)人信息界面,分別顯示了用戶(hù)姓名、班級(jí)、登錄時(shí)間、注銷(xiāo)時(shí)間和當(dāng)前上機(jī)余額,分別命名為editName,editClass,editInTime,editOutTime,editMoney。由于只起顯示作用,因此這五個(gè)Tedit控件的ReadO
40、nly屬性需要設(shè)置為False。對(duì)于設(shè)置多個(gè)組件的同一屬性,有一個(gè)簡(jiǎn)單的方法,即按住鍵盤(pán)Shift鍵分別點(diǎn)選各個(gè)Tedit組件,然后在Object Inspector里選擇ReadOnly項(xiàng),設(shè)置為T(mén)rue即可。最下面是狀態(tài)欄,左邊的Panel用于顯示刷卡成功/失敗的信息,右邊的Panel顯示當(dāng)前日期。最關(guān)鍵的TNMUDP控件我們命名為nuScanCard,LocalPort屬性設(shè)置為2171,RemotePort屬性設(shè)置為2173,ReportLevel屬性為1。3.7 代碼設(shè)計(jì)首先,在窗口創(chuàng)建時(shí)需要將個(gè)人信息下的各個(gè)輸入框設(shè)置為只讀。其次,我們?cè)诖诵枰玫経DP的廣播功能,這樣只需要把Re
41、moteIP設(shè)置為廣播地址,發(fā)送的數(shù)據(jù)就可以被局域網(wǎng)內(nèi)的所有機(jī)器所接收。這樣,我們就沒(méi)必要單獨(dú)設(shè)置服務(wù)器的IP,否則,當(dāng)服務(wù)器IP改變的時(shí)候,還必須重新設(shè)置nuScanCard.RemoteHost屬性值。對(duì)于廣播的詳細(xì)信息,請(qǐng)參閱其他專(zhuān)業(yè)文獻(xiàn),在這里只需要指出,如果本機(jī)IP為165.111.13.13而子網(wǎng)掩碼為255.255.0.0,則廣播地址即為165.111.255.255。因此,在窗口創(chuàng)建時(shí)需要獲取廣播地址并賦給RemoteIP屬性。如果獲取IP失敗,則應(yīng)該退出系統(tǒng)。另外,由于下面的代碼用到了WinSock.pas單元,而這個(gè)單元并沒(méi)有缺省包含在引用列表中,所以必須手工在接口部分的引
42、用列表中添加此單元。3.8 ODBC數(shù)據(jù)源設(shè)計(jì)所有的模塊及界面做好以后,最后就要進(jìn)行數(shù)據(jù)庫(kù)連接了。打開(kāi)開(kāi)始設(shè)置控制面板管理工具ODBC數(shù)據(jù)源,選擇系統(tǒng)DNS,如下圖所示:圖3-7 ODBC數(shù)據(jù)源(1)選擇添加創(chuàng)建新數(shù)據(jù)源如下圖所示:圖3-8 ODBC數(shù)據(jù)源(2)點(diǎn)擊完成。填寫(xiě)數(shù)據(jù)源名稱(chēng)網(wǎng)吧管理系統(tǒng),選擇數(shù)據(jù)庫(kù),如下圖所示:圖3-9 ODBC數(shù)據(jù)源(3)點(diǎn)擊確定完成。結(jié)束語(yǔ)通過(guò)本次畢業(yè)設(shè)計(jì),我們基本明確了一個(gè)局域網(wǎng)門(mén)禁系統(tǒng)從構(gòu)思到設(shè)計(jì)再到實(shí)現(xiàn)的一般步驟以及需要注意的方面,這也是一個(gè)讓我們自己學(xué)習(xí)知識(shí)和運(yùn)用知識(shí)的大好機(jī)會(huì)。我們最大的遺憾就是由于能力和設(shè)備的限制沒(méi)有能夠把一整套網(wǎng)絡(luò)管理系統(tǒng)做出來(lái)。還
43、有部分功能還有待進(jìn)一步加強(qiáng)。嚴(yán)格的來(lái)說(shuō),我們的系統(tǒng)還不是真正意義上的局域網(wǎng)門(mén)禁系統(tǒng),而是一個(gè)單機(jī)測(cè)試版。原因就是缺乏很強(qiáng)專(zhuān)業(yè)技術(shù)水平以及沒(méi)有很高的技術(shù)含量。由于在校內(nèi)課程中沒(méi)有涉及到很深Delphi程序,以及我個(gè)人學(xué)習(xí)能力的限制,系統(tǒng)也沒(méi)有能夠?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)過(guò)調(diào)試,系統(tǒng)已基本達(dá)到我們初步制定的目標(biāo),完成簡(jiǎn)單登錄、查詢(xún)、管理等功能,并能順利通過(guò)單機(jī)環(huán)境測(cè)試。我相信,在不久的將來(lái),局域
44、網(wǎng)門(mén)禁系統(tǒng)將提供更為簡(jiǎn)單,同時(shí)也是更為精細(xì)和完善的實(shí)現(xiàn)手段。到那時(shí),使用局域網(wǎng)門(mén)禁系統(tǒng)管理網(wǎng)絡(luò),將更加簡(jiǎn)單!致謝在這幾個(gè)月的畢業(yè)設(shè)計(jì)過(guò)程中,學(xué)校領(lǐng)導(dǎo)和老師對(duì)我們表達(dá)了深切的關(guān)心和嚴(yán)格的督促;尤其是在課題設(shè)計(jì)的初始階段,王秀山老師對(duì)我進(jìn)行了悉心的教導(dǎo)并提出了許多寶貴的意見(jiàn);在系統(tǒng)開(kāi)發(fā)過(guò)程中,指導(dǎo)教師在百忙之中抽出時(shí)間為我們的設(shè)計(jì)提供參考書(shū)目和專(zhuān)業(yè)指導(dǎo);在課題研究過(guò)程中,其他老師也為我們提供了許多的寶貴意見(jiàn)和幫助;班主任老師更是一遍一遍不厭其煩地督促我們完成設(shè)計(jì)工作。在此,我對(duì)這段時(shí)間幫助過(guò)我的所有老師致以最由衷的感謝,謝謝各位老師的幫助,沒(méi)有你們,我的畢業(yè)設(shè)計(jì)不會(huì)如此順利的完成。參 考 文 獻(xiàn)1
45、、江毅等.DELPHI6.0數(shù)據(jù)庫(kù)實(shí)例編程.北京:中國(guó)水利水電出版社,20022、苗雪蘭,劉瑞新,王懷峰.數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用教程.北京:機(jī)械工業(yè)出版社,20013、袁培根,楊東艷,肖仁琴,何明儒.開(kāi)放式機(jī)房門(mén)禁系統(tǒng)研制與實(shí)踐.北京:實(shí)驗(yàn)室研究與探索第20卷第5期,20014、賈成宇,李樹(shù)秋,王世剛.智能門(mén)禁系統(tǒng)門(mén)控部分硬件設(shè)計(jì).吉林:長(zhǎng)春郵電學(xué)院學(xué)報(bào)第18卷第3期,20005、賈成宇,李樹(shù)秋,王世剛.智能門(mén)禁系統(tǒng)門(mén)控部分軟件設(shè)計(jì).吉林:長(zhǎng)春郵電學(xué)院學(xué)報(bào)第19卷第1期,2001附 錄unit main;interfaceuses Windows, Messages, SysUtils, Var
46、iants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, Menus, Mask, DBCtrls, Buttons;type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Edit1: TEdit; Label1: TLabel; DBGrid1: TDBGrid; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N4: TMenuItem; N6: TMen
47、uItem; 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; DBE
48、yhm: 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); p
49、rocedure 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 Pub
50、lic declarations end;var Form1: TForm1;implementationuses D_M, sd_gl, dd_gl, mr_jg, deng_lu, dl_gl, shan_chu;$R *.dfmfunction Tform1.sswu(yuanshi:string):real;var dd:string;beginif pos('.',yuanshi)<>0 thenbegin dd:=copy(yuanshi,pos('.',yuanshi)+1,3); if (strtofloat(dd)>=0)and(strtofloat(dd)<=25) then result:=strtofloat(copy(yuanshi,1,pos('.',yuanshi)-1) else if (strtofloat(dd)>25)and(strtofloat(dd)<=75) then result:=strtofloat(copy(yuanshi,1,pos('.',yuanshi)-1)+0.5 else if (strtofloat(dd)>75)and(strtofloat(dd)<=99) then resul
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生態(tài)旅游可持續(xù)發(fā)展規(guī)劃與管理旅游目的地生態(tài)旅游發(fā)展規(guī)劃報(bào)告
- 智能電網(wǎng)在2025年能源行業(yè)中的應(yīng)用與產(chǎn)業(yè)生態(tài)構(gòu)建報(bào)告
- 智能設(shè)備配對(duì)管理制度
- 大公司工廠績(jī)效管理制度
- 印刷廠安全生產(chǎn)管理制度
- 婦產(chǎn)科儀器設(shè)備管理制度
- 護(hù)理制度流程化管理制度
- 客服辦公室設(shè)備管理制度
- 春季魚(yú)塘開(kāi)口管理制度
- 產(chǎn)品銷(xiāo)售群規(guī)定管理制度
- 伊朗鋼結(jié)構(gòu)包裝專(zhuān)項(xiàng)方案
- 感恩成長(zhǎng)主題班會(huì)
- 雨污分流改造方案
- 兒童牙髓疾病的分類(lèi)與根管治療方法
- 白國(guó)周班組管理法培訓(xùn)課件
- 衛(wèi)生專(zhuān)業(yè)技術(shù)人員檔案表(最全)
- 幼兒園戶(hù)外自主游戲中教師的有效介入研究-以積木游戲?yàn)榘咐ㄗ罱K成稿)
- 廣東省地質(zhì)災(zāi)害危險(xiǎn)性評(píng)估實(shí)施細(xì)則(2023年修訂版)
- 品管圈在降低我院靜脈用藥調(diào)配中心藥品損耗中的實(shí)踐與分析靜配中心質(zhì)量持續(xù)改進(jìn)案例
- 高職、小高職中國(guó)傳統(tǒng)文化課程標(biāo)準(zhǔn)
- 大數(shù)據(jù)在教育領(lǐng)域中的學(xué)生學(xué)習(xí)行為分析
評(píng)論
0/150
提交評(píng)論