




已閱讀5頁,還剩24頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 本文配套程序下載地址 : 無憂無慮畢設網 ()-大學生畢業設計站 ,免費畢業設計論文 ,無憂無慮畢設網 大學生畢業設計 ,出售各類畢業設計源碼 ,論文 ,程序源碼 ,網站源碼 ,免費視頻教程 ,我們將竭誠為您服務! 第一章 緒 論 1 1 前言 隨著高科技的蓬勃發展,智能化管理已經走進了人們的社會生活,一座座智能化大廈拔地而起,適應 信息的時代需要 ,作為跨世紀使用的建筑 ,必須在功能上滿足當前和未來發展的需求 ,成為文化和經濟發展的基地。 門禁系統開發作為一項先進的高科技技術防范和管理手段,在一些經 濟發達的國家已經廣泛應用于科研、工業、博物館、酒店、商場、醫療監護、銀行、監獄等,特別是由于系統本身具有隱蔽性,及時性等特點,在許多領域的應用越來越廣泛。 門禁系統的技術不斷向前發展 , 用戶需求也在發生變化 , 因此門禁系統的設計與實施應考慮到將來可擴展的實際需要 , 亦即 : 可靈活增減或更新各個子系統 , 滿足不同時期的需要 , 保持長時間領先地位 , 成為智能建筑的典范。系統設計時 ,對需要實現的功能進行了合理配置 ,并且這種配置是可以改變的 ,設置甚至在工程完成后 ,這種配置的改變也是可能的和方便的 .系統軟件根據開發商 符合不同歷史時期市場的需求進行相應的升級和完善 ,并免費為相應的應用客戶進行免費的軟件升級 .同時,可以擴展為考勤系統、會議簽到系統、巡邏管理系統,就餐管理系統等一卡通工程。 1 2 Delphi 簡介 本課題是在 Delphi 的基礎上開發研制的,下面對 Delphi進行簡單的介紹。Delphi是 Borland 公司開發的可視化軟件開發系統。 Delphi系列軟件的工作平臺相當廣泛,可以工作于 Windows 95、 Windows98、 Windows NT、 Windows2000以及 Windows XP下,編程所用的 語言為結構化程度相當高的 Object Pascal 語言。用過 Delphi 系列軟件的程序員一定都會覺得 Object Pascal 語言具有高度清晰的結構,高效率的優化系統,是一種簡單易學,但又不乏其作為優秀編無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 程語言的特點。同時,由于 Delphi采用了內置高速的優化編譯器,使得程序的編譯、鏈接速度快的驚人。在與其相類似的可視化軟件開發系統 Microsoft Visual C+的比較中,我們不可否認 Microsoft Visual C+的功能相當強大,但調試程序時的編譯時間過長,使很多程序員感到棘手;而 Delphi 在編譯時等待的時間很少。 Delphi 的編譯器采用了事件編譯和選擇鏈接技術,使生成的可執行文件冗余更少,運行起來速度更快。另外,由于 Delphi生成的可執行文件不需要動態鏈接庫的支持,可以直接交付使用,這會使得使用 Delphi 的程序員充分享受 Delphi 為他們帶來的方便快捷。 Delphi 系列另一個廣受歡迎的原因是其強大的可擴展數據庫功能。 Delphi6.0 不但在傳統的開發能力方面持續進步,讓程序員能夠享有更具生產力的開發環境,對于最新的信息技術,也有非常良好的支持,讓程序員能夠快速地使用這些新的技術。 在對 Delphi 有了一個初步的了解之后,我們將進入對 Delphi 集成開發環境和工程管理的介紹,使大家能夠進一步深入了解 Delphi,并在此基礎上介紹編輯器和調試器的使用方法。 IDE是提供設計、運行和測試應用程序所需的所有工具的集成環境。 Delphi的集成開發環境( IDE)包括代碼編輯器、調試器、工具欄、圖像編輯器以及諸多用于應用程序開發的組件(如數據庫開發組件等)。所有這些都以集成方式進行操作,極大地簡化了用戶編程的過程。 1 3 研究背景 當前 ,大學內的微機機房正在朝著開放式 ,大型化方向發展。一個 教學實驗中心里的幾個機房有著幾百臺微機 ,已是很普遍的現象。使用方式也由原來的以計劃安排集體上機為主 ,變為以個人自由上機為主。因此、以往那種主要針對集體上機的以機房和時間段為單位來安排機器使用的管理方式已顯得不適用。為適應新的應用和發展 ,結合中心自身的特點 ,四川大學工程設計中心和西南交通大學共同研制出了這套用于微機機房管理的集中式 IC 卡控制門禁系統。該系統著眼于對大型開放式機房進行集中管理。把原來的分機房分散管理變為單一出入口的集中管理。變原來的人工計時計費為計算機管理的 IC 卡計費。 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 1 4 特點及組成原 理 該系統有如下特點 : (1)技術上充分利用機房內部局域網系統 (LAN)環境。管轄范圍內只設一個出入口。將所有投入使用的機器置于集中統一管理之下。 (2)采用多模塊結構化模式設計 ,使用多種軟件混合編程。實現子系統內數據庫管理和通訊及子系統與子系統之間的通訊。通過相互間的通訊 ,把幾個子系統的結合在一起。形成一個完善的門禁管理系統。 (3)用戶界面友好、操作簡便、并且具有較好的可維護性。 (4)系統除強調其實用性外 ,還對其安全性和可靠性作了充分考慮。 該系統主要由 IC 卡刷卡機管理子系統、登錄管理服務器及用戶端登 錄子系統組成。它們之間通過內部局域網交換信息以保證機房外刷卡和機房內登錄能協調工作。除此之外 ,還有與之相配套的數據后備系統提供電源保障的 UPS 系統,在門禁系統管理下 ,刷卡機管理子系統向機器使用者提供上機刷卡服務。持卡用戶首先在設于機房外出入口的刷卡機前刷卡 ,刷卡機管理管理服務器在對卡的有效性進行驗證 ,待驗證無誤后使用者方可能進入機房。進入機房后還要進行登記才能使用機器。登錄管理服務器及用戶端登錄子系統提供使用者刷卡后進入機房后的登錄服務。上機要進行登錄是為了避免無卡上機和一人使用多臺機器情況的發生而設計的。 使用者進入機房后 ,可以隨意選定機位但必需進行登錄后才能獲得機器的使用權。為了避免未經刷卡就上機 ,在登錄管理服務器的管理下 ,未刷卡的人將不能通過登錄驗證 ,一個人也不能同時登錄兩臺機器。同樣 ,一臺已經被登錄使用的機器如果未被使用者注銷 ,它也不能再被其他人登錄。當機器使用完畢后 ,使用者必須先執行登錄管理服務器所提供的下機注銷功能 ,釋放該機器的使用權 ,然后再到刷卡機前刷卡 ,刷卡機管理子系統根據使用時間計算并從卡上扣除相應機時金額。如此 ,門禁管理系統就完成了一個上下機的管理過程。從上面上下機的過程可以看出 ,門禁管理系 統的核心部分主要由設在機房外的 IC 卡刷卡機管理子系統、登錄管理服務器和裝在機房內每臺機器上的用戶端登錄子系統組成 ,形成內外兩道防線。使其即實現上機必須刷卡 ,且一人只能使用一臺計算機 ,又能根據需要自由選定機位 ,調換機位。給管理和使用都帶來了方無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 便。下面分別介紹各子系統的功能及工作原理。 1 4 1 刷卡機管理子系統 刷卡機管理子系統負責對出入機房進行計時 ,以及對卡的有效性進行驗證。它還兼有對當前正在上機和當日上機總人數進行統計的功能。該子系統由 IC 卡刷卡機和刷卡機管理服務器組成。 IC 卡刷卡機由單片機加上一個 通過 IC 卡機構成 ,使其具有了和刷卡機管理服務器之間進行通訊的能力和驅動數碼管顯示的能力。加上一個多用戶串行通信卡與刷卡機進行通信 ,一臺刷卡機管理服務器上的多用戶卡最多可掛接 8 臺 IC 卡刷卡機。 IC 卡使用者刷卡后 ,刷卡機將 IC 卡信息送至刷卡機管理服務器 ,經校驗傳送信息無誤后 ,刷卡機管理服務器查找數據庫對該卡記錄進行處理 ,判別是上機還是下機 ,如果是上機 ,就必須對該卡的有效性進行驗證。它要檢查該卡是否已經超過使用期限、是否是掛失卡、卡上金額是否滿足設定的要求等。如驗證有誤 ,管理服務器送相應錯誤代碼至 IC 卡刷卡機 ,IC 卡刷卡機將顯示誤代碼 ,并發聲提示。如果是下機 ,管理服務器首先要通過 LAN 從用戶端登錄服務器獲取該卡登錄信息 ,判斷該卡是否按正常下機步驟已經注銷。如已注銷 ,根據用機時間和設定的機時價格送至刷卡機扣出金額并清除庫中相應的上機信息。否則送“尚未注銷”錯誤代碼至 IC 卡刷卡機通知該卡用戶返回機房注銷機器以釋放該機器的使用權。一次刷卡過程在 500ms 內完成。該系統還可按不同機房的不同機型設置收費標準。根據實際應用的需要 ,該子系統還設置了跨日下機 ,不注銷刷卡下機等特殊處理功能。登錄管理服務器及用戶端錄子系統該子系統由一 個含有控制引導過程的擴展 ROM 卡和事先寫在硬盤特殊位置的登錄軟件構成。放在 ROM 擴展卡上的程序用來獲取對系統引導過程的控制權 ,確保該計算機的使用者必須經過上機登錄并且有效才能取得對該機器的使用權。由于采用了硬件設計 ,一般用戶無法繞過登錄 ,因此 ,設置登錄功能就有效地避免了未經刷卡就使用機器或一個使用多臺機器現象的發生。用戶端登錄服務通訊程序 BOLABDC+編寫 ,它的作用是用它通過 LAN 與登錄服務器進行通訊 ,以完成對該機的上機登錄和下機注銷以及更改密碼的工作。使用者刷卡進入機房后 ,首先將申請該機使用權的用戶的 卡號 ,密碼輸入。登錄服務通訊程序將輸入的卡號 ,密碼連同本機地址一道通過 LAN 發送至登錄管理服務器 ,登無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 錄管理服務器收到登錄申請請求后通過 LAN 查詢刷卡機管理服務器。通過卡號查詢檢查該卡用戶是否已經刷卡。如果找到該卡的刷卡信息并且核對密碼無誤 ,則返回登錄成功信息到用戶終端機。用戶終端機收到返回的登錄成功信息后將控制權交本機 WIN98 引導系統。進入正常使用狀態。否則 ,如果在刷卡機管理服務器未查到該用戶的刷卡信息或核對密碼有誤 ,則返回一登錄失敗以及相應的錯誤信息到用戶終端機。用戶終端機收到返回錯誤信息后將在計算機屏 幕上顯示“無此卡號”或“密碼錯誤”的信息 ,讓使用者確定是否刷卡,或是輸入了錯誤的卡號或密碼而作出相應處理 ,直至登錄正確。同樣 ,使用者在機器使用完后要使用戶端登錄服務提供的注銷功能進行注銷 ,才能釋放該機的使用權 ,才能正常通過刷卡機管理子系統刷卡下機。在登錄管理服務器端運行的登錄軟件 ,不僅負責對用戶登錄和注銷的及時處理 ,還對登錄后的使用情況進行管理和監控。它記錄并保存用戶上機的起始時間和使用者機位變更情況。以備需要時查詢。它還負責對集體上機這類不需登錄的情況進行處理。登錄管理服務器端可以把某些機位設置為不檢測卡 號和登錄。因此集體上機的用戶在指定機位上無須登錄即可使用計算機。 1 4 2 數據后備系統 在整個門禁系統運行過程中 ,數據的可靠性和安全性是非常重要的 ,數據一但丟失或遭到破壞將會造成巨大損失。因此 ,從系統及數據的安全考慮。專門為各子系統軟件設計了一個自動備份模塊。該自動備份模塊確保各子系統不僅要將自己的數據保存一段時間 ,在每天關機前退出相應的管理程序時 ,各子系統還會啟動自己的自動備份模塊 ,自動將當日的所有數據通過 LAN 傳送到一個專門的數據后備服務器予以保存。這樣 ,即使發生意外 ,最多只能影響到當日數據。從而把損失降到最少。 1 4 3 UPS 系統 為保證因意外事故導致突然停電后 ,所有的登錄及刷卡信息不被丟失和使用者能刷卡下機。門禁系統專門配備了 50KW/UPS 不間斷電源 ,在電網停電時能為各子系統提供不少于 30 分鐘的供電。保證正在上機的使用者都能在這段時間無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 內能利用刷卡機子系統提供的“不注銷下機”功能正常刷卡下機。管理人員也能在所有使用者刷卡退出后按正常步驟關閉各子系統并在退出過程中自動備份當日的相關數據。 第二章 總體概要設計 2 1 系統需求分析 在此實例中,我們要開發一個實現局域網門禁系統功能的 客戶 /服務器( C/S)數據庫應用系統,下面是用戶對系統需求功能的陳述。 系統應用在一個各臺 PC 均安裝 WINDOWS NT/2000 操作系統的局域網內,且此網由一臺域控制器(服務器)和多臺域成員 PC 組成。此局域網的用戶為某學校的學生與教職員,分成 Teacher、 Master 和 Graduate 三組。他們每人均有一張機讀卡,對學生而言標識其學號,對教職員而言則標識其員工代號,在此我們系統稱為 ID。每個 ID 均由數字和英文字母組成,長度不大于 16 位?,F在要對該網進行管理,實現刷卡上機,自動計費。因此,該系統應有刷卡 和實時監控兩個模塊。在刷卡端能夠使用刷卡器讀取用戶卡上的 ID 并發送給服務器,然后顯示用戶信息及刷卡成功或失敗等反饋消息;在實時監控端,要求設立管理員,能夠實時顯示已刷卡用戶、進行自動計費以及輸出查詢統計報表。管理員可以維護上機用戶的數據,實現增加、刪除用戶及修改用戶信息。下表1-1 顯示了系統模塊劃分情況。 模塊名 所在機器 功能 刷卡模塊 專門用于刷卡的 PC 上 刷卡及顯示反饋信息 實時監控模塊 域控制器上(服務器) 實時顯示、自動計費、用戶管理和輸出查詢統計報表 表 1-1 局域網門禁系統模塊劃分情況 刷卡模塊主要完成刷卡功能,同時顯示從服務器上反饋回來的信息,包括:用戶 ID、用戶姓名、用戶班級、用戶刷卡登記時間、用戶刷卡注銷時間、當前無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 的上機余款、刷卡是否成功。為了防止用戶使用鍵盤關閉刷卡模塊,必須實現只能通過服務器端的實時監控模塊制刷卡模塊退出的功能。 實時監控模塊主要完成實時監控功能,隨時監聽從刷卡端發來的刷卡消息,叛斷是刷卡登錄還是刷卡注銷,隨后進行相應的數據處理,再向刷卡端返回反饋消息。 用戶管理主要分為用戶帳號的增加、刪除,用戶信息的修改。每一個欲上機的用戶必須首先在實時監控模塊端進行注冊, 然后在刷卡端刷卡,方可使用局域網內的任一臺機器。系統對用戶進行了分類,分成老師、研究生、本科生三類,分別有不同的計費標準。 統計查詢功能要求有登錄日志查詢、用戶信息查詢、組信息查詢和用戶上機情況統計。登錄日志查詢要求顯示某段日期內某個用戶的登錄記錄;用戶信息查詢要求顯示某用戶的具體信息如金額等;組信息查詢要求顯示某組的計費標準和成員列表;用戶上機情況統計要求統計用戶的總上機小時數以便核查。所有查詢統計結果均為只讀信息,不可以進行任何修改。在用戶管理和查詢統計前,均要求使用者輸入管理員帳號和密碼。 由于實時臨 近模塊端可以對用戶數據庫進行操作,考慮到安全性,必須在啟動的時候對使用者的身份進行認證,由使用者輸入管理員帳號和密碼,同數據庫中的記錄進行核對,核對正確后方可進入系統。這樣確保了只有管理員才可以運行實時監控模塊,也保證了用戶資料不受惡意修改。管理員進入實時監控模塊后,可以維護自己的密碼,以滿足自己的需要。 2 2 系統設計 在以上的系統功能分析中,我們確定了系統的模塊劃分和所需要具有的功能。然而用戶需求還不能直接指導我們進行開發,作為開發人員,我們必須根據用戶需求進行詳細的系統分析和設計,形成相應的數 據模型,包括數據庫的表結構、數據在各表及各模塊之間的傳遞關系、網絡通信所使用的自定義協議等。只有事先確定了這些,我們才能在開發時做到心中有數,游刃有余。 2 2 1 畫出數據流圖 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 刷 卡 消息處理 實時監控 P1 管理員 查詢統計 用戶維護 登錄日志D1 組計費標準 D2 用戶列表 D3 P4 P2 P3 數據流圖( Data Flow Diagram,簡稱 DFD 圖)是用一些規定的圖標和符號來描述數據在系統中的流動和處理的情況。數據流圖在表示系統時,采用自上而下逐步細化的結構化方法表示。頂層一級的功能在下一級中加以細化。 根據系統分析,我們可以畫出如圖 1-5 所示的頂層數據流圖。 圖 1-5 頂層數據流圖 上面的 頂層數據流圖經過細化后,得到圖 1-6 所示的監控模塊第二層數據流圖與圖 1-7 所示的刷卡模塊第二層數據流圖。 反 退 刷 饋 出 卡 消 命 消 息 令 息 刷卡消息量 驗證信息 身份驗證 處理結果 驗 身 證 份 調用信息 調用信息 調用信息 信 驗 查詢要求 統計要求 修改要求 息 證 查詢結果 統計結果 修改結果 圖 1-6 實時監控模塊第二層數據流 局域網門禁系統 刷卡消息 刷卡反饋消息 系統退出命令 刷卡模塊 實時監控模塊 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 顯示信息 刷卡消息 刷卡反饋消息 刷卡 ID 系統退出命令 圖 1-7 刷卡模塊第二層數據流 2 2 2 編寫數據項 根據數據項的含義,我們將數據項的定義分為以下幾個方面:數據項名、類型、長度、附加說明。主要數據項定義如表 5-14 至表 5-16 所示。 數據項名 類型 長度 說明 用戶 ID( id) 字符型 16 英文字符和數字的組合 類型( type) 字符型 4 固定為“刷卡”,為以后功能擴充使用 登錄時間( intime) 日期型 形式: 2005-3-4 12: 00 注銷時間( outtime) 日期型 形式同上 IP 字符型 15 以后功能擴充使用 表 1-14 數據項定義(登錄日志) 數據項名 類型 長度 說明 組類別( type) 字符型 16 英文字符和數字的組合(主碼),為Teacher|Master|Graduate 計費標準 (criteria) 浮點型 Single 類型 表 1-15 數據項定義(組計費標準) 數據項名 類型 長度 說明 用戶 ID(id) 字符型 16 用戶卡上的標識碼(主碼) 類型( type) 字符型 16 同組類別 姓名( name) 字符型 20 密碼( pwd) 字符 型 20 英文字符和數字的組合 金額( money) 浮點型 Single 類型 刷卡器 刷卡信息處理 P5 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 附加信息( info) 字符型 100 其他信息 表 1-16 數據項定義(用戶列表) 2 3 數據庫設計 1 數據庫概念設計 根據對數據流圖和數據字典的分析,我們可以確定該應用中的實體、屬性和實體之間的關系,并畫出如圖所示的用戶 E-R 圖。 1 1 n 1 1 n m n m 2數據庫邏輯結構設計 轉換后的關系模型如下所示 ,關系主碼用下劃線標出 . 登錄日志 Log( id, type, intime, outtime,ip ) 計費標準 Rule( type, criteria ) 用戶列表 Users( id, type, class, name, pwd, money, info ) 下面我們將利用 SQL 語言的 CREATE 語句建立上述關系 ,并定義好完整性約束 . CRAETE TABLE Log 登錄日志 ( id VARCHAR(16), type VARCHAR(16), intime DATETIME, outtime DATETIME, 組 屬于 用戶 對應 金額 對應 ID 對應 計費 標準 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: ip VARCHAR(15) ); CREATE TABLE Rule 計費標準 (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) ); 具體到建立數據庫 ,需要手工建立一個數據庫 LGSys.mdb. 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 第三章 分子模塊的設計 3 1 C/S 基本概念 什么是 C/S?如果你是一位 DELPHI 開發人員,那你一定要把這個概念弄清楚。因為實際上, DELPHI 本身就是一個客戶 /服務器開發環境。典型的客戶 /服務器結構總是包括一個前端程序,也叫客戶。其作用于是向遠程服務器上的程序發送數據,并接收來自服務器的數據并進行一定的處理,再根據情況進行反饋。即遠程服務器是服務的提供者,它可以從內部訪問服務器上的數據庫;而客戶總是向服務器請求服務 ,并不能直接訪問數據庫內的數據。在這種情況下,服務器盡可能詳盡地定義業務規則和實現盡可對強大的功能,因為它往往是更新比較緩慢的,而客戶往往比較“瘦小”,因為它往往是頻繁更新和分發的對象。 一般情況下,客戶 /服務器方案可以解決以下幾個問題: 允許將不同客戶進行分類,每類客戶只允許處理它負責的數據。 以一種更為有效的方式為決策者提供決策支持。 在 MIS 中加強對數據的集中控制,而在數據分析和使用的集中控制上只需要花費比較少的精力。 在服務器端可以對整個業務數據庫進行數據完整性驗證。 更靈活的業務劃分,客戶端和服務 器端業務功能分離,各司其職。 服務器向客戶端傳遞的數據是經過篩選的,可以減輕網絡負擔。 1 客戶 /服務器模型 客戶 /服務器模型通常分兩層模型和三層模型兩類。下面我們分別進行介紹。 兩層模型 兩層模型的應用十廣泛,基本上,它是由桌面數據庫應用系統演變而來的。 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 在此模型中,數據庫位于服務器端,客戶應用程序位于客戶機上,業務邏輯放在客戶或服務器上。如圖 1-5 所示。 三層模型 如圖 1-6 所示,客戶僅僅起顯示數據的作用,業務規則(處理邏輯)放在服務器上,而實際的數據庫則放在另外一臺機器上。由于三者處于不同的機器,開發人 員可以更靈活高效地劃分系統功能,優化數據訪問及維護數據的完整性。 圖 1-5 兩層客戶 /服務器模型 圖 1-6 三層客戶 /服務器模 2 客戶 /服務器模型與桌面數據庫應用系統的比較 客戶 /服務器器模型與桌面模型應用系統的比較:面向集合與面向記錄。 對客戶端而言,它面向的是記錄。對桌面數據庫而言,它直接面對數據集合;而在 C/S 模型中,客戶面對的只是數據集合的一個子集。通過 SQL 語句,客戶可以從服務器端獲取到符合一定要求 的一組記錄,而不需要把整個數據表格全部下載到本地再進行處理。而一個桌面數據庫要從網絡數據庫中獲取數據時,它得到的是整個數據表格。如果數據表格很大,那網絡傳輸所需要的時間是很數據 業務規則 客戶 1 客戶 2 客戶 3 數據庫 業務規則 客戶 1 客戶 2 客戶 3 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 長的。相比之下,通過 SQL,只需要通過網絡傳輸符合記錄的部分記錄集,這就大大減輕了網絡傳輸的負擔,也使系統的響應速度得到了很大的提高。 3 3 1 刷卡模塊 刷卡模塊主要有 2 個子模塊組成,如圖 1-7 所示。 圖 1-7 刷卡模塊系統結構圖 下面是各模塊的主要功能: 背景框架子模 塊 該子模塊是刷卡模塊的背景界面,通過覆蓋整個桌面起到模擬的效果。同時,它起到禁止用戶關閉系統的作用。通過在內部設定一個開關,使得用戶無法通過鍵盤和鼠標關閉刷卡應用程序,而只能通過接收來自服務器的命令才能夠自動關閉。 刷卡消息處理子模塊 該子模塊是刷卡模塊的邏輯核心部分。在這個子模塊中,能夠實現自動讀取用戶刷卡信息、向服務器傳送刷卡信息和接收并顯示服務器反饋信息的功能。通過這個模塊,用戶可以刷卡,實時看到自己刷卡的處理結果以及自己的姓名、班級、刷卡登錄時間、注銷時間和當前余額信息。如果用戶余額不足,該子模塊 將顯示拒絕用戶登錄的提示。 3 3 2 實時監控模塊 該模塊主要由四個子模塊組成,如圖 1-8 所示 背景框架子模塊 刷卡消息處理模塊 實時監控 子模塊 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 圖 1-8 實時監控子模塊系統結構圖 下面是各模塊的主要功能: 實時監控子模塊 該子模塊是實時監控模塊的主界面,也是系統的惟一進入和退出端。通過此子模塊,用戶可以調用查詢統計子模塊和用戶管理子模塊,同時,此子模塊還自動調用刷卡消息處理子模塊處理來自刷卡模塊的消息。由于只有管理員才可以訪問這四個子模塊,因此,在進入此模塊時必須進行身份驗證,確保只有管理員才能運行實時監控應用程序。 在此模塊中,管理員還可以實時看到當前刷卡上機的用戶列表及每個用戶的詳細信息。 刷卡消息處理子模塊 該子模塊是實時監控模塊實現門禁功能和自動計費功能的核心部分。這個子模塊由實時監控子模塊自動調用,以刷卡消息為處理對象,自動維護已刷卡用戶列表和域用戶列表,并向數據庫中寫入登錄住處和更新用戶金額。由于采用了多線程模型和臨界區域對象,可以處理同時到達的多個刷卡信息。 用戶管理子模塊 該子模塊是管理員維護域用戶列表和用戶信息的界面。管理員可以瀏覽并修改三個用戶組的成員列表,組計費標準和各用戶的詳細信息??梢詾楦鱾€用戶 組添加新用戶和刪除無用的用戶。由于用戶信息同時存在于域用戶(操作系統數據結構)和數據庫(系統自帶數據表單),如圖 1-9 所示,因此管理員要修改用戶清單必須使用此子模塊,而不能單獨使用操作系統自帶的管理工具來維護用戶列表。 刷卡消息處理子模塊 用戶管理子模塊 查詢統計子模塊 用戶管理子模塊 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 一一對應 同步更新 圖 1-9 用戶管理子模塊內部結構說明 查詢統計子模塊 該子模塊允許管理員就登錄、用戶信息和組成員列表進行查詢。允許對查詢設定關鍵字進行模糊查詢,對登錄記錄的查詢還允許設定查詢的 時間段。統計功能分為用戶上機清單和用戶上機總時兩部分,前者給出用戶每一天的上機時間,后者給出用戶總上機時間。統計前,可以設定統計的用戶 ID 進行模糊查詢,還可以設定統計的時間段。最后生成的數據集體傳遞給報表及輸出子模塊進行顯示和輸出。 報表及輸出子模塊 該子模塊顯示查詢統計模塊生成的數據集,并以 Microsoft Word XP 的形式自動輸出到固定的目錄下,供用戶瀏覽、修改和打印。 3 4 系統功能實現 通過上面對本局域網門禁系統的功能的簡單介紹,我們把此系統分割成兩個單獨的模塊,刷卡模塊和實時監控模 塊,兩者之間通過網絡進行通信。下面將介紹系統的詳細設計和具體的實現細節。 3 4 1 刷卡模塊的設計和實現 本模塊采用 MDI 結構,背景窗口為 MDI 框架窗口,刷卡窗口為 MDI 子窗口。系統啟動后背景窗口將以全屏顯示 ,重點突出刷卡窗口。 MDI 結構即多文檔結構,是從 Windows2.0 下的 Microsoft Excel 電子表格程序開始引入的,與它相對應的是 SDI(單文檔結構)。 一個 MDI 應用程序包含如下窗口: 框架窗口:框架窗口雖應用程序的主要窗口。此窗口一般含有標題欄、菜單條和系統菜單。右上角為最小化、最 大化和關閉按鈕。 數據庫 各用戶組計費 標準 Rule表單用戶列表 Users表單 Windows2000/NT 域全局組 域用戶列表 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 客戶窗口: MDI 程序的窗口管理器,是框架窗口呂間的空白區域。用來管理和顯示 MDI 子窗口。 MDI 子窗口:顯示在客戶窗口內的窗口,不能移出客戶區。 由于 Delphi6.0 會自動管理 MDI 窗口元素。因此對我們來說,只需要記住對框架窗口而言,必須把 FormStyle 屬性設置成 fsMDIForm;對子窗口而言,必須把 FormStyle 屬性設置成 fsMDIChild。如果子窗口是自動建立的,那么在程序啟動的時候會自動顯示在客戶窗口內。缺省地,每一個窗口都有是自動建立的,這可以在 Project 菜單的 Options 內的 Forms 卡內觀察。 Auto-create forms列表里的窗口 Form1v 和 Form2 都是在程序運行的時候自動建立的,如果不是MDI 子窗口,則處于隱藏狀態。如果把某個 Form 如 Form3 放進 Available forms列表下,那在調用這個窗口前必須手工建立它。 3 5 UDP 協議的基本知識 UDP 協議( User Datagram Protocol),即用戶數據報協議,廣泛使用在計算機間傳輸數據的網絡應用上,如網絡視頻會議系統、語音傳播等眾多的客戶 /服務器模式。 UDP 協議從問世至今 已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使在今天, UDP 協議仍然在一項非常衫和有效的網絡傳輸層協議。與我們所熟知的 TCP 協議一樣, UDP 協議位于 IP( Internet Protocol)協議的頂層。根據 OSI (Open System Interconnect )參考模型, UDP 和TCP 同屬于傳輸層協議。 UDP 協議的主要作用是將網絡數據流量壓縮成數據報的形式。一個典型的數據報是一個二進制數據的傳輸單位。每一個數據報的前 8 個字節用來包含報頭號信息,剩余字節則用來包含具體的傳輸數據 。 UDP 協議是一種無連接協議。它與 TCP 操作不同,計算機間進行通信時并不需要事先建立一個連接。而且,一個 UDP 的接受方可以同時作為一個發送方,相比 TCP 協議,它的應用方法也非常簡單。因此,在我們的系統中,使用 UDP協議作為我們進行網絡通信的網絡協議。 3 6 界面設計 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 刷卡消息處理子模塊的界面布局如圖 1-17 所示。 圖 1-17 刷卡消息處理子模塊界面布局 從圖中我們可以看到刷卡界面的基本布局。對此窗口,我們需要把FormStyle 屬性設置為 fsMDIChild,命名為 fmScanForm,Caption 為“ LGYSY-刷卡窗口”。 窗口內最上面是刷卡用的 Tedit 控件,命名為 editCardNo。下面是個人信息界面,分別顯示了用戶姓名、班級、登錄時間、注銷時間和當前上機余額,分別命名為 editName,editClass,editInTime,editOutTime,editMoney。由于只起顯示作用,因此這五個 Tedit 控件的 ReadOnly 屬性需要設置為 False。對于設置多個組件的同一屬性,有一個簡單的方法,即按住鍵盤 Shift 鍵分別點選各個 Tedit 組件,然后在 Object Inspector 里選擇 ReadOnly 項,設置為 True 即可。最下面是狀態欄,左邊的 Panel 用于顯示刷卡成功 /失敗的信息,右邊的 Panel 顯示當前日期。 最關鍵的 TNMUDP 控件我們命名為 nuScanCard,LocalPort 屬性設置為無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 2171, RemotePort 屬性設置為 2173, ReportLevel 屬性為 1。 3 7 代碼設計 首先,在窗口創建時需要將個人信息下的各個輸入框設置為只讀。其次,我們在此需要用到 UDP 的廣播功能,這樣只需要把 RemoteIP 設置為廣播地址,發送的數據就可以被局域網內的所有 機器所接收。這樣,我們就沒必要單獨設置服務器的 IP ,否則,當服務器 IP 改變的時候,還必須重新設置nuScanCard.RemoteHost 屬性值。對于廣播的詳細信息,請參閱其他專業文獻,在這里只需要指出,如果本機 IP 為 3 而子網掩碼為 ,則廣播地址即為 55。因此,在窗口創建時需要獲取廣播地址并賦給RemoteIP 屬性。如果獲取 IP 失敗,則應該退出系統。另外,由于下面的代碼用到了 WinSock.pas 單元,而這個單元并沒有缺省包含在引用列表中 ,所以必須手工在接口部分的引用列表中添加此單元。 3 8 ODBC 數據源 設計 所有的模塊及界面做好以后,最后就要進行數據庫連接了。打開開始設置控制面板管理工具 ODBC 數據源,選擇系統 DNS,如下圖所示: 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 選擇添加創建新數據源如下圖所示: 點擊完成。填寫數據源名稱網吧管理系統,選擇數據庫,如下圖所示: 點擊確定完成。 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 第四章 總結與展望 通過本次畢業設計,我們基本明確了一個局域網門禁系統從構思到設計再到實現的一般步驟以及需要注意的方面,這也是一個讓我 們自己學習知識和運用知識的大好機會。 我們最大的遺憾就是由于能力和設備的限制沒有能夠把一整套網絡管理系統做出來。還有部分功能還有待進一步加強。嚴格的來說,我們的系統還不是真正意義上的局域網門禁系統,而是一個單機測試版。原因就是缺乏很強專業技術水平以及沒有很高的技術含量。 由于在校內課程中沒有涉及到很深 Delphi 程序,以及我個人學習能力的限制,系統也沒有能夠實現很強的功能。 還有就是各組員間聯系不夠緊密,缺乏團隊合作精神。由于與指導教師缺乏默契的合作和密切的聯系,為后期的時間緊迫埋下了隱患。而作為組長,我負 有不可推卸的責任。 但是在各位領導和老師對我們的關心和指導之下,我們克服了困難,經過調試,系統已基本達到我們初步制定的目標,完成簡單登錄、查詢、管理等功能,并能順利通過單機環境測試。 我相信,在不久的將來,局域網門禁系統將提供更為簡單,同時也是更為精細和完善的實現手段。到那時,使用局域網門禁系統管理網絡,將更加簡單! 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 致 謝 在這幾個月的畢業設計過程中,學校領導和老師對我們表達了深切的關心和嚴格的督促;尤其是在課題設計的初始階段,專業老師對我進行了悉心的教導并提出了許多寶貴的意見 ;在系統開發過程中,指導教師在百忙之中抽出時間為我們的設計提供參考書目和專業指導;在課題研究過程中,其他老師也為我們提供了許多的寶貴意見和幫助;班主任老師更是一遍一遍不厭其煩地督促我們完成設計工作。 參 考 文 獻 1、江毅等 .DELPHI6.0 數據庫實例編程 . 北京:中國水利水電出版社, 2002 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 2、苗雪蘭,劉瑞新,王懷峰 .數據庫系統原理及應用教程 . 北京:機械工業出版社, 2001 3、袁培根 ,楊東艷 ,肖仁琴 ,何明儒 .開放式機房門禁系統研制與實踐 . 北京:實驗室研究與探索第 20卷 第 5期, 2001 4、賈成宇 ,李樹秋 ,王世剛 .智能門禁系統門控部分硬件設計 . 吉林:長春郵電學院學報第 18卷第 3期, 2000 5、賈成宇 ,李樹秋 ,王世剛 .智能門禁系統門控部分軟件設計 . 吉林:長春郵電學院學報第 19卷第 1期, 2001 附 錄 部分重要代碼詳解 unit main; interface uses Windows, Messages, SysUtils, Variants, 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: 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 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: 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( 卡編號 ,edit1.Text, 上機時間); 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);/小時位的計算 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);/ 分鐘位的計算 result:=floattostr(strtofloat(xiaoshi)+strtofloat(fenzhong);/總金額的計算 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(卡編號 ,edit1.Text,卡編號 )=Null) then begin DM.ADOTgl.Append; DM.ADOTgl.FieldByName(卡編號 ).AsString:=edit1.Text; DM.ADOTgl.FieldByName(上機時間 ).AsString:=datetimetostr(now(); DM.ADOTgl.FieldByName(操作員 ).AsString:=DBEyhm.Text; DM.ADOTgl.Post; DM.ADOTgltemp.Append; DM.ADOTgltemp.FieldByName(卡編號 ).AsString:=edit1.Text; DM.ADOTgltemp.FieldByName(上機時間 ).AsString:=datetimetostr(now(); DM.ADOTgltemp.Post; edit1.Text:=; DBText1.Caption:=inttostr(strtoint(DBtext1.Caption)-1); 無憂無慮畢設網 ():畢業設計源碼下載 畢業設計源碼下載: DM.ADOQuery1.Close; DM.ADOQuery1.Open; DM.ADOQuery2.Close; DM.ADOQuery2.Open; end else begin dm.ADOTgl.Locate( 卡編號 ; 上機時間 ,vararrayof(DM.ADOTgltemp.Lookup( 卡編號,edit1.Text,卡編號 ),DM.ADOTgltemp.Lookup(卡編號 ,edit1.Text,上機時間 ),); dm.ADOTgl.Edit; DM.ADOTgl.FieldByName(下機時間 ).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( 結算).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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025蘇州市市直機關事業單位房屋租賃合同
- 《神經系統疾病診療》課件
- 電話行銷約訪的N個技巧
- 年產1000萬套液壓閥金屬零件生產項目可行性研究報告寫作模板-申批備案
- 年產9萬套室內家居制品項目可行性研究報告-立項備案
- 《實踐驅動教學法》課件
- 《通關流程與單證制作》課件
- 2025如何合法提前解除房屋租賃合同
- 財產公證協議書封面
- 連鎖藥店協議書模板
- 教師招聘考試題庫《班主任與班級管理》必看知識點
- 顯示屏出廠合格證
- (中職)電子技術基礎與技能(電子信息類)教案
- 三晶變頻器說明書SAJ系列簡約
- 混凝土模板支撐工程專項施工方案(140頁)
- MATLAB_第6講_GUI界面設計
- 第三章煤層氣的儲層壓力及賦存狀態
- 高中英語北師大版(2019)必修第一冊 Unit3Lesson1SpringFestival
- 《公輸》(共44張PPT)
- 鴿巢原理例1、例2
- 飛剪機傳動裝置的設計機械CAD圖紙
評論
0/150
提交評論