版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 模擬ATM 機系統(tǒng)軟件的設計與開發(fā)</p><p> 論文作者姓名:</p><p> 申請學位專業(yè):</p><p> 申請學位類別:</p><p> 指導教師姓名(職稱):</p><p> 論文提交日期:</p><p> 模擬ATM 機系統(tǒng)軟件的設計與開發(fā)<
2、;/p><p><b> 摘 要</b></p><p> 二十世紀末,隨著金融服務的迅速發(fā)展,銀行提款機已經發(fā)展成了各大銀行金融服務戰(zhàn)略中的重要一環(huán),同時,銀行提款機系統(tǒng)也經歷了持續(xù)的更新?lián)Q代,為廣大用戶提供了更加便捷和人性化的服務。模擬ATM系統(tǒng)就是對提款機操作系統(tǒng)在個人PC上及主流操作平臺上的編程實現(xiàn),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)
3、制作兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用,界面友好等特點。本系統(tǒng)采用VB6.0,微軟SQLSERVER2000,實現(xiàn)了用戶身份的認證、取款、轉帳、交易明細的查詢等功能。分析并解決實現(xiàn)中遇到的若干問題,例如數(shù)據(jù)庫資料如何實現(xiàn)更新,文本框的文字輸出需要用到什么技術,如何實現(xiàn)中英文兩種界面,用戶服務功能如何實現(xiàn)等等。</p><p> 關鍵詞:
4、模擬ATM銀行系統(tǒng);ADO控件;VB6.0;SQLSERVER2000</p><p> The design and development of ATM simulation system</p><p><b> Abstract</b></p><p> At the end of the 20th century, as the
5、 fast development of financial services, ATM machines have become the major part of the financial services strategy of every bank, bank teller system has undergone a continuous upgrading, supplied a more efficient and hu
6、man services for the customers. ATM simulation system is the operating system of personal teller machines on the PC platform and the mainstream of programming. The development includes two aspects. The one is establishme
7、nt and maintenance of </p><p> Key words: ATM simulation system ; ADO; VB6.0 ;SQLSERVER2000</p><p><b> 目 錄 </b></p><p><b> 論文總頁數(shù):26頁</b></p>&
8、lt;p><b> 1引言1</b></p><p> 2開發(fā)模擬ATM系統(tǒng)的目的與意義1</p><p> 2.1ATM起源1</p><p> 2.2模擬ATM系統(tǒng)的意義1</p><p> 2.2.1現(xiàn)實意義1</p><p> 2.2.2學習意義2
9、</p><p> 3模擬ATM系統(tǒng)開發(fā)平臺簡介2</p><p> 3.1Windows下的Visual Basic 編程環(huán)境簡介2</p><p> 3.1.1面向對象的編程2</p><p> 3.1.2Visual Basic 6.0特點介紹2</p><p> 3.1.3生成幫助文
10、件及版本信息4</p><p> 3.2SQLSERVER2000數(shù)據(jù)庫簡介5</p><p> 3.2.1數(shù)據(jù)庫的概念5</p><p> 3.2.2微軟SQLSERVER2000簡介5</p><p> 3.3VB6.0與SQL數(shù)據(jù)庫二者的連接(ADO)5</p><p> 4系統(tǒng)分析
11、設計6</p><p> 4.1系統(tǒng)功能簡介6</p><p> 4.2系統(tǒng)流程圖7</p><p> 4.3系統(tǒng)開發(fā)主要應用技術7</p><p> 4.3.1系統(tǒng)前臺設計7</p><p> 4.3.2后臺數(shù)據(jù)庫設計8</p><p> 5系統(tǒng)功能的實現(xiàn)
12、9</p><p> 5.1歡迎界面實現(xiàn)9</p><p> 5.2登陸的實現(xiàn)9</p><p> 5.3主界面實現(xiàn)12</p><p> 5.4查詢余額功能的實現(xiàn)13</p><p> 5.5取款功能的實現(xiàn)14</p><p> 5.6轉賬功能的實現(xiàn)16&l
13、t;/p><p> 5.7密碼修改功能的實現(xiàn)19</p><p> 5.8查詢交易明細功能的實現(xiàn)21</p><p> 5.9其余界面及函數(shù)21</p><p> 6系統(tǒng)運行結果及工作總結23</p><p> 6.1系統(tǒng)測試及運行結果23</p><p> 6.2
14、系統(tǒng)有待改進之處23</p><p> 6.3系統(tǒng)中遇到的問題及解決方法23</p><p><b> 結 論24</b></p><p><b> 參考文獻24</b></p><p><b> 致 謝25</b></p><
15、;p><b> 聲 明26</b></p><p><b> 引言</b></p><p> 隨著時代的進步,社會生產力高速發(fā)展,新技術層出不窮,信息量急劇膨脹,整個人類社會已成為金融化信息化的社會,并開始朝著自動化智能化發(fā)展。以往人們去銀行存款取款進行各種財務處理都必須通過柜臺,隨著越來越多的人們進入銀行,使用銀行的服務,使
16、銀行出現(xiàn)了工作效率低,顧客等待時間過長等等問題,既加大了銀行工作人員的工作量,又使得人們享受銀行服務的質量大幅度降低,所以銀行交易的自動化智能化已經成為了一個不可逆轉的趨勢,而且必將成為各個銀行今后發(fā)展的重點。</p><p> 系統(tǒng)在前臺采用了Visual Basic6.0這一功能全面,方便易學的語言作為開發(fā)語言,而后臺則用功能強大的SQLSERVER2000數(shù)據(jù)庫加以實現(xiàn)。 </p>
17、<p> 開發(fā)模擬ATM系統(tǒng)的目的與意義</p><p><b> ATM起源</b></p><p> 現(xiàn)代意義上的ATM和POS系統(tǒng)始于二十世紀60年代末。最早的ATM機只是現(xiàn)鈔發(fā)放機。1976年,英格蘭的巴克萊銀行安裝了第一臺現(xiàn)鈔發(fā)放機。它并沒有使用磁條卡,而是向用戶發(fā)行紙券,用戶將紙券插入機器,取出面值為10英鎊的鈔票?,F(xiàn)代ATM機的想法來
18、自于唐·維澤爾。1968年,當他在達拉斯銀行排隊等候的時候,萌發(fā)了這個想法。之后,他建議自己的雇主Docutel研制這種機器。研發(fā)中最重要的過程是將信息加密后存儲在磁條上,然后將磁條加在塑料卡片上。研制成功后,Doctuel將ATM機賣給了紐約化學銀行。1969年,化學銀行把這個機器安裝在洛克菲勒中心的辦公室。雖然Docutel的ATM機器使用了現(xiàn)代的磁條技術,但和今天的技術相比,還是顯得比較原始。它只能用于取現(xiàn)鈔,而且只能脫
19、線使用。機器用特殊的方法打印下交易的紀錄。直到20世紀70年代初,ATM技術才發(fā)展到我們今天的水平。起初,ATM主要用來處理信用卡,到了1972年,克里夫蘭城市國家銀行成功地引進了一種可在ATM機上使用的沒有透支功能的卡片。如今,ATM機發(fā)展了更多功能,包括存錢、支票和儲蓄賬戶之間相互轉賬,付款等等。同時,ATM實現(xiàn)了與計算</p><p> 模擬ATM系統(tǒng)的意義</p><p><
20、;b> 現(xiàn)實意義</b></p><p> 目前全球共有ATM超過120萬臺,平均每5分鐘新增一臺,連南極科考基地都安裝了ATM,每年通過這些機器進行的金融交易超過400億筆。從這些數(shù)據(jù)可以看出銀行自動提款機已經進入了人們的日常生活,我們對自助式服務已經不再陌生,并成為了人們日常生活習以為常的一部分,確實的給人們的生活帶來了極大的便利。經過了近40年的發(fā)展,ATM也取得了長足的進步,從早期的
21、紙券取錢,到現(xiàn)在的一卡在手,ATM機也從早期的簡單機器,后期的系統(tǒng)集成式機器,發(fā)展成了如今的基于個人PC上操作系統(tǒng)下的智能化系統(tǒng),擁有了更多更全更加方便的功能。隨著個人PC的快速發(fā)展,越來越多的ATM機逐步替換為了PC機,也采用了基于WINDOWS XP系統(tǒng)下的操作系統(tǒng),具有了更加人性化,更加友好的操作界面,也具有了更快的響應速度,這也使得各個銀行之間的ATM操作平臺有了逐步統(tǒng)一的可能,加強各銀行的服務聯(lián)系,使客戶跨行進行ATM交易將更
22、加便捷,資費也能夠得到降低。本次開發(fā)的ATM系統(tǒng)就是基于WINXP系統(tǒng)下的具有友好界面的軟件系統(tǒng)</p><p><b> 學習意義</b></p><p> 開發(fā)一個軟件系統(tǒng),從需求分析到流程圖的繪制及模塊的分析,再到最后的數(shù)據(jù)庫設計 及代碼的編寫實現(xiàn)都要自己動手一步一步的來解決完成,這個過程對于自己在大學所學的知識是一個非常好的檢驗,對動手能力及思維能力也是一
23、次非常好的鍛煉。希望通過此次的研究學習,認清自己的不足之處,不斷的去學習完善自己的理論知識,逐步提高動手能力,為以后的工作打下堅實的基礎。</p><p> 模擬ATM系統(tǒng)開發(fā)平臺簡介</p><p> Windows下的Visual Basic 編程環(huán)境簡介</p><p><b> 面向對象的編程</b></p><
24、;p> 微軟公司的Visual Basic 6.0是Windows應用程序開發(fā)工具,使目前最為廣泛的、易學易用的面向對象的開發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設計界面和實現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應用程序的運行效率和可靠性。故而,實現(xiàn)本系統(tǒng)VB是一個相對較好的選擇。</p><p> Visual Basic 6.0特點介紹&
25、lt;/p><p> Vsual Basic6.0是一種可視化的、面對對象和條用事件驅動方式的結構化高級程序設計,可用于開發(fā)Windows環(huán)境下的種類應用程序。它簡單易學、效率高,且功能強大,可以與Windows的專業(yè)開發(fā)工具SDK相媲美,而且程序開發(fā)人員不必具有C/C++編程基礎。在Visual Basic環(huán)境下,利用事件驅動的編程機制、新穎易用的可視化設計工具,使用Windows內部的應用程序接口(API)函數(shù)
26、,以及動態(tài)鏈接庫(DLL)、動態(tài)數(shù)據(jù)交換(DDE)、對象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)訪問(ODBC)等技術,可以高效、快速地開發(fā)出Windows環(huán)境下功能強大、圖形界面豐富的應用軟件系統(tǒng)??偟膩碚f,Visual Basic具有以下特點:</p><p><b> ?。?)可視化編程:</b></p><p> 用傳統(tǒng)程序設計語言設計程序時,都是通過編寫程序代碼
27、來設計用戶界面,在設計過程中看不到界面的實際顯示效果,必須編譯后運行程序才能觀察。如果對界面的效果不滿意,還要回到程序中修改。有時候,這種編程-編譯-修改的操作可能要反復多次,大大影響了軟件開發(fā)效率。Visual Basic提供了可視化設計工具,把Windows界面設計的復雜性“封裝”起來,開發(fā)人員不必為界面設計而編寫大量程序代碼。只需要按設計要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對象,并設置這些圖形對象的屬
28、性。Visual Basic自動產生界面設計代碼,程序設計人員只需要編寫實現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設計的效率。</p><p> ?。?)面向對象的程序設計</p><p> Visual Basic應用面向對象的程序設計方法(OOP),把程序和數(shù)據(jù)封裝起來作為一個對象,并為每個對象賦予應有的屬性,使對象成為實在的東西。在設計對象時,不必編寫建立和描述每個對象的程序代
29、碼,而是用工具畫在界面上,Visual Basic自動生成對象的程序代碼并封裝起來。每個對象以圖形方式顯示在界面上,都是可視的。</p><p> ?。?)結構化程序設計語言</p><p> Visual Basic是在BASIC語言的基礎上發(fā)展起來的,具有高級程序設計語言的語句結構,接近于自然語言和人類的邏輯思維方式。Visual Basic語句簡單易懂,其編輯器支持彩色代碼,可自動
30、進行語法錯誤檢查,同時具有功能強大且使用靈活的調試器和編譯器。</p><p> Visual Basic是解釋型語言,在輸入代碼的同時,解釋系統(tǒng)將高級語言分解翻譯成計算機可以識別的機器指令,并判斷每個語句的語法錯誤。在設計Visual Basic程序的過程中,隨時可以運行程序,而在整個程序設計好之后,可以編譯生成可執(zhí)行文件(.EXE),脫離Visual Basic環(huán)境,直接在Windows環(huán)境下運行。<
31、/p><p> ?。?)事件驅動編程機制</p><p> Visual Basic通過事件來執(zhí)行對象的操作。一個對象可能會產生多個事件,每個事件都可以通過一段程序來響應。在用Visual Basic設計大型應用軟件時,不必建立具有明顯開始和結束的程序,而是編寫若干個微小的子程序,即過程。這些過程分別面向不同的對象,由用戶操作引發(fā)某個事件來驅動完成某種特定的功能,或者由事件驅動程序調用通用過
32、程來執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。</p><p><b> ?。?)訪問數(shù)據(jù)庫</b></p><p> Visual Basic具有強大的數(shù)據(jù)庫管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗口,可以直接建立或處理Microsoft Access格式的數(shù)據(jù)庫,并提供了強大的數(shù)據(jù)存儲和檢索功能。同時,Visual Basic還能直接編輯和訪問其他外部數(shù)據(jù)庫,
33、如dBASE,F(xiàn)oxPro,Paradox等,這些數(shù)據(jù)庫格式都可以用Visual Basic編輯和處理。</p><p> Visual Basic提供開放式數(shù)據(jù)連接,即ODBC功能,可通過直接訪問或建立連接的方式使用并操作后臺大型網絡數(shù)據(jù)庫,如SQL Server,Oracle等。在應用程序中,可以使用結構化查詢語言SQL數(shù)據(jù)標準,直接訪問服務器上的數(shù)據(jù)庫,并提供了簡單的面向對象的庫操作指令和多用戶數(shù)據(jù)庫訪問
34、的加鎖機制和網絡數(shù)據(jù)庫的SQL的編程技術,為單機上運行的數(shù)據(jù)庫提供了SQL網絡接口,以便在分布式環(huán)境中快速而有效地實現(xiàn)客戶/服務器(client/server)方案。</p><p> ?。?)動態(tài)數(shù)據(jù)交換(DDE)</p><p> 利用動態(tài)數(shù)據(jù)交換(Dynamic Data Exchange)技術,可以把一種應用程序中的數(shù)據(jù)動態(tài)地鏈接到另一種應用程序中,使兩種完全不同的應用程序建立起
35、一條動態(tài)數(shù)據(jù)鏈路。當原始數(shù)據(jù)變化時,可以自動更新鏈接的數(shù)據(jù)。Visual Basic提供了動態(tài)數(shù)據(jù)交換的編程技術,可以在應用程序中與其他Windows應用程序建立動態(tài)數(shù)據(jù)交換,在不同的應用程序之間進行通信。</p><p> (7)對象的鏈接與嵌入(OLE)</p><p> 對象的鏈接與嵌入(OLE)將每個應用程序都看做是一個對象(object),將不同的對象鏈接(link)起來,再
36、嵌入(embed)某個應用程序中,從而可以得到具有聲音、影像、圖像、動畫、文字等各種信息的集合式的文件。OLE技術是Microsoft公司對象技術的戰(zhàn)略,它把多個應用程序合為一體,將每個應用程序看做是一個對象進行鏈接和嵌入,是一種應用程序一體化的技術。利用OLE技術,可以方便地建立復合式文檔(compound document),這種文檔由來自多個不同應用程序的對象組成,文檔中的每個對象都與原來的應用程序相聯(lián)系,并可執(zhí)行與原來應用程序完
37、全相同的操作。</p><p> (8)動態(tài)鏈接庫(DLL)</p><p> Visual Basic是一種高級程序設計語言,不具備低級語言的功能,對訪問機器硬件的操作不太容易實現(xiàn)。但它可以通過動態(tài)鏈接庫技術將C/C++或匯編語言編寫的程序加入到Visual Basic應用程序中,可以像調用內部函數(shù)一樣調用其他語言編寫的函數(shù)。此外,通過動態(tài)鏈接庫,還可以調用Windows應用程序接口
38、(API)函數(shù),實現(xiàn)SDK所具有的功能。</p><p> 生成幫助文件及版本信息 </p><p> 專業(yè)水平的軟件通常都帶有聯(lián)機幫助功能。無論寫出來的程序是要給大量的用戶使用,還是僅僅局限于公司內部有限的使用者,我們都應該為用戶提供詳細的、易于理解的聯(lián)機幫助文檔。微軟的Help Workshop4.0 是一套獨立于Visual Basic 的用來協(xié)助我們創(chuàng)建、運行于32位Wi
39、ndows 操作系統(tǒng)下的幫助文件的工具。使用它我們可以為我們編寫的應用程序生成一組幫助文件。為了是程序顯得更具有專業(yè)風格,首先可以在其中加入通常的應用程序信息。這些信息包括公司名稱、版本號、修訂號以及其他類似信息。Visual Basic允許你使用APP對象來保存這些信息,APP對象是一個預定義對象,不需要在程序中創(chuàng)建它。APP對象的大多數(shù)屬性被應用程序用來提供常規(guī)的信息,通過使用這些APP提供的屬性,可以在應用程序和用戶之間交流重要信
40、息,在項目屬性框中可以設置它的屬性。</p><p> SQLSERVER2000數(shù)據(jù)庫簡介</p><p><b> 數(shù)據(jù)庫的概念</b></p><p> 數(shù)據(jù)庫是一種存儲數(shù)據(jù)并對數(shù)據(jù)進行操作的工具。數(shù)據(jù)庫的作用在于組織和表達信息,簡而言之,數(shù)據(jù)庫就是信息的集合。計算機的數(shù)據(jù)庫可以分為兩類:非關系數(shù)據(jù)庫(flat-file)和關系數(shù)據(jù)
41、庫(relational)。關系數(shù)據(jù)庫中包含了多個數(shù)據(jù)表的信息,數(shù)據(jù)庫含有各個不同部分的術語,象記錄、域等。 </p><p> 微軟SQLSERVER2000簡介</p><p> SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的最新版本該版本繼承了SQL Server 7.0 版本的優(yōu)點同時又比它增加了許多更先進的功能具有使用方
42、便可伸縮性好與相關軟件集成程度高等優(yōu)點可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用</p><p> ADO是訪問由微軟推出的最新.功能最強,且容易使用的數(shù)據(jù)訪問實例(OLEDB)的應用程序接口. 我們就是通過它以及創(chuàng)建Active X數(shù)據(jù)對象 </p><p> V
43、B6.0與SQL數(shù)據(jù)庫二者的連接(ADO)</p><p> ADO Recordset來訪問SQLSEVER2000上的ODBC數(shù)據(jù)源.使用ADO控件可以方便的在VB6中訪問ODBC數(shù)據(jù)庫,但是通過直接放置ADODS控件來獲得ADO的數(shù)據(jù)連接比較麻煩,可以在VB工程中創(chuàng)建一個公共數(shù)據(jù)模塊,將ADO控件的初始化、建立連接、關閉連接等操作都寫到函數(shù)中,這樣就可以在工程的其他模塊中共享調用這個ADO連接。一次完整的
44、ADO調用操作分為如下幾個步驟:</p><p> (1)打開ADO到數(shù)據(jù)庫的連接,初始化ADO RECORDSET集。 </p><p> (2)通過寫入SQL語句執(zhí)行查詢并返回查詢結果RECORDSET集;或者可以通過寫入SQL語句執(zhí)行相應數(shù)據(jù)庫操作。 </p><p> (3)釋放RECORDSET集,關閉數(shù)據(jù)庫連接。需要注意的是,每個動態(tài)創(chuàng)建的ADO同
45、時只能被一個過程調用,如果需要進行多表并行操作,可能需要在公共數(shù)據(jù)模塊中建立多個動態(tài)ADO。在本次設計中,由于我只設計了一個主模塊,所以直接將ADO控件的初始化、建立連接、關閉連接等操作都寫到了最先調用的身份認證函數(shù)中,就已經可以滿足我對數(shù)據(jù)庫的訪問操作.</p><p> 通過ADO控件使Visual Basic程序與SQLSERVER數(shù)據(jù)庫之間架起了一座橋梁,我們可以很方便的通過修改程序中ADODC的參數(shù),
46、并通過SQL語句來指向數(shù)據(jù)庫的不同部分,從而方便的對數(shù)據(jù)庫進行各種操作.</p><p><b> 系統(tǒng)分析設計</b></p><p><b> 系統(tǒng)功能簡介</b></p><p> 經過對比真實的銀行提款機系統(tǒng),本系統(tǒng)實現(xiàn)以下內容:</p><p> 1.可以選擇中文和英文兩種語言服務
47、</p><p><b> 2身份認證</b></p><p><b> 3.密碼修改</b></p><p><b> 4.取款.</b></p><p><b> 5.轉帳.</b></p><p><b>
48、 6.查詢余額.</b></p><p><b> 7.查詢交易明細</b></p><p><b> 系統(tǒng)流程圖</b></p><p><b> 圖1系統(tǒng)流程圖</b></p><p> 系統(tǒng)開發(fā)主要應用技術</p><p>
49、WINDOWS XP是時下最流行的電腦操作系統(tǒng)穩(wěn)定性安全性都非常不錯,而隨著ATM提款機逐步采用個人電腦,以及性能的升級,WINXP也有了可能成為這些提款機的操作系統(tǒng),所以本次系統(tǒng)也在WINXP下進行開發(fā)。由于需要開發(fā)出前臺客戶友好界面及后臺數(shù)據(jù)庫系統(tǒng),而對于前臺只要能滿足其界面開發(fā)需要即可,所以我采用了相對簡單易用并且功能強大的VB6.0,后臺數(shù)據(jù)庫則采用了與之相連方便且功能同樣強大的SQLSERVER2000。采用以上兩個開發(fā)軟件完
50、全能夠滿足ATM模擬系統(tǒng)的開發(fā)需要。</p><p><b> 系統(tǒng)前臺設計</b></p><p> 系統(tǒng)主要是由前臺(客戶操作界面)與后臺(數(shù)據(jù)庫)兩個部分組成。前臺部分整個代碼程序采用一個主模塊,在里面定義程序全局變量,把各種功能函數(shù)寫入其中,每個界面制作一個獨立窗體,在各個窗體代碼中來調用主模塊中的各個函數(shù)來,來實現(xiàn)相應功能。界面部分由于08年奧運會的臨近
51、,系統(tǒng)采用了幾副有關北京08奧運會的卡通圖片,讓界面整體突出一種奧運氣氛。通過可愛的卡通動物也實現(xiàn)了友好親切的操作氛圍。 </p><p><b> 后臺數(shù)據(jù)庫設計</b></p><p> 經過充分考慮,認為系統(tǒng)并不需要非常復雜的數(shù)據(jù)庫系統(tǒng)就能夠達到模擬ATM系統(tǒng)的效果,所以建立了一個名為XQQ\ATM的SQL服務器,創(chuàng)建了名為USER的數(shù)據(jù)庫,用戶登陸名為sa
52、密碼為空,并在ODBC數(shù)據(jù)源中將USER數(shù)據(jù)庫添加進去。其中實際上只運用到兩個表,一個用戶信息表和一個用戶操作表。</p><p><b> 表1 用戶信息表</b></p><p> 用戶信息表(如表1)用以存放用戶的卡號,密碼,存款金額等信息,由于該系統(tǒng)是為了模擬運用,故安全要求不高,所以密碼采用了明文方式存放,便于使用查看。本次模擬系統(tǒng)并不具有創(chuàng)建新用戶的功
53、能,用戶信息表上的內容都是為了模擬而手動添加的樣本用戶。 </p><p><b> 表2 用戶操作表</b></p><p> 用戶操作表(如表3)則用來記錄用戶在ATM機上所使用的服務,它包括了所有用戶對ATM的操作信息,包括時間,操作類型,金額,轉帳卡號,成功與否等等。用戶查詢明細的功能就是通過搜集檢索這張表來實現(xiàn)。同時管理人員也可以從這張表上很方便的查閱用
54、戶使用情況。當然,真實的銀行ATM系統(tǒng),其后臺的數(shù)據(jù)庫系統(tǒng)肯定是十分龐大的一個系統(tǒng),對保密性的要求也非常的高,在這次的模擬中當然不可能達到那樣的要求。</p><p><b> 系統(tǒng)功能的實現(xiàn)</b></p><p><b> 歡迎界面實現(xiàn) </b></p><p><b> 圖2 歡迎界面</b&g
55、t;</p><p> 在歡迎界面(如圖2)我們可以自由的選擇兩種語言,分別為我們最常用的中文和英語,在這里主模塊中定義了一個非常重要的INT整型變量i,通過i的值來決定所選擇的服務。任意點擊一種服務都將進入登陸界面。</p><p> Private Sub Command1_Click()</p><p> i = 2 當點中文按鈕時,i的值就被賦為了2,
56、在后面的操作中,i的值就將始終為2,用以區(qū)別所選語言服務</p><p> Unload Form1</p><p> Form2.Show</p><p><b> End Sub</b></p><p> Private Sub Command2_Click()</p><p> i
57、 = 1 點ENGLISH按鈕時 i的值賦1 </p><p> Unload Form1</p><p> Form2.Show</p><p><b> End Sub</b></p><p><b> 登陸的實現(xiàn)</b></p><p> 在登陸界面有兩種語言
58、可以為用戶服務,一是中文,而是英文。選擇兩種語言的功能和界面背景實際上都是完全一致的,只是語言文字不同。如圖3為選擇中文的界面: </p><p> 圖 3 登陸界面(中文)</p><p> 如果點擊的是ENGLISH, 則登陸界面為圖4</p><p> 圖4 登陸界面(英文)</p><p> 這里的兩個界面并非
59、通過兩個窗體單獨實現(xiàn)而是共用一個窗體,通過判斷i的值,對label中的CAPTION進行相應的中文和英文賦值。后面的操作界面同樣也是采用這種方法,就不再做英文的界面介紹。這里把默認的語言選擇為中文直接在窗體編輯菜單中對CAPTION進行了相應賦值。如果為英文則需執(zhí)行下面的語句,此后的每個界面語言確定及實現(xiàn)都是通過采取這個方法</p><p> Private Sub Form_Load()</p>
60、<p> If i = 1 Then //判斷i的值 如果為1則進行英文賦值</p><p> Label1.Caption = "Do you want to continue?Please choose!"</p><p> Command1.Caption = "other service"</p><p&
61、gt; Command2.Caption = "Cancel"</p><p><b> End If</b></p><p><b> End Sub</b></p><p> 在窗體中我們首先來判斷用戶輸入的卡號和密碼是否符合我們的規(guī)定。卡號為8位密碼為6位</p><p
62、> Private Sub Command1_Click() //當我們點下確認按鈕時</p><p> If i = 2 Then</p><p> If Len(Text1.Text) <> 8 Or Len(Text2.Text) <> 6 Then // 比較卡號是否為8位及密碼是否為6位</p><p>
63、; Form3.Show</p><p> Form3.Label1.Caption = "沒有正確輸入卡號或密碼"</p><p> Text1.Text = ""</p><p> Text2.Text = ""</p><p><b> Else</b
64、></p><p> Call Checkuser //這里是調用主模塊中的身份驗證函數(shù),在后面的窗體實現(xiàn)中都是通過</p><p> CALL語句來直接調用相應函數(shù)的 </p><p><b> End If</b></p><p> End If //以下為用戶選擇
65、英語的代碼,和選擇中文時是一樣的,在后面的介紹中將不在引用英語的代碼</p><p> If i = 1 Then</p><p> If Len(Text1.Text) <> 8 Or Len(Text2.Text) <> 6 Then</p><p> Form3.Show</p><p> Form3.L
66、abel1.Caption = "Please Input Correct Cardnumber Or Password"</p><p> Text1.Text = ""</p><p> Text2.Text = ""</p><p><b> Else</b></p&
67、gt;<p> Call Checkuser</p><p><b> End If</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> 在主模塊MODEL1中身份驗證函數(shù)代碼為&l
68、t;/p><p> Public Sub Checkuser() 定義Checkuser函數(shù)</p><p> Dim strr As String</p><p> Set CON = New ADODB.Connection</p><p> strr = "Provider=SQLOLEDB.1;Password= ;Pe
69、rsist Security Info=True;User ID=sa;Initial Catalog=user;Data Source=XQQ\ATM"// 這段語句采用了動態(tài)連接數(shù)據(jù)庫的方法與數(shù)據(jù)庫USER進行連接,采用的是SQL OLEDB應用接口。</p><p> CON.Open strr </p><p> u = Form2.Text1.Text 把卡號賦給
70、u</p><p> str = "select 密碼 from 用戶信息 where 卡號='" & u & "'" //SQL數(shù)據(jù)庫查詢語句,根據(jù)卡號把所查詢的密碼數(shù)據(jù)放入str中</p><p> Set RS = New ADODB.Recordset //設置RS為新的Recordset對象
71、</p><p> RS.Open str, CON, adOpenDynamic, adLockPessimistic</p><p> If RS.EOF = True Then //當前記錄指針無效,說明不存在這個用戶</p><p> If i = 2 Then</p><p> Form3.Show</p&
72、gt;<p> Form3.Label1.Caption = " 沒有此用戶,請檢查并重新輸入!"</p><p> u = "" // u重新設置為空</p><p> 接下來就是比較從所輸卡號中取出的密碼與用戶輸入的密碼進行比較</p><p> If
73、Trim(RS.Fields(0)) = Trim(Form2.Text2.Text) Then '//檢驗密碼是否相同</p><p> Form4.Show //密碼相同轉入服務界面</p><p><b> RS.Close </b></p><p> Unload Form2</p>
74、<p> 在窗體中直接通過程序代碼調用在模塊中的Checkuser函數(shù)即可,后面的界面都是采用這種方法,都不再進行仔細說明。 </p><p><b> 主界面實現(xiàn)</b></p><p><b> 圖 5 服務界面</b></p><p> 在主界面中(如圖5)有5個服務按鈕 設置了一個整型變量j,在
75、點擊各種服務的同時,J也被賦予了不同的數(shù)值,用以后面記錄用戶操作信息,寫入數(shù)據(jù)庫。</p><p> Private Sub Command1_Click()</p><p> If Option1(0).Value = True Then</p><p><b> j = 1</b></p><p> Unlo
76、ad Form4</p><p> Form5.Show</p><p><b> Else</b></p><p> If Option1(1).Value = True Then</p><p><b> j = 2</b></p><p> Unload Fo
77、rm4</p><p> Form6.Show</p><p><b> Else</b></p><p> If Option1(2).Value = True Then</p><p><b> j = 3</b></p><p> Unload Form4&l
78、t;/p><p> Form7.Show</p><p><b> Else</b></p><p> If Option1(4).Value = True Then</p><p><b> J = 5</b></p><p> Unload Form4</p&
79、gt;<p> Form12.Show</p><p><b> Else</b></p><p> If Option1(3).Value = True Then</p><p><b> j = 4</b></p><p> Unload Form4</p>
80、<p> Call Query</p><p> Form8.Show</p><p> Form8.Label2.Caption = u</p><p><b> 查詢余額功能的實現(xiàn)</b></p><p> 查詢功能的實現(xiàn)相對來說就非常簡單了,直接連接數(shù)據(jù)庫,搜索到相應的數(shù)據(jù)后輸出到文本框中即可
81、(如圖6)</p><p> 在主模塊中的查詢函數(shù):</p><p> Public Sub Query()</p><p> Dim str2 As String</p><p> str2 = "select * from 用戶信息 where 卡號='" & u & "
82、9;"</p><p> Set RS = New ADODB.Recordset</p><p><b> 圖6 查詢界面</b></p><p> RS.Open str2, CON, adOpenDynamic, adLockPessimistic</p><p> Form8.Label5.Ca
83、ption = RS.Fields("金額")</p><p><b> 取款功能的實現(xiàn)</b></p><p><b> 圖7 取款界面</b></p><p> 取款函數(shù)相對于其他函數(shù)就相對復雜一點,因為有很多情況需要判斷,列如只能取50與100的整數(shù),就需要對50取模,還需要判斷所取金額是否
84、大于卡上的余額,余額不足那也是沒法成功取款的。用戶取了一定數(shù)量的錢后還需要把新的數(shù)據(jù)重新寫入數(shù)據(jù)庫。</p><p> Public Public Sub TakeMoney()</p><p> Dim str1 As String</p><p> str1 = "select * from 用戶信息 where 卡號='" &
85、amp; u & "'"</p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str1, CON, adOpenDynamic, adLockPessimistic 前面也是對數(shù)據(jù)庫進行連接,并把用戶信息根據(jù)所輸卡號輸入到記錄集中。</p><p> If i =
86、2 Then //在中文服務下</p><p> m = Form5.Text1.Text</p><p> If m = "" Then //m為空,說明用戶沒有輸入金額</p><p> k = 0 //這里的K為全局變量 ,在后面數(shù)據(jù)庫對用戶操作表進行寫入時非常有用,k的值標識操作的成功與否,k=0操作
87、失敗,k=1則為成功 </p><p> Form3.Show</p><p> Form3.Label1.Caption = "請您正確輸入金額!"</p><p><b> Exit Sub</b></p><p><b> End If</b></p>
88、<p> If m Mod 50 <> 0 Then // 所輸金額不能被50整除</p><p><b> k = 0</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "請您正確輸入金額!"</p><p&
89、gt; Form5.Text1.Text = ""</p><p><b> Else</b></p><p> If RS.Fields("金額") < CCur(m) Then //用戶卡中金額小與輸入的金額</p><p><b> k = 0</b></p
90、><p> Form3.Show</p><p> Form3.Label1.Caption = "金額不足!"</p><p> Form5.Text1.Text = ""</p><p><b> Exit Sub</b></p><p><b
91、> Else</b></p><p> k = 1 //排除所有不正確情況,即輸入正確,則對k賦值為1 標識操作成功</p><p> Money = RS.Fields("金額")</p><p> RS.Fields("金額") = (Money - Form5.Text1.Text) // 表
92、中用戶金額減去所取金額</p><p> RS.Update // 將新的數(shù)據(jù)寫入所取位置</p><p><b> RS.Close</b></p><p> Call InsertDatabase '//把操作插入用戶操作表,這個函數(shù)將在后面介紹其功能</p><p> Unload Form5&l
93、t;/p><p> Form9.Show</p><p> Form9.Label1.Caption = "交易成功,謝謝您的使用,請拿好您的鈔票!"</p><p> Form11.Show</p><p> Form9.SetFocus</p><p><b> End If&l
94、t;/b></p><p><b> End If</b></p><p><b> 轉賬功能的實現(xiàn)</b></p><p> 轉帳功能要求用戶輸入對方卡號及轉帳金額,并且對方卡號也必須是在數(shù)據(jù)庫中存在的卡號,否則會出錯,這里對數(shù)額上沒有要求,并不要求是整數(shù),可隨意輸入轉帳金額 。 </
95、p><p><b> 圖8 轉賬界面</b></p><p> 在程序實現(xiàn)中,同樣要對用戶輸入的信息要驗證其正確性,對方卡號必須真實存在,所輸入金額不得超過卡上金額等等。 </p><p> Public Sub Trans()</p><p> Dim str3 As String</p><p
96、> transcard = Form7.Text1.Text</p><p> transmoney = Form7.Text2.Text</p><p> str3 = "select * from 用戶信息 where 卡號='" & transcard & "'"</p><p&g
97、t; Set RS = New ADODB.Recordset </p><p> RS.Open str3, CON, adOpenDynamic, adLockPessimistic //數(shù)據(jù)庫連接</p><p> If i = 2 Then</p><p> If Form7.Text2.Text = "" Or Form7
98、.Text1.Text = "" Then // 輸入卡號或輸入金額為空 則出錯</p><p><b> k = 0</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "請你正確輸入!"</p><p> Fo
99、rm7.Text1.Text = ""</p><p> Form7.Text2.Text = ""</p><p> Call InsertDatabase //每出現(xiàn)一次錯誤就調用數(shù)據(jù)庫寫入函數(shù)。對用戶操作信息表進行添加操作信息。此函數(shù)將在后面介紹</p><p><b> Exit Sub</b&g
100、t;</p><p><b> End If</b></p><p> If RS.EOF = True Then //記錄集中沒有所輸入卡號的用戶 則出錯</p><p><b> k = 0</b></p><p> Form3.Show</p><p> F
101、orm3.Label1.Caption = "沒有此用戶,請檢查并重新輸入!"</p><p> Call InsertDatabase</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If trans
102、card = u Then //轉帳卡號與實施轉帳操作的卡號相同,則出錯</p><p><b> k = 0</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "操作錯誤,同帳戶不可以轉帳!"</p><p> Call Inse
103、rtDatabase</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> str6 = "select * from 用戶信息 where 卡號='" & u & "'"</
104、p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str6, CON, adOpenDynamic, adLockPessimistic</p><p> If RS.Fields("金額") < Val(Form7.Text2.Text) Then //判斷輸入金額與卡中余額<
105、;/p><p><b> k = 0</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "金額不足以轉帳,請你重新輸入"</p><p> Form7.Text2.Text = ""</p><p
106、> Call InsertDatabase</p><p><b> Exit Sub</b></p><p><b> Else</b></p><p><b> k = 1</b></p><p> Unload Form7</p><p
107、> Form10.Text1.Text = transcard</p><p> Form10.Text2.Text = transmoney</p><p> Form10.Show</p><p><b> End If</b></p><p> 在排除了不正確的情況后,將轉入確認信息界面,如圖9,在
108、確認信息窗體中將調用trans2函數(shù),對交易成功后的數(shù)據(jù)進行更新</p><p><b> 圖 9 確認界面</b></p><p> Public Sub Trans2()</p><p> Dim str4 As String</p><p> str4 = "select * from 用戶信息
109、where 卡號='" & u & "'"</p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str4, CON, adOpenDynamic, adLockPessimistic</p><p> RS.Fields("金額&q
110、uot;) = RS.Fields("金額") – transmoney //對轉出錢的卡號減少相應數(shù)額</p><p><b> RS.Update</b></p><p><b> RS.Close</b></p><p> Dim str5 As String</p>&l
111、t;p> str5 = "select * from 用戶信息 where 卡號='" & transcard & "'"</p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str5, CON, adOpenDynamic, adLockPessi
112、mistic</p><p> RS.Fields("金額") = RS.Fields("金額") + transmoney //所轉入的卡號加上相應數(shù)額</p><p><b> RS.Update</b></p><p><b> RS.Close</b></p>
113、;<p> If i = 2 Then</p><p> Form9.Label1.Caption = "恭喜您轉帳成功!"</p><p><b> Else</b></p><p> Form9.Label1.Caption = "Transfered successfully!"
114、;</p><p><b> End If</b></p><p> Form11.Show</p><p> Form9.Show</p><p> Form9.SetFocus</p><p> Call InsertDatabase //調用數(shù)據(jù)庫寫入函數(shù)</p>
115、<p><b> End Sub</b></p><p><b> 密碼修改功能的實現(xiàn)</b></p><p> 圖10 修改密碼界面</p><p> 在密碼修改界面中(如圖10)需要用戶兩次輸入的密碼相一致,否則不能進行修改,密碼兩次輸入正確后,程序將新的密碼寫入原來位置。</p>&l
116、t;p> Public Sub changepwd()</p><p> If i = 2 Then</p><p> If Len(Form6.Text1.Text) <> 6 Or Len(Form6.Text1.Text) <> 6 Then//比較兩次密碼長度是否符合6位的要求</p><p><b> k =
117、 0</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "請正確輸入6位密碼"</p><p> Form6.Text1.Text = ""</p><p> Form6.Text2.Text = ""
118、</p><p> Call InsertDatabase</p><p><b> Else</b></p><p> If Form6.Text1.Text <> Form6.Text2.Text Then//比較兩次輸入是否一致</p><p><b> k = 0</b>
119、</p><p> Form3.Show</p><p> Form3.Label1.Caption = "您兩次輸入的密碼不一致,請檢查!"</p><p> Form6.Text1.Text = ""</p><p> Form6.Text2.Text = ""</
120、p><p> Call InsertDatabase</p><p><b> Else</b></p><p> str = "update 用戶信息 set [密碼]='" & Form6.Text1.Text & "' where 卡號='" & u
121、 & "'"</p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str, CON, adOpenDynamic, adLockPessimistic</p><p><b> k = 1</b></p><p> Ca
122、ll InsertDatabase</p><p> If i = 2 Then</p><p> Form9.Show</p><p> Form9.Label1.Caption = "密碼修改成功,請記好您的新密碼!"</p><p><b> Else</b></p>&l
123、t;p> Form9.Show</p><p> Form9.Label1.Caption = "Password Be changed successfully"</p><p><b> End If</b></p><p> Unload Form6</p><p> Form1
124、1.Show</p><p> Form9.SetFocus</p><p><b> End If </b></p><p><b> End If</b></p><p> 查詢交易明細功能的實現(xiàn)</p><p> 圖11 查詢明細界面</p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機專業(yè)畢業(yè)論文(考勤系統(tǒng)軟件設計)
- 畢業(yè)設計---模擬atm 機系統(tǒng)軟件的設計與開發(fā)
- 大學計算機專業(yè)畢業(yè)論文-企業(yè)采購開發(fā)管理系統(tǒng)設計與實現(xiàn)
- 計算機畢業(yè)論文——人事工資管理系統(tǒng)軟件分析
- 計算機專業(yè)畢業(yè)論文-- 報表設計器開發(fā)
- 2003032005_熊青卿_模擬atm機系統(tǒng)軟件的設計與開發(fā)
- 2003032005_熊青卿_模擬atm機系統(tǒng)軟件的設計與開發(fā)
- 計算機專業(yè)畢業(yè)論文-旅游管理系統(tǒng)的研究與開發(fā)
- 計算機畢業(yè)論文范文畢業(yè)論文計算機專業(yè)
- 計算機故障與處理-計算機專業(yè)畢業(yè)論文
- 計算機軟件技術專業(yè)畢業(yè)論文
- 計算機專業(yè)畢業(yè)論文
- 畢業(yè)論文---計算機專業(yè)
- 計算機專業(yè)畢業(yè)論文
- 計算機專業(yè)畢業(yè)論文-考勤管理系統(tǒng)設計
- 計算機專業(yè)畢業(yè)論文--個人博客系統(tǒng)設計
- 計算機專業(yè)畢業(yè)論文---學校圖書管理系統(tǒng)的開發(fā)
- 計算機專業(yè)畢業(yè)論文---教務管理系統(tǒng)的設計與實現(xiàn)
- 大學計算機專業(yè)畢業(yè)論文-人事工資管理系統(tǒng)設計與實現(xiàn)
- 計算機科學與技術專業(yè)畢業(yè)論文(設計)
評論
0/150
提交評論