版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
信息科學技術(shù)學院2005屆優(yōu)秀畢業(yè)論文匯編(六)機房收費管理系統(tǒng)的開發(fā)姓名:學號:2001年級:2001級專業(yè):計算機科學與技術(shù)指導教師:完成日期:2004年05月20日摘要隨著學校人數(shù)的不斷增加,學校機房手工管理的難度也不斷增大。手工計費不但效率低,而且容易出錯,也不利于定期的統(tǒng)計工作。為了減輕機房管理人員負擔以及提高工作效率,本文詳細介紹了一個機房收費管理系統(tǒng)的開發(fā)過程。這個系統(tǒng)是單機版的基于門禁技術(shù)的管理系統(tǒng)。它具有使用方便、安全可靠等特點。系統(tǒng)以VisualBasic和Access作為開發(fā)工具,采用Windows的圖形界面,支持條形碼閱讀器讀取帳戶信息和鍵盤輸入信息兩種方式進行上機登記,具有跟蹤顯示帳戶余額、下機帳戶結(jié)算、支持機房收入查詢以及數(shù)據(jù)備份和還原功能,實現(xiàn)了機房上機收費的高效率管理。系統(tǒng)由軟件計算費用,避免了人工計算造成的失誤,也減少了管理人員的工作負擔。這個系統(tǒng)還帶有條形碼編制和打印功能。通過條形碼編制,將所有學生帳戶與相應條形碼對應,基本杜絕了他人仿冒使用帳號的可能。關(guān)鍵詞:收費管理系統(tǒng);門禁技術(shù);條形碼
AbstractThemanualmanagementofthecampuscomputercenterismoredifficultwiththeincreasingofthenumberoftheundergraduate.Thetraditionalmanualaccountinghastheshortcomingoflowefficiency,highinaccuracyandgoingagainsttheregularstatisticwork.Amanagementsystemforcomputercenter’saccountingisdevelopedinthethesisforlighteningtheburdenofthemanagersandimprovingtheworkefficiency. Thismanagementsystemisbasedonthedoorlimittechniqueandusedforstandaloneterminal,whichhastheadvantagesofconvenience,securityandhighreliability,etc.DevelopedwithVisualBasicandAccess,thesystemsupportstheWindowsgraphicalinterfacesandmakestheefficientaccountingmanagementrealization.Withthesystem,userscanregisterfromthebarcodereaderaswellasthekeyboard,andmangercantraceanddealwiththeuser’saccountbalance,inquirythecenterincoming,backupandrestorethedata.Accountingbythesoftware,itwillavoidthemistakescreatedbythemanualcomputationandreducethemanager'sload.Thesystemsupportstheestablishmentandprintingofthebarcode,whichbindingtotheaccountandputsanendtothecounterfeit.Keywords:accountingmanagementsystem;doorlimittechnique;barcode
目錄1引言………………(1)2機房收費管理系統(tǒng)的現(xiàn)狀………(1)3背景知識………………………(2)3.1VisualBasic………………(2)3.2MicrosoftAccess……………………(2)3.2.1數(shù)據(jù)庫概念…………………(2)3.2.2為數(shù)據(jù)庫設置密碼…………(3)3.2.3事務概念……………………(3)3.3條形碼技術(shù)……………(4)3.3.1條形碼概念…………………(4)3.3.2條形碼碼制…………………(5)3.3.3EAN-13碼的編制……………(6)4系統(tǒng)設計與實現(xiàn)……………(7)4.1總體設計…………………(7)4.1.1系統(tǒng)模塊設計………………(7)4.1.2數(shù)據(jù)庫設計…………………(10)4.2系統(tǒng)實現(xiàn)………………(12)4.2.1主要界面設計………………(12)4.2.2功能模塊設計與實現(xiàn)………(14)5總結(jié)………………………(20)致謝…………(20)參考文獻……………………(21)附件…………(22)1、引言目前,在部分高校中,計算機機房的上機收費仍然采用傳統(tǒng)的人工計時方式,即學生憑有效證件前來上機,由機房管理人員手工登記開始時間和結(jié)束時間,然后按實際機時進行計算并收取相應費用。人工計時收費方式不但效率低,而且容易出錯,也不利于定期的統(tǒng)計工作。隨著高校學生人數(shù)的不斷增加,這些工作的難度和強度也在不斷加大,給機房管理部門帶來了很大壓力。機房收費管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)工作主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起具有資料一致性和完整性的數(shù)據(jù)庫,對于后者則要求具有界面美觀大方,應用程序功能完備,操作簡單方便等特點。本系統(tǒng)的開發(fā)是為了從一定程度上幫助提高機房收費管理的工作效率,以適應機房收費管理現(xiàn)代化的需要。本系統(tǒng)通過條形碼閱讀器讀取帳戶信息,進行上機登記、計算上機費用、跟蹤顯示帳戶余額、支持機房收入查詢,從而實現(xiàn)了機房上機收費的高效率管理。通過對該系統(tǒng)功能及應用各方面的綜合分析,本系統(tǒng)使用了VisualBasic6.0作為開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,首先在短時間內(nèi)建立系統(tǒng)應用原型,然后對初始系統(tǒng)進行不斷修正和改進,直到形成系統(tǒng)功能齊全、操作方便的可行系統(tǒng)。 機房收費管理系統(tǒng)的現(xiàn)狀目前計算機機房收費系統(tǒng)的具體實施方案有多種,主要可分為單機和聯(lián)網(wǎng)兩種方式,其中單機方式又可以分為純軟件方式、門禁方式和純硬件方式。純軟件方式的機房管理系統(tǒng),在服務器上建立包含上機者信息的中心數(shù)據(jù)庫,其中包含了上機者的所有信息,如姓名、學號、帳戶金額等;上機前先輸入帳戶名稱和密碼,核對無誤且?guī)艚痤~足夠時,方允許用戶上機,下機時對相應帳戶結(jié)帳退出。由純軟件控制的機房管理系統(tǒng)的優(yōu)點是成本低廉、構(gòu)造簡單,缺點則是安全性能不高。門禁方式的機房管理系統(tǒng),它的硬件部分是通過各種身份識別卡(如IC卡,ID卡,條碼卡等各種卡片)來驗證用戶身份,但是核心的控制技術(shù)是用軟件來實現(xiàn),主體與純軟件系統(tǒng)基本相同,重要特征是在機房入口處安裝一個或多個與主機相連的讀卡器。客戶上機時需先劃卡驗證身份,再輸入相匹配的用戶名和密碼,通過檢查便可使用機器,否則不能使用。下機時需在讀卡器上再次刷卡結(jié)帳。該類系統(tǒng)由于使用了身份識別卡進行身份驗證而杜絕了仿冒使用別人帳戶的可能,從而增加了系統(tǒng)安全性,但投資費用比軟件方式有所增加。純硬件方式的機房管理系統(tǒng),是在每臺客戶機上安裝一個IC卡讀取器,將上機人員的帳戶信息寫入IC卡中,驗證身份后方可使用機器,同時自動扣減IC卡中的費用,最后是拔卡下機。這種方案的系統(tǒng)穩(wěn)定性好,運用也比較簡單,但是投資較大。聯(lián)網(wǎng)方式則是在單機方式的基礎上增加了服務器對客戶機器進行管理的功能,通過網(wǎng)絡在服務器上能實現(xiàn)對客戶機的鎖定、查看進程、關(guān)機等一系列管理功能。鑒于學校機房的實際條件和現(xiàn)行的管理方式,本系統(tǒng)采用的是基于門禁技術(shù)的機房管理系統(tǒng),在身份識別方面采用的是條形碼識別技術(shù)。系統(tǒng)將帳戶的各個主要信息存放在主機上,并為每個帳戶編制唯一的條形碼。系統(tǒng)通過對條形碼的識別得到帳號,再從數(shù)據(jù)庫中讀取出相關(guān)的帳戶信息,并對該帳戶進行相關(guān)管理。背景知識VisualBasicVisualBasic是在Windows環(huán)境中廣泛使用的應用程序開發(fā)工具。VisualBasic最大的兩個特點是“可視化”和“事件驅(qū)動”?!翱梢暬奔础翱梢暬绦蛟O計”,是指開發(fā)圖形用戶界面(GUI)的一種方法,用這種方法,程序員不用編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的界面元素用鼠標拖放到屏幕的適當位置即可?!笆录?qū)動”是指Windows應用程序的運行是通過事件來驅(qū)動的,用戶或系統(tǒng)觸發(fā)了某一個事件,就執(zhí)行程序員在此事件中編寫的一段代碼。由于VisualBasic具有這兩個特性,使得其在開發(fā)MIS方面具有很大的易用性,因此采用它作為本系統(tǒng)的開發(fā)平臺。MicrosoftAccess數(shù)據(jù)庫概念數(shù)據(jù)庫即數(shù)據(jù)的倉庫,是存儲在計算機內(nèi)、有組織的、可共享的相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)是高度結(jié)構(gòu)化的,可以存儲大量的數(shù)據(jù),并且能夠方便地進行數(shù)據(jù)的查詢,另外數(shù)據(jù)庫還具有較好的保護數(shù)據(jù)安全和維護數(shù)據(jù)一致性的措施,能夠方便數(shù)據(jù)的共享。數(shù)據(jù)庫系統(tǒng)則是在操作系統(tǒng)支持下為數(shù)據(jù)庫的建立、使用和維護配置的軟件系統(tǒng)。MicrosoftAccess是微軟公司開發(fā)的第一個面向Windows平臺的關(guān)系型桌面數(shù)據(jù)庫管理系統(tǒng),它充分利用了Windows平臺的優(yōu)越性,如圖形界面和Windows的事件驅(qū)動機制等。它可以用來建立中、小型的數(shù)據(jù)庫應用系統(tǒng)。本系統(tǒng)中的數(shù)據(jù)庫就是用MicrosoftAccess來建立。為數(shù)據(jù)庫設置密碼 使用MicrosoftAccess軟件設置數(shù)據(jù)庫密碼很簡單,只要在關(guān)閉數(shù)據(jù)的情況下,用“獨占”方式打開數(shù)據(jù)庫,單擊“設置數(shù)據(jù)庫密碼”,鍵入自己的密碼即可。下一次打開數(shù)據(jù)庫時將檢查密碼。設置密碼的目的是為了防止他人非法對數(shù)據(jù)庫中的信息進行修改。在VisualBasic編程中,打開有密碼的數(shù)據(jù)庫需正確設置connect屬性“pwd”參數(shù),才能正常使用。在本系統(tǒng)中用以下代碼對數(shù)據(jù)庫進行連接:Data1.DatabaseName=App.Path+"\data.mdb"Data1.Connect=";pwd=841029"Data1.RecordSource="管理員"事務概念 數(shù)據(jù)庫系統(tǒng)在運行中需要執(zhí)行大量的數(shù)據(jù)更新操作,萬一發(fā)生故障,系統(tǒng)將通過事務管理手段來確定最近的正確狀態(tài)。從靜態(tài)角度看,事務(Transaction)是用戶為了完成一次任務所執(zhí)行的一系列操作,即一段應用程序。從動態(tài)角度看,它也代表這段程序在機器上的一次運行。事務是一個不可再分的邏輯工作單元。在事務執(zhí)行之前數(shù)據(jù)庫處于某個正確狀態(tài),事務執(zhí)行完后,數(shù)據(jù)庫處于另一個正確狀態(tài)。事務的開始與結(jié)束可以由用戶顯式控制。定義事務的語句有3條:BeginTransCommitTransRollback其中,BeginTrans表示事務的開始;CommitTrans表示事務的提交,即將事務中所有對數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,此時事務正常結(jié)束;Rollback表示事務的回滾,即在事務運行的過程中發(fā)生了某種故障,事務不能繼續(xù)運行,系統(tǒng)將事務中對數(shù)據(jù)庫的所有已完成的更新操作全部撤銷,再回滾到事務的開始狀態(tài)。事務是恢復和并發(fā)控制的基本單位。本系統(tǒng)中,事務管理操作的主要應用在客戶下機時對帳戶相關(guān)信息的修改上。上機情況表、學生表以及上機流水帳表三個數(shù)據(jù)表的修改缺一不可,任何一個處理故障都將會給系統(tǒng)管理帶來難以預料的錯誤。加入事務管理操作后,如果系統(tǒng)在處理數(shù)據(jù)庫數(shù)據(jù)時發(fā)生錯誤,都將會退回到事務處理之前的狀態(tài),并會彈出信息框?qū)τ脩暨M行提示。條形碼技術(shù)條形碼概念條形碼技術(shù)是在計算機應用和實踐中產(chǎn)生并發(fā)展起來的廣泛應用于商業(yè)、郵政、圖書管理、倉儲、工業(yè)生產(chǎn)過程控制、交通等領(lǐng)域的一種自動識別技術(shù),具有輸入速度快、準確度高、成本低、可靠性強等優(yōu)點,在當今的自動識別技術(shù)中占有重要的地位。條形碼是由一組規(guī)則排列的條、空以及對應的字符組成的標記,“條”指對光線反射率較低的部分,“空”指對光線反射率較高的部分,這些條和空組成的數(shù)據(jù)表達一定的信息,并能夠用特定的設備識讀,轉(zhuǎn)換成與計算機兼容的二進制和十進制信息。通常對于每一種物品,它的編碼是唯一的,對于普通的一維條碼來說,還要通過數(shù)據(jù)庫建立條碼與商品信息的對應關(guān)系,當條碼的數(shù)據(jù)傳到計算機上時,由計算機上的應用程序?qū)?shù)據(jù)進行操作和處理。因此,普通的一維條碼在使用過程中僅作為識別信息,它的意義是通過在計算機系統(tǒng)的數(shù)據(jù)庫中提取相應的信息而實現(xiàn)的。條形碼碼制條形碼的碼制即指條碼條和空的排列規(guī)則,常用的一維碼的碼制包括:EAN碼、39碼、128碼、93碼、25碼及Codabar(庫德巴碼)等。不同的碼制有它們各自的應用領(lǐng)域:EAN碼:是國際通用的符號體系,是一種長度固定、無含意的條碼,所表達的信息全部為數(shù)字,主要應用于商品標識。39碼和128碼:為目前國內(nèi)企業(yè)內(nèi)部自定義碼制,可以根據(jù)需要確定條碼的長度和信息,它編碼的信息可以是數(shù)字,也可以包含字母,主要應用于工業(yè)生產(chǎn)線領(lǐng)域、圖書管理等。93碼:是一種類似于39碼的條碼,它的密度較高,能夠替代39碼。25碼:只要應用于包裝、運輸以及國際航空系統(tǒng)的機票順序編號等。Codabar碼:應用于血庫、圖書館、包裹等的跟蹤管理。其中EAN碼具有以下特性:只能儲存數(shù)字??呻p向掃描處理,即條碼可由左至右或由右至左掃描。必須有一檢驗碼,以防誤讀資料的情形發(fā)生,其位于EAN碼中的最右邊處。具有起始符、中間符及終止符,以分隔條碼上的不同部分與擷取適當?shù)陌踩臻g來處理。條碼長度一定,較欠缺彈性,但經(jīng)由適當?shù)墓艿?,可使其通用於世界各國。依結(jié)構(gòu)的不同,可區(qū)分為:EAN-13碼:由13個數(shù)字組成,為EAN的標準編碼型式。EAN-8碼:由8個數(shù)字組成,屬EAN的簡易編碼型式。本系統(tǒng)中,由于學號的唯一性,采用其作為帳戶的名稱,而學號的數(shù)據(jù)位長度有10位和11位兩種。根據(jù)各種碼制的特性,采用的是最適合的EAN-13編碼方式。EAN-13碼的編制EAN標準碼共13位數(shù),包括一個前置碼,以及一個檢驗碼,因此可供使用的數(shù)據(jù)位數(shù)為11位。EAN-13的編碼由起始符,左側(cè)數(shù)據(jù)符(6位數(shù)字),中間符,右側(cè)數(shù)據(jù)符(5位數(shù)字),檢驗符(1位數(shù)字),終止符五個部分組成。其中前置碼不用符號表示,不包括在左側(cè)數(shù)據(jù)符內(nèi)。EAN-13的結(jié)構(gòu)如圖3-1所示:圖3-1EAN-13碼結(jié)構(gòu)EAN-13碼符號構(gòu)成如表3-1所示:表3-1EAN-13碼符號構(gòu)成左側(cè)空白區(qū)起始符左側(cè)數(shù)據(jù)符中間分隔符右側(cè)數(shù)據(jù)符檢驗符終止符右側(cè)空白區(qū)9個模塊3個模塊42個模塊5個模塊35個模塊7個模塊3個模塊9個模塊在EAN碼中一個模塊的寬度為。
EAN條形碼具有檢驗碼,從而具有了自檢功能,即當條形碼中信息段(左、右側(cè)數(shù)據(jù)符)各字符被閱讀器進行解碼閱讀時,閱讀器就將按照檢驗步驟進行同一種運算,并將運算結(jié)果與檢驗碼進行比較,當二者一致時,說明讀入的信息有效,否則無效。EAN-13檢驗碼的計算方法:(1).C1為前十二位碼中奇數(shù)位的數(shù)字求和;(2).C2為前十二位碼中偶數(shù)位的數(shù)字求和;(3).C2=C2*3(3).CC=(C1+C2)取個位數(shù);(4).C(檢驗碼)=10-CC(若值為10,則取0)。EAN-13碼的編碼規(guī)則如表3-2所示:表3-2EAN-13碼編碼規(guī)則數(shù)字符左側(cè)數(shù)據(jù)符右側(cè)數(shù)據(jù)符ABC0000110101001111110010100110010110011110011020010011001101111011003011110101000011000010401000110011101101110050110001011100110011106010111100001011010000701110110010001100010080110111000100110010009000101100101111110100起始符:101中間分隔符:01010終止符:101。A、B、C中的“0”和“1”分別表示具有一個模塊寬度的“空”和“條”。因為左側(cè)數(shù)據(jù)編碼方式有兩種,要按照前置碼的不同選其中一種。(如表3-3所示:)EAN標準碼的尺寸:寬:全部
條碼起始符/分隔符/終止符放大倍數(shù):0.8--2表3-3EAN-13碼編碼方式前置字符左側(cè)數(shù)據(jù)符編碼規(guī)則的選擇0AAAAAA1AABABB2AABBAB3AABBBA4ABAABB5ABBAAB6ABBBAA7ABABAB8ABABBA9ABBABA4、系統(tǒng)設計與實現(xiàn)4.1總體設計系統(tǒng)模塊設計根據(jù)系統(tǒng)功能要求可以將系統(tǒng)分解成系統(tǒng)管理、帳戶管理、條碼編制和信息查詢四大模塊(如圖4-1所示):其中各模塊應該實現(xiàn)的功能:⑴系統(tǒng)管理模塊(如圖4-2所示):功能簡介:○修改用戶密碼能夠?qū)崿F(xiàn)對當前登陸用戶的密碼修改。 ○添加刪除用戶是系統(tǒng)管理員具有的功能,方便管理員管理。 ○可根據(jù)不同的時間調(diào)整系統(tǒng)計費的費率。滿足不同時期管理要求。○使用前可設置將要管理的計算機數(shù)目,程序運行時,會根據(jù)實際需要調(diào)整數(shù)據(jù)庫中相應表的項目數(shù),提高系統(tǒng)運行效率?!饠?shù)據(jù)的備份與還原功能是管理信息系統(tǒng)中不可缺少的部分,當系統(tǒng)出現(xiàn)重大故障后,數(shù)據(jù)還原功能能夠用您以前備份的數(shù)據(jù)還原,減少故障造成的損失?!甬斢脩粲惺聲簳r離開時,為防止他人使用本系統(tǒng),可啟用自我鎖定功能,它將對系統(tǒng)起到保護作用,系統(tǒng)解鎖時只需輸入當前登陸的用戶名稱和密碼即可。⑵帳戶管理模塊(如圖4-3所示):功能簡介:○為每一個前來上機的學生根據(jù)學號建立對應帳戶,保存客戶的所有信息,是上機消費的前提。○用戶上機消費,根據(jù)其具體消費所用時間,計算實際消費金額,并在客戶的帳戶余額中進行扣除?!甬斂蛻舻膸粲囝~不足時,系統(tǒng)將限制其上機,客戶需在充值了足夠金額后才能繼續(xù)消費?!鹂蛻艨蓪ζ鋷粜畔⑦M行查詢,包括帳戶余額、消費次數(shù)、累計上機金額,最后上機時間等信息。 ⑶條形碼編制、打印模塊:由于每個學生的學號的唯一性,根據(jù)EAN-13的編碼規(guī)則對學號進行編碼,并用打印機打印出來。此條形碼即是客戶上機消費的憑證。客戶上機時,通過對條形碼的掃描可在帳戶中讀取相應信息進行登記。結(jié)帳時對條形碼再次掃描,依此修改相應帳戶信息,完成上機消費過程。⑷信息查詢模塊:管理人員可對機房運行情況進行查詢,如當天上機人次以及消費金額等等,并能夠?qū)⒉樵兘Y(jié)果打印出來。數(shù)據(jù)庫設計 根據(jù)系統(tǒng)功能設計的要求以及功能模塊的劃分,對于系統(tǒng)用戶信息數(shù)據(jù)庫,以下列出了其中各個表的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu): (1).名稱:管理員 如表4-1所示,管理員數(shù)據(jù)表包括name、pass兩個字段。此表中儲存的是系統(tǒng)的用戶信息,表中固定有admin用戶,是唯一的系統(tǒng)管理員用戶,可行使所有的系統(tǒng)管理功能。表4-1管理員表結(jié)構(gòu)字段名稱類型主鍵非空Name文本YesNoPass文本NoNo(2).名稱:上機流水帳如表4-2所示,上級流水帳表包括ID、學號、上機時間、結(jié)帳時間、結(jié)帳金額、Name六個字段。每當一個客戶結(jié)帳消費后,系統(tǒng)自動在上機流水帳表中加入一條記錄,記錄不僅包括客戶上機消費的完整信息,還包括了管理此次消費的用戶名稱。此表是上機情況統(tǒng)計的依據(jù)。表4-2上機流水帳表結(jié)構(gòu)字段名稱類型主鍵非空ID數(shù)字YesNo學號數(shù)字NoNo上機時間文本NoNo結(jié)帳時間文本NoNo結(jié)帳金額數(shù)字NoNoName文本NoNo(3).名稱:上機情況如表4-3所示,上級情況表包括機號、學號、開始時間、帳戶金額、是否計費五個字段。當客戶上機時,在表中查找第一個“是否計費”項的值非“消費中”的記錄,根據(jù)客戶上機信息進行修改,設置“是否計費”項的值為“消費中”;并在系統(tǒng)主界面中顯示出來??蛻艚Y(jié)帳時,對相應的上機記錄修改,并清除其在系統(tǒng)主界面的顯示。表4-3上機情況表結(jié)構(gòu)字段名稱類型主鍵非空機號數(shù)字YesNo學號數(shù)字NoNo開始時間文本NoNo帳戶金額數(shù)字NoNo是否計費文本NoNo (4).名稱:學生如表4-4所示,學生表包括學號、姓名、帳戶余額、上機次數(shù)、累計上機金額、最后上機時間六個字段。此表包含了學生帳戶的主要信息,在此表中為學生建立帳戶后,依據(jù)帳戶消費與充值的情況修改記錄,是帳戶查詢功能的依據(jù)。表4-4學生表結(jié)構(gòu)字段名稱類型主鍵非空學號數(shù)字YesNo姓名文本NoNo帳戶余額數(shù)字NoNo上機次數(shù)數(shù)字NoNo累計上機金額數(shù)字NoNo最后上機時間文本NoNo(5)名稱: 自定義如表4-5所示,上級流水帳表包括臺數(shù)、單價、單價new、單價改變四個字段。顧名思義,自定義表中包含著管理員對系統(tǒng)的自定義信息,包括計算機數(shù)目以及上機的費率。表4-5自定義表結(jié)構(gòu)字段名稱類型主鍵非空臺數(shù)數(shù)字NoNo單價文本NoNo單價new文本NoNo單價改變布爾NoNo 4.2系統(tǒng)實現(xiàn)主要界面設計
用戶登陸界面(如圖4-4所示):圖4-4用戶登陸界面當用戶名稱和密碼與管理員表中對應的數(shù)據(jù)項相符時,才能登入系統(tǒng),否則將清除輸入內(nèi)容,并提醒用戶重新輸入。在此窗體運用了以下代碼:.MoveLast.MoveFirstForI=1To.RecordCountCombo1.AddItem.Fields(0).MoveNextNextIEndWith通過此段代碼,用戶名稱欄將根據(jù)管理員表中數(shù)據(jù)項目自動添加,因此用戶可不必鍵入用戶名,直接在下拉列表中選擇,方便了用戶使用。
主界面(如圖4-5所示):圖4-5主界面主界面的菜單由菜單編輯器編輯,上機情況則用MSFlexGrid控件來顯示,能夠?qū)崟r的反映當前上機的具體情況。為了使用戶能夠方便快捷的使用本管理系統(tǒng),在工具欄還設計了上機、結(jié)帳、報表以及幫助四個常用功能的快捷按鈕。在狀態(tài)欄中,能夠顯示出當前的系統(tǒng)時間以及計費中的電腦數(shù)目。
用戶管理界面(如圖4-6所示):圖4-6用戶管理界面通過此界面可以進行添加、刪除用戶的操作,這是系統(tǒng)管理員才能執(zhí)行的功能。為實現(xiàn)系統(tǒng)的簡單與易用,本系統(tǒng)只設置了一個系統(tǒng)管理員用戶“admin”,其余都是一般用戶。系統(tǒng)管理員用戶不能被刪除。
帳戶管理界面(如圖4-7所示):4-7帳戶管理界面 此界面是對帳戶信息查詢和修改的主界面,界面中間顯示的是所有帳戶的詳細信息,下面的四個功能按鈕分別對應四個與帳戶相關(guān)的操作。功能模塊設計與實現(xiàn)○系統(tǒng)管理模塊:系統(tǒng)管理模塊主要包含以下幾個功能:修改密碼、添加刪除用戶、設置計算機數(shù)目、修改費率、數(shù)據(jù)備份與還原以及系統(tǒng)自我鎖定。它們的設計思路與實現(xiàn)方法分別如下:修改密碼只針對當前登陸的用戶有效,也就是只能修改登陸用戶本身的密碼。而不能對系統(tǒng)其他用戶進行修改。若管理員用戶需要修改其他用戶密碼,則可通過刪除相應用戶,再用新密碼將此用戶添加實現(xiàn)。修改密碼窗體如圖4-8所示:圖4-8修改密碼窗體添加刪除用戶、設置計算機數(shù)目以及修改費率都是在管理員權(quán)限下的管理功能,其他用戶單擊此類菜單時,會彈出提示框(如圖4-9所示)提醒用戶。為了方便機房管理人員的管理,本系統(tǒng)為計算機數(shù)目以及費率專門建了一張表,當管理員修改費率后,并不是直接生效,而是將其寫入表中,并設置單價改變的標志位為真,當窗體重新加載時,根據(jù)標志位的值,從表中讀出用戶設置的費率。圖4-9權(quán)限提示框數(shù)據(jù)備份與還原能將當前的數(shù)據(jù)庫備份至您指定位置,也能根據(jù)您以前備份的數(shù)據(jù)進行還原。因為正在打開的文件不能夠用FileCopy函數(shù)復制,這段程序代碼中應用到了數(shù)據(jù)庫的關(guān)閉方法,在關(guān)閉數(shù)據(jù)庫后進行數(shù)據(jù)庫的備份和還原。由于還原后當前的數(shù)據(jù)庫內(nèi)容將被清除,因此為避免出現(xiàn)不可意料的錯誤,還原前提示用戶將當前數(shù)據(jù)庫進行備份。如在此項過程中遇到問題,可參照幫助系統(tǒng)中的幫助文檔解決。(如圖4-10所示):圖4-10數(shù)據(jù)還原提示框系統(tǒng)自我鎖定:當管理員有事離開時,并不方便將系統(tǒng)關(guān)閉,為了防止此時他人對系統(tǒng)進行操作,特設置此功能將系統(tǒng)鎖定,只有在輸入正確當前用戶名和密碼后才能解鎖,恢復對系統(tǒng)的控制。(如圖4-11所示):圖4-11系統(tǒng)鎖定窗體○帳戶管理模塊帳戶管理模塊包含創(chuàng)建帳戶、帳戶消費、帳戶充值以及帳戶查詢功能。 創(chuàng)建帳戶時,由于學號的唯一性,本系統(tǒng)采用學號作為帳戶名稱,只需填寫學生姓名并在帳戶中充值一定的金額即可完成帳戶創(chuàng)建。帳戶創(chuàng)建的窗體(如圖4-12所示):圖4-12帳戶創(chuàng)建窗體 帳戶消費包括上機和結(jié)帳兩個過程,是收費系統(tǒng)中最基本的功能:學生通過條形碼掃描上機時,系統(tǒng)會提示該帳戶現(xiàn)存的金額。在上機過程中,系統(tǒng)會定時對所有上機情況進行掃描,計算上機帳戶的余額與上機所需費用的差額,當其金額小于系統(tǒng)設置的計費費率時,系統(tǒng)會對管理人員進行提示(如圖4-13所示):圖4-13帳戶追蹤提示管理員即可據(jù)此提醒該帳戶對應的上機者及時充值,實現(xiàn)了對帳戶的實時追蹤??蛻艚Y(jié)帳時,使用DateDiff函數(shù)(這個函數(shù)的作用是對兩個指定的日期按日期形式求相差的間隔)計算出客戶上機消費的具體時間mm,并用以下代碼計算消費的金額:PublicFunctionJF(mm)AsSingleJF=(mm\30)*Dj/2IfmmMod30>10ThenJF=JF+Dj/2EndIfIfJF=0ThenJF=Dj/2EndFunction系統(tǒng)根據(jù)計算結(jié)果在學生表和上機情況表中對相應記錄進行修改,并在上機流水帳表中添加上機記錄。由于是對多張表中數(shù)據(jù)同時進行修改,因此在這段程序代碼中,要以事務管理方式對數(shù)據(jù)庫進行操作,否則當系統(tǒng)處理過程中遇到錯誤時,極有可能造成數(shù)據(jù)庫各個表中相應的數(shù)據(jù)不一致,最終導致系統(tǒng)不能正常運行。系統(tǒng)運行過程中,每個時刻的上機情況都會在狀態(tài)欄進行顯示,當顯示的上機數(shù)目不為零時,用戶將不能對系統(tǒng)進行正常的關(guān)閉,這避免了由于系統(tǒng)的關(guān)閉而使客戶的上機消費時間的計算出現(xiàn)錯誤。 當客戶帳戶金額不足時,需要對帳戶金額進行充值。帳戶成功充值后會即時提示帳戶現(xiàn)有的金額。(如圖4-14所示):圖4-14帳戶成功充值提示框本系統(tǒng)中所有的帳戶信息用一個MSFlexGrid控件在窗體中顯示,初始化界面時,窗體中的帳戶按照學號的索引排列。在使用帳戶查詢功能時,如查詢到相應的帳戶記錄,則將此項記錄放到表格的第一行顯示(如圖4-15所示),簡化了程序代碼的編寫。圖4-15帳戶查詢結(jié)果顯示○ 條形碼編制和打印模塊 條形碼編制和打印模塊是本系統(tǒng)中一個比較復雜的模塊,本系統(tǒng)采用了EAN-13的編碼方式,由于左側(cè)數(shù)據(jù)符有奇排列和偶排列兩種方式,右側(cè)數(shù)據(jù)符另有一種排列方式。為了簡化編碼,本系統(tǒng)采用0作為前置碼,從而左側(cè)數(shù)據(jù)符統(tǒng)一采用奇排列,在程序中建立了一個一維數(shù)組用于存儲每個數(shù)字的編碼方式對應的條與空的模塊數(shù)。通過以下代碼計算檢驗碼:Check=Array1(1)+Array1(3)+Array1(5)+Array1(7)+Array1(9)+Array1(11)Check=Check*3Check1=Array1(2)+Array1(4)+Array1(6)+Array1(8)+Array1(10)+Array1(0)Check=Check+Check1Check=CheckMod10IfCheck=0ThenArray1(12)=0ElseArray1(12)=10-CheckEndIf在計算好帳戶的檢驗碼后,為帳戶的每位數(shù)字調(diào)用自定義的打印子程序,從而將整個帳戶的條形碼打印出來。本模塊中是使用打印機對象打印條形碼。在代碼中用到了printer的ScaleMode(打印機的度量單位)、CurrentX(打印機當前水平坐標)、CurrentY(打印機當前垂直坐標)三個屬性。打印結(jié)果如圖4-16所示:圖4-16打印的條形碼○信息查詢模塊 信息查詢模塊提供了對當天以及當月上機情況和計費情況的總計查詢,對當天消費情況的查詢代碼如下:ForI=1To.RecordCountIfFormat$(.Fields(2),"ddddd")=DateThenMoney=Val(.Fields(4))+Moneytimes=times+1EndIf.MoveNextNextIlinestr="本日上機人次:"&Space(4)×linestr1="本日消費金額:"&Space(4)&Money&"元"對當月消費情況的查詢與此類似。對查詢結(jié)果的打印采用的是打印機對象,直接將查詢得到的兩個結(jié)果字符串傳輸?shù)酱蛴C,設置相關(guān)位置參數(shù)后進行打印。(如圖4-17所示):圖4-17信息查詢模塊界面5、總結(jié) 經(jīng)過一個學期的認真開發(fā)和調(diào)試,終于形成了如今比較完整的機房收費管理系統(tǒng)。本系統(tǒng)較好的實現(xiàn)了本次設計任務的最高目標。經(jīng)過一段時間的綜合測試和維護,完善了系統(tǒng)的功能,系統(tǒng)性能也得到了很大提高。本系統(tǒng)足夠勝任現(xiàn)有條件下的學校機房管理,將為機房管理員減輕很多的任務和負擔。在本次機房收費管理系統(tǒng)的開發(fā)過程中,由于掌握知識的不足以及系統(tǒng)開發(fā)經(jīng)驗的缺乏,使得系統(tǒng)不可避免地產(chǎn)生了許多的錯誤。通過查閱相關(guān)書籍資料并在老師的指導下才把錯誤一一糾正。在系統(tǒng)開發(fā)與調(diào)試過程中,不僅得到了寶貴的系統(tǒng)開發(fā)經(jīng)驗,也鍛煉了自己獨力查找文獻、解決問題的能力。由于時間的限制以及水平的不足,現(xiàn)有系統(tǒng)仍然存在著漏洞和不足,有待進一步的發(fā)現(xiàn)和解決,也希望老師同學不吝批評和指正。 致謝 本次畢業(yè)設計中,吳星老師給予了我很多的指導和關(guān)心,他嚴謹?shù)闹螌W態(tài)度以及深厚的理論知識給了我很大的幫助和啟發(fā),讓我能順利完成本次系統(tǒng)的開發(fā)。在此我對他表示最誠摯的感謝,也同樣謝謝那些在本系統(tǒng)開發(fā)過程中給了我?guī)椭耐瑢W們。
參考文獻黃明,梁旭.VisualBasic6.0信息系統(tǒng)設計與開發(fā)實例.北京:機械工業(yè)出版社,2004.龔沛曾,陸慰民,楊志強.VisualBasic程序設計教程(6.0版).北京:高等教育出版社,2000.求是科技,孫越.VisualBasic數(shù)據(jù)庫開發(fā)自學教程.北京:人民郵電出版社,2002.譚小丹,劉國慶,李光明.VisualBasic6.0數(shù)據(jù)庫編程思想與實踐.北京:冶金出版社,2002.劉恩濤,趙耀峰.VisualBasic6.0編程技巧與實例分析.北京:中國水力水電出版社,1999.李玉東,李罡,李雷.VisualBasic6.0中文版控件大全.北京:電子工業(yè)出版社,2000.東方人華,王晟,凌宇欣.VisualBasic6.0中文版范例入門與提高.北京:清華大學出版社,2004.盧毅.VisualBasic6數(shù)據(jù)庫設計實例導航.北京:科學出版社,2001.楊昕紅.數(shù)據(jù)庫基礎-Access北京:電子工業(yè)出版社.2004.鄭小玲,王學軍.Access項目案例導航.北京:科學出版社,2003.薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2000.王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理.北京:清華大學出版社,2001.戴宏民.條形碼技術(shù)及應用.重慶:重慶人民大學出版社,1991.黃以群,董湘陵.條形碼技術(shù).北京:國防工業(yè)出版社,1991.黃志建.條形碼技術(shù)及應用.北京:機械工業(yè)出版社,1992.李金哲.條形碼自動識別技術(shù).北京:國防工業(yè)出版社,1991.
附件:Frmmain(主界面窗體):OptionExplicitPublicrowsAsIntegerPublicuseridAsStringPublicuserID1AsStringPublicuserfindAsStringDimIAsIntegerDimjAsIntegerPublicuserrmbAsSinglePublicDjAsSingleDimmmAsIntegerPublicpcCountAsIntegerPublicnAsIntegerPublicFunctionJF(mm)AsSingle'計費函數(shù)DimXAsSingleX=mm\30JF=(mm\30)*Dj/2IfmmMod30>10ThenJF=JF+Dj/2EndIfIfJF=0ThenJF=Dj/2EndFunctionPublicSubShowStatus()'在狀態(tài)欄中顯示正在計費的電腦數(shù)目StatusBar1.Panels(2).Text=pcCount&"臺電腦計費中"EndSubPublicSubClearRow(nAsInteger)'客戶結(jié)帳清除相應記錄MSFlexGrid1.Row=nMSFlexGrid1.Col=1MSFlexGrid1.Text=""MSFlexGrid1.Col=2MSFlexGrid1.Text=""MSFlexGrid1.Col=3MSFlexGrid1.Text=""MSFlexGrid1.Col=4MSFlexGrid1.Text=""EndSubPublicSubShowRow(nAsInteger)'客戶上機顯示相應記錄MSFlexGrid1.Row=nMSFlexGrid1.Col=1MSFlexGrid1.Text=Data3.Recordset.Fields(1)MSFlexGrid1.Col=2MSFlexGrid1.Text=Data3.Recordset.Fields(2)MSFlexGrid1.Col=3MSFlexGrid1.Text=Data3.Recordset.Fields(3)MSFlexGrid1.Col=4MSFlexGrid1.Text=Data3.Recordset.Fields(4)EndSubPublicSubDisplay()'顯示表格過程WithMSFlexGrid1.Clear.Row=0.Col=0:.Text="機號".Col=1:.Text="學號".Col=2:.Text="開始時間".Col=3:.Text="帳戶金額(元)".Col=4:.Text="是否計費"st'顯示表格內(nèi)容DimIAsIntegerDimjAsInteger.Row=0.Row=.Row+1ForI=0To4.Col=IIfData3.Recordset.Fields(I)<>0Then.Text=Data3.Recordset.Fields(I)EndIfNextLoopEndWithEndSubPublicSubtiaozhen(mAsInteger)'根據(jù)電腦數(shù)目調(diào)整表格Ifm<.RecordCountThenDoUntilm=.RecordCount.MoveLast.Delete.MoveNext.MoveLastLoopElseDoUntilm=.RecordCount.AddNew.Fields(0)=.RecordCount+1.Fields(1)=0.Fields(2)=0.Fields(3)=0.Fields(4)=0.UpdateLoopEndIfEndWithEndSubPrivateSubabout_Click()frmAbout.ShowvbModalEndSubPrivateSubcdhelp1_Click()'打開幫助文檔I=Shell("hh.exe"+""+App.Path+"\help.chm",1)EndSubPrivateSubcdjf_Click()OnErrorGoTojferruserid=Trim(InputBox$("請輸入學號","上機"))Ifuserid<>""Thenuserfind="學號="&userid&""ElseExitSubEndIf'查找數(shù)據(jù)庫看是否有學生記錄Data4.Recordset.FindFirstuserfindIfData4.Recordset.NoMatchThenMsgBox"該學生尚未登記,請?zhí)砑?"ExitSubElseIfData4.Recordset.Fields(0)=useridThenuserrmb=Data4.Recordset.Fields("帳戶余額")Ifuserrmb<0ThenMsgBox"該帳號已無金額!",vbCriticalExitSubEndIfExitForElseEndIfNextIEndIf'查看該帳號是否使用Data3.Recordset.FindFirstuserfindIfNotData3.Recordset.NoMatchThenMsgBox"此帳號正在使用!"ExitSubElse'更新上機情況.MoveLast.MoveFirstForI=1To.RecordCountIf.Fields(1)=0Thenn=.Fields(0).Edit.Fields(1)=userid.Fields(2)=Now.Fields(3)=userrmb.Fields(4)="計費中".UpdatepcCount=pcCount+1'調(diào)用過程顯示窗體'n=n+1ShowRow(n)'DisplayShowStatusMsgBox"該帳戶現(xiàn)有金額為:"&userrmb&"元"ExitForElse.MoveNextEndIfNextIExitSubEndWithEndIfjferr:riptionEndSubPrivateSubcdjf2_Click()'客戶結(jié)帳OnErrorGoTojf2errDimffAsIntegerDimrmbAsSingleuserid=Trim(InputBox$("請輸入學號","結(jié)帳"))Ifuserid<>""Thenuserfind="學號="&userid&""ElseExitSubEndIf'查找數(shù)據(jù)庫看是否有學生記錄Data4.Recordset.FindFirstuserfindIfData4.Recordset.NoMatchThenMsgBox"該學生尚未登記!"ExitSubEndIf'查看此客戶是否上機Data3.Recordset.FindFirstuserfindet.NoMatchThenMsgBox"該帳號尚未使用!",vbCriticalExitSubElseForI=1ToData3.Recordset.RecordCount IfData3.Recordset.Fields(1)=useridThen '更新上機記錄'計算費用ff=DateDiff("n",Data3.Recordset.Fields(2),Now)rmb=JF(ff)‘定義數(shù)據(jù)事務開始BeginTrans'在上機流水帳中添加一條記錄Data2.Recordset.Fields(0)=Data2.Recordset.RecordCount+1Data2.Recordset.Fields(1)=useridData2.Recordset.Fields(2)=Data3.Recordset.Fields(2)Data2.Recordset.Fields(3)=NowData2.Recordset.Fields(4)=rmbData2.Recordset.Update'在學生表中修改記錄IfData4.Recordset.Fields(0)=useridThenData4.Recordset.Fields(2)=Data4.Recordset.Fields(2)-rmbData4.Recordset.Fields(3)=Data4.Recordset.Fields(3)+1Data4.Recordset.Fields(4)=Data4.Recordset.Fields(4)+rmbData4.Recordset.Fields(5)=NowExitForElseEndIfNextj'在上機情況表中修改相應記錄IfData3.Recordset.Fields(1)=useridThenn=Data3.Recordset.Fields(0)Data3.Recordset.Fields(1)=0Data3.Recordset.Fields(2)=0Data3.Recordset.Fields(3)=0Data3.Recordset.Fields(4)=0ExitForElseEndIfNextj'上機人數(shù)改變pcCount=pcCount-1CommitTransExitForElseEndIfNextIEndIf'清除表格中對應行的顯示ClearRow(n)ShowStatusMsgBox"該帳號本次上機用時"&ff&"分鐘"&Space(2)&"消費"&rmb&"元"&"帳戶余額"&Data4.Recordset.Fields(2)&"元"ExitSubjf2err:RollbackEndSubPrivateSubcdkh_Click()EndSubPrivateSubcdtj1_Click()EndSubPrivateSubcdtj2_Click()'備份數(shù)據(jù)OnErrorResumeNextComDlg.CancelError=TrueComDlg.FileName=Format(Date,"yyyymmdd")&".bak"ComDlg.Filter="備份文件|*.bak"ComDlg.ShowSaveIfErr=mscomdlg.cdlCancelThenExitSubIfDir(ComDlg.FileName)<>""ThenIfMsgBox("當前日期已經(jīng)備份了,確實要再次備份嗎?",vbYesNo+vbQuestion)=vbNoThenExitSubEndIf'關(guān)閉數(shù)據(jù)庫.CloseData6.Database.CloseMsgBox"備份成功!",vbInformationForm_LoadExitSubMsgBox"發(fā)現(xiàn)錯誤備份失??!",vbCritical,"錯誤"EndSubPrivateSubcdtj3_Click()'數(shù)據(jù)還原OnErrorResumeNextComDlg.CancelError=TrueComDlg.FileName=""ComDlg.Filter="備份文件|*.bak"ComDlg.ShowOpenIfErr=mscomdlg.cdlCancelThenExitSubIfMsgBox("請您確認“"&ComDlg.FileName&"”是您以前備份的文件,否則可能出現(xiàn)不可想像的錯誤。如果發(fā)生了錯誤,請你參見幫助的解決辦法,建議您先對當前數(shù)據(jù)庫進行備份。還原后,在您備份以后的數(shù)據(jù)都將丟失。您真的要還原這個數(shù)據(jù)庫嗎?",_vbYesNo+vbQuestion+vbDefaultButton2,"問題")=vbNoThenExitSub'關(guān)閉所有數(shù)據(jù)庫Data6.Database.CloseFileCopyComDlg.FileName,App.Path+"\data.mdb"MsgBox"還原成功!將使用這個數(shù)據(jù)庫。如果發(fā)生了錯誤,請您參見幫助的解決辦法。",vbInformation,"注意"Me.Visible=FalseForm_LoadMe.Visible=TrueExitSubForm_LoadMsgBox"還原數(shù)據(jù)庫失?。?,vbCriticalEndSubPrivateSubForm_Load()Data1.DatabaseName=App.Path+"\data.mdb"Data1.Connect=";pwd=841029"Data1.RecordSource="管理員"Data2.DatabaseName=App.Path+"\data.mdb"Data2.Connect=";pwd=841029"Data2.RecordSource="上機流水帳"Data3.DatabaseName=App.Path+"\data.mdb"Data3.Connect=";pwd=841029"Data3.RecordSource="上機情況"Data4.DatabaseName=App.Path+"\data.mdb"Data4.Connect=";pwd=841029"Data4.RecordSource="學生"Data6.DatabaseName=App.Path+"\data.mdb"Data6.Connect=";pwd=841029"Data6.RecordSource="自定義"Data6.RefreshApp.HelpFile=App.Path+"\help.chm"frmmain.HelpContextID=16MSFlexGrid1.ScrollBars=2'設置各列寬度MSFlexGrid1.ColWidth(0)=1500MSFlexGrid1.ColWidth(1)=1800MSFlexGrid1.ColWidth(2)=2200MSFlexGrid1.ColWidth(3)=1800MSFlexGrid1.ColWidth(4)=1800MSFlexGrid1.Cols=5'初始化上機人數(shù)pcCount=0IfData3.Recordset.Fields(4)Like"計費中"ThenpcCount=pcCount+1EndIfNextI'讀取用戶自定義費率IfData6.Recordset.Fields(3)=TrueThenData6.Recordset.Fields(1)=Data6.Recordset.Fields(2)Data6.Recordset.Fields(3)=FalseEndIfDj=Val(Data6.Recordset.Fields(1))DimmAsIntegerm=Data6.Recordset.Fields(0)Data3.Recordset.MoveFirstIfm<>Data3.Recordset.RecordCountThentiaozhen(m)EndIfMSFlexGrid1.rows=m+1'顯示數(shù)據(jù)表格Display'顯示狀態(tài)欄ShowStatusEndSubPrivateSubForm_Unload(CancelAsInteger)IfpcCount<>0ThenMsgBox"當前還有電腦計費中,請在全部結(jié)帳后退出!",vbCriticalCancel=TrueExitSubEndIfEndEndSubPrivateSubsys01_Click()'顯示修改用戶密碼窗體frmedit.ShowvbModalEndSubPrivateSubsys02_Click()IffrmLogin.username="admin"ThenDimaAsIntegerDimIAsString'調(diào)整費率OnErrorResumeNextI=Val(Trim(InputBox$("請輸入新的計費標準:單位:元/小時","調(diào)整費率")))IfI=""ThenExitSubElseIfI>0ThenData6.Recordset.Fields(2)=IData6.Recordset.Fields(3)=TrueMsgBox"設置成功,新標準將在下次啟動時生效!"ExitSubEndIfEndIfElseMsgBox"您沒有此權(quán)限"ExitSubEndIfEndSubPrivateSubsys021_Click()IffrmLogin.username="admin"ThenDimaAsIntegerDimIAsString'調(diào)整計算機數(shù)目OnErrorResumeNextI=Val(Trim(InputBox$("請輸入電腦數(shù)目:","設置電腦數(shù)目")))IfI=""ThenExitSubElseIfI>0ThenData6.Recordset.Fields(0)=IMsgBox"設置成功,將在下次啟動時生效!"ExitSubEndIfEndIfElseMsgBox"您沒有此權(quán)限"ExitSubEndIfEndSubPrivateSubsys11_Click()'當前登陸用戶為管理員時,打開添加刪除用戶界面IffrmLogin.username="admin"ThenElseMsgBox"您沒有此權(quán)限"EndIfEndSubPrivateSubsys21_Click()frmlog.ShowvbModalEndSubPrivateSubsys22_Click()'當上機人數(shù)不為0時,不能關(guān)閉程序IfpcCount<>0ThenMsgBox"當前還有電腦計費中,請在全部結(jié)帳后退出!",vbCriticalExitSubEndIfEndEndSubPrivateSubTimer2_Timer()'定時檢測上機帳戶余額StaticsAsIntegerDimffAsIntegerDimRMB1AsSingles=s+1'設置掃描間隔Ifs=10ThenDimTishiAsString.MoveLast.MoveFirstForI=1To.RecordCountIf.Fields(4)Like"計費中"Thenff=DateDiff("n",.Fields(2),Now)RMB1=JF(ff)RMB1=.Fields(3)-RMB1IfRMB1<DjThenTishi=Tishi&Space(2)&.Fields(0)&""EndIfEndIf.MoveNextNextIs=0'根據(jù)掃描結(jié)果提示帳戶充值IfTishi<>""ThenMsgBox"第"&Tishi&"機費用已不多,請?zhí)嵝哑浼皶r充值"EndWithEndIfEndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)OnErrorResumeNextCase1'應做:添加'上機'按鈕代碼。cdjf_ClickCase2'應做:添加'結(jié)帳'按鈕代碼。cdjf2_ClickCase4'應做:添加'報表'按鈕代碼。cdtj1_ClickCase6'應做:添加'幫助'按鈕代碼。cdhelp1_ClickEndSelectEndSubFrmaddadmin(添加用戶窗體):PrivateSubCommand1_Click()IfCommand3.Enabled=FalseThen'添加用戶OnErrorGoToadderr'檢查輸入數(shù)據(jù)是否正確IfTrim(Text1.Text)=""ThenMsgBox"用戶名不能為空!",vbCriticalExitSubEndIfIfText2.Text=""ThenMsgBox"密碼不能為空"ExitSubEndIfIfText2.Text<>Text3.TextThenMsgBox"前后密碼設置不一致,請重新輸入!",vbCriticalText3.Text=""Text2.Text=""ExitSubEndIf.MoveLast.MoveFirst‘查看數(shù)據(jù)庫中是否已有記錄ForI=1To.RecordCountIf.Fields("name")=Text1.TextThenMsgBox"用戶名已經(jīng)存在,請你再換一個!",vbExclamation.MoveFirstText1.Text=""ExitSub.MoveNextEndIfNextI'在數(shù)據(jù)庫中添加用戶.AddNew.UpdateEndWithMsgBox"成功添加帳號!"‘窗體刷新Form_LoadText1.Text=""Text2.Text=""Text3.Text=""Command2.SetFocusElse'刪除用戶OnErrorGoToadderrIfCombo1.Text="admin"ThenMsgBox"管理員帳戶不能刪除",vbCriticalElseData1.Recordset.MoveFirst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學研學活動方案6篇
- 工程造價咨詢服務合同范本9篇
- 學校矛盾糾紛排查工作情況匯報三篇
- 中國小動物技能大賽骨科專賽理論考試題庫(含答案)
- 《反電信網(wǎng)絡詐騙法》知識考試題庫150題(含答案)
- 大拇指腱鞘炎偏方課件
- 2025年河北女子職業(yè)技術(shù)學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年江西現(xiàn)代職業(yè)技術(shù)學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年江西冶金職業(yè)技術(shù)學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年武漢職業(yè)技術(shù)學院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年度新能源汽車充電站運營權(quán)轉(zhuǎn)讓合同樣本4篇
- 第5課 隋唐時期的民族交往與交融 課件(23張) 2024-2025學年統(tǒng)編版七年級歷史下冊
- 2024年全國職業(yè)院校技能大賽高職組(生產(chǎn)事故應急救援賽項)考試題庫(含答案)
- 老年上消化道出血急診診療專家共識2024
- 廣東省廣州黃埔區(qū)2023-2024學年八年級上學期期末物理試卷(含答案)
- 學校安全工作計劃及行事歷
- 《GMP基礎知識培訓》課件
- 數(shù)學家華羅庚課件
- 貴州茅臺酒股份有限公司招聘筆試題庫2024
- 《納米技術(shù)簡介》課件
- 血液透析高鉀血癥的護理查房
評論
0/150
提交評論