畢業(yè)設(shè)計(jì)---模擬atm 機(jī)系統(tǒng)軟件的設(shè)計(jì)與開(kāi)發(fā)_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  模擬ATM 機(jī)系統(tǒng)軟件的設(shè)計(jì)與開(kāi)發(fā)</p><p> 論文作者姓名:</p><p> 申請(qǐng)學(xué)位專業(yè):</p><p> 申請(qǐng)學(xué)位類別:</p><p> 指導(dǎo)教師姓名(職稱):</p><p> 論文提交日期:</p><p>  模擬ATM 機(jī)系統(tǒng)軟件的設(shè)計(jì)與開(kāi)發(fā)<

2、;/p><p><b>  摘 要</b></p><p>  二十世紀(jì)末,隨著金融服務(wù)的迅速發(fā)展,銀行提款機(jī)已經(jīng)發(fā)展成了各大銀行金融服務(wù)戰(zhàn)略中的重要一環(huán),同時(shí),銀行提款機(jī)系統(tǒng)也經(jīng)歷了持續(xù)的更新?lián)Q代,為廣大用戶提供了更加便捷和人性化的服務(wù)。模擬ATM系統(tǒng)就是對(duì)提款機(jī)操作系統(tǒng)在個(gè)人PC上及主流操作平臺(tái)上的編程實(shí)現(xiàn),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)

3、制作兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用,界面友好等特點(diǎn)。本系統(tǒng)采用VB6.0,微軟SQLSERVER2000,實(shí)現(xiàn)了用戶身份的認(rèn)證、取款、轉(zhuǎn)帳、交易明細(xì)的查詢等功能。分析并解決實(shí)現(xiàn)中遇到的若干問(wèn)題,例如數(shù)據(jù)庫(kù)資料如何實(shí)現(xiàn)更新,文本框的文字輸出需要用到什么技術(shù),如何實(shí)現(xiàn)中英文兩種界面,用戶服務(wù)功能如何實(shí)現(xiàn)等等。</p><p>  關(guān)鍵詞:

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>  論文總頁(yè)數(shù):26頁(yè)</b></p>&

8、lt;p><b>  1引言1</b></p><p>  2開(kāi)發(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)實(shí)意義1</p><p>  2.2.2學(xué)習(xí)意義2

9、</p><p>  3模擬ATM系統(tǒng)開(kāi)發(fā)平臺(tái)簡(jiǎn)介2</p><p>  3.1Windows下的Visual Basic 編程環(huán)境簡(jiǎn)介2</p><p>  3.1.1面向?qū)ο蟮木幊?</p><p>  3.1.2Visual Basic 6.0特點(diǎn)介紹2</p><p>  3.1.3生成幫助文

10、件及版本信息4</p><p>  3.2SQLSERVER2000數(shù)據(jù)庫(kù)簡(jiǎn)介5</p><p>  3.2.1數(shù)據(jù)庫(kù)的概念5</p><p>  3.2.2微軟SQLSERVER2000簡(jiǎn)介5</p><p>  3.3VB6.0與SQL數(shù)據(jù)庫(kù)二者的連接(ADO)5</p><p>  4系統(tǒng)分析

11、設(shè)計(jì)6</p><p>  4.1系統(tǒng)功能簡(jiǎn)介6</p><p>  4.2系統(tǒng)流程圖7</p><p>  4.3系統(tǒng)開(kāi)發(fā)主要應(yīng)用技術(shù)7</p><p>  4.3.1系統(tǒng)前臺(tái)設(shè)計(jì)7</p><p>  4.3.2后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)8</p><p>  5系統(tǒng)功能的實(shí)現(xiàn)

12、9</p><p>  5.1歡迎界面實(shí)現(xiàn)9</p><p>  5.2登陸的實(shí)現(xiàn)9</p><p>  5.3主界面實(shí)現(xiàn)12</p><p>  5.4查詢余額功能的實(shí)現(xiàn)13</p><p>  5.5取款功能的實(shí)現(xiàn)14</p><p>  5.6轉(zhuǎn)賬功能的實(shí)現(xiàn)16&l

13、t;/p><p>  5.7密碼修改功能的實(shí)現(xiàn)19</p><p>  5.8查詢交易明細(xì)功能的實(shí)現(xiàn)21</p><p>  5.9其余界面及函數(shù)21</p><p>  6系統(tǒng)運(yùn)行結(jié)果及工作總結(jié)23</p><p>  6.1系統(tǒng)測(cè)試及運(yùn)行結(jié)果23</p><p>  6.2

14、系統(tǒng)有待改進(jìn)之處23</p><p>  6.3系統(tǒng)中遇到的問(wèn)題及解決方法23</p><p><b>  結(jié) 論24</b></p><p><b>  參考文獻(xiàn)24</b></p><p><b>  致 謝25</b></p><

15、;p><b>  聲 明26</b></p><p><b>  引言</b></p><p>  隨著時(shí)代的進(jìn)步,社會(huì)生產(chǎn)力高速發(fā)展,新技術(shù)層出不窮,信息量急劇膨脹,整個(gè)人類社會(huì)已成為金融化信息化的社會(huì),并開(kāi)始朝著自動(dòng)化智能化發(fā)展。以往人們?nèi)ャy行存款取款進(jìn)行各種財(cái)務(wù)處理都必須通過(guò)柜臺(tái),隨著越來(lái)越多的人們進(jìn)入銀行,使用銀行的服務(wù),使

16、銀行出現(xiàn)了工作效率低,顧客等待時(shí)間過(guò)長(zhǎng)等等問(wèn)題,既加大了銀行工作人員的工作量,又使得人們享受銀行服務(wù)的質(zhì)量大幅度降低,所以銀行交易的自動(dòng)化智能化已經(jīng)成為了一個(gè)不可逆轉(zhuǎn)的趨勢(shì),而且必將成為各個(gè)銀行今后發(fā)展的重點(diǎn)。</p><p>  系統(tǒng)在前臺(tái)采用了Visual Basic6.0這一功能全面,方便易學(xué)的語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,而后臺(tái)則用功能強(qiáng)大的SQLSERVER2000數(shù)據(jù)庫(kù)加以實(shí)現(xiàn)。 </p>

17、<p>  開(kāi)發(fā)模擬ATM系統(tǒng)的目的與意義</p><p><b>  ATM起源</b></p><p>  現(xiàn)代意義上的ATM和POS系統(tǒng)始于二十世紀(jì)60年代末。最早的ATM機(jī)只是現(xiàn)鈔發(fā)放機(jī)。1976年,英格蘭的巴克萊銀行安裝了第一臺(tái)現(xiàn)鈔發(fā)放機(jī)。它并沒(méi)有使用磁條卡,而是向用戶發(fā)行紙券,用戶將紙券插入機(jī)器,取出面值為10英鎊的鈔票?,F(xiàn)代ATM機(jī)的想法來(lái)

18、自于唐·維澤爾。1968年,當(dāng)他在達(dá)拉斯銀行排隊(duì)等候的時(shí)候,萌發(fā)了這個(gè)想法。之后,他建議自己的雇主Docutel研制這種機(jī)器。研發(fā)中最重要的過(guò)程是將信息加密后存儲(chǔ)在磁條上,然后將磁條加在塑料卡片上。研制成功后,Doctuel將ATM機(jī)賣給了紐約化學(xué)銀行。1969年,化學(xué)銀行把這個(gè)機(jī)器安裝在洛克菲勒中心的辦公室。雖然Docutel的ATM機(jī)器使用了現(xiàn)代的磁條技術(shù),但和今天的技術(shù)相比,還是顯得比較原始。它只能用于取現(xiàn)鈔,而且只能脫

19、線使用。機(jī)器用特殊的方法打印下交易的紀(jì)錄。直到20世紀(jì)70年代初,ATM技術(shù)才發(fā)展到我們今天的水平。起初,ATM主要用來(lái)處理信用卡,到了1972年,克里夫蘭城市國(guó)家銀行成功地引進(jìn)了一種可在ATM機(jī)上使用的沒(méi)有透支功能的卡片。如今,ATM機(jī)發(fā)展了更多功能,包括存錢(qián)、支票和儲(chǔ)蓄賬戶之間相互轉(zhuǎn)賬,付款等等。同時(shí),ATM實(shí)現(xiàn)了與計(jì)算</p><p>  模擬ATM系統(tǒng)的意義</p><p><

20、;b>  現(xiàn)實(shí)意義</b></p><p>  目前全球共有ATM超過(guò)120萬(wàn)臺(tái),平均每5分鐘新增一臺(tái),連南極科考基地都安裝了ATM,每年通過(guò)這些機(jī)器進(jìn)行的金融交易超過(guò)400億筆。從這些數(shù)據(jù)可以看出銀行自動(dòng)提款機(jī)已經(jīng)進(jìn)入了人們的日常生活,我們對(duì)自助式服務(wù)已經(jīng)不再陌生,并成為了人們?nèi)粘I盍?xí)以為常的一部分,確實(shí)的給人們的生活帶來(lái)了極大的便利。經(jīng)過(guò)了近40年的發(fā)展,ATM也取得了長(zhǎng)足的進(jìn)步,從早期的

21、紙券取錢(qián),到現(xiàn)在的一卡在手,ATM機(jī)也從早期的簡(jiǎn)單機(jī)器,后期的系統(tǒng)集成式機(jī)器,發(fā)展成了如今的基于個(gè)人PC上操作系統(tǒng)下的智能化系統(tǒng),擁有了更多更全更加方便的功能。隨著個(gè)人PC的快速發(fā)展,越來(lái)越多的ATM機(jī)逐步替換為了PC機(jī),也采用了基于WINDOWS XP系統(tǒng)下的操作系統(tǒng),具有了更加人性化,更加友好的操作界面,也具有了更快的響應(yīng)速度,這也使得各個(gè)銀行之間的ATM操作平臺(tái)有了逐步統(tǒng)一的可能,加強(qiáng)各銀行的服務(wù)聯(lián)系,使客戶跨行進(jìn)行ATM交易將更

22、加便捷,資費(fèi)也能夠得到降低。本次開(kāi)發(fā)的ATM系統(tǒng)就是基于WINXP系統(tǒng)下的具有友好界面的軟件系統(tǒng)</p><p><b>  學(xué)習(xí)意義</b></p><p>  開(kāi)發(fā)一個(gè)軟件系統(tǒng),從需求分析到流程圖的繪制及模塊的分析,再到最后的數(shù)據(jù)庫(kù)設(shè)計(jì) 及代碼的編寫(xiě)實(shí)現(xiàn)都要自己動(dòng)手一步一步的來(lái)解決完成,這個(gè)過(guò)程對(duì)于自己在大學(xué)所學(xué)的知識(shí)是一個(gè)非常好的檢驗(yàn),對(duì)動(dòng)手能力及思維能力也是一

23、次非常好的鍛煉。希望通過(guò)此次的研究學(xué)習(xí),認(rèn)清自己的不足之處,不斷的去學(xué)習(xí)完善自己的理論知識(shí),逐步提高動(dòng)手能力,為以后的工作打下堅(jiān)實(shí)的基礎(chǔ)。</p><p>  模擬ATM系統(tǒng)開(kāi)發(fā)平臺(tái)簡(jiǎn)介</p><p>  Windows下的Visual Basic 編程環(huán)境簡(jiǎn)介</p><p><b>  面向?qū)ο蟮木幊?lt;/b></p><

24、;p>  微軟公司的Visual Basic 6.0是Windows應(yīng)用程序開(kāi)發(fā)工具,使目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_(kāi)發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡(jiǎn)化了界面設(shè)計(jì)過(guò)程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。故而,實(shí)現(xiàn)本系統(tǒng)VB是一個(gè)相對(duì)較好的選擇。</p><p>  Visual Basic 6.0特點(diǎn)介紹&

25、lt;/p><p>  Vsual Basic6.0是一種可視化的、面對(duì)對(duì)象和條用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì),可用于開(kāi)發(fā)Windows環(huán)境下的種類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大,可以與Windows的專業(yè)開(kāi)發(fā)工具SDK相媲美,而且程序開(kāi)發(fā)人員不必具有C/C++編程基礎(chǔ)。在Visual Basic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù)

26、,以及動(dòng)態(tài)鏈接庫(kù)(DLL)、動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)訪問(wèn)(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)出Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。總的來(lái)說(shuō),Visual Basic具有以下特點(diǎn):</p><p><b> ?。?)可視化編程:</b></p><p>  用傳統(tǒng)程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)程序時(shí),都是通過(guò)編寫(xiě)程序代碼

27、來(lái)設(shè)計(jì)用戶界面,在設(shè)計(jì)過(guò)程中看不到界面的實(shí)際顯示效果,必須編譯后運(yùn)行程序才能觀察。如果對(duì)界面的效果不滿意,還要回到程序中修改。有時(shí)候,這種編程-編譯-修改的操作可能要反復(fù)多次,大大影響了軟件開(kāi)發(fā)效率。Visual Basic提供了可視化設(shè)計(jì)工具,把Windows界面設(shè)計(jì)的復(fù)雜性“封裝”起來(lái),開(kāi)發(fā)人員不必為界面設(shè)計(jì)而編寫(xiě)大量程序代碼。只需要按設(shè)計(jì)要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫(huà)出各種“部件”,即圖形對(duì)象,并設(shè)置這些圖形對(duì)象的屬

28、性。Visual Basic自動(dòng)產(chǎn)生界面設(shè)計(jì)代碼,程序設(shè)計(jì)人員只需要編寫(xiě)實(shí)現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設(shè)計(jì)的效率。</p><p> ?。?)面向?qū)ο蟮某绦蛟O(shè)計(jì)</p><p>  Visual Basic應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP),把程序和數(shù)據(jù)封裝起來(lái)作為一個(gè)對(duì)象,并為每個(gè)對(duì)象賦予應(yīng)有的屬性,使對(duì)象成為實(shí)在的東西。在設(shè)計(jì)對(duì)象時(shí),不必編寫(xiě)建立和描述每個(gè)對(duì)象的程序代

29、碼,而是用工具畫(huà)在界面上,Visual Basic自動(dòng)生成對(duì)象的程序代碼并封裝起來(lái)。每個(gè)對(duì)象以圖形方式顯示在界面上,都是可視的。</p><p> ?。?)結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言</p><p>  Visual Basic是在BASIC語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,具有高級(jí)程序設(shè)計(jì)語(yǔ)言的語(yǔ)句結(jié)構(gòu),接近于自然語(yǔ)言和人類的邏輯思維方式。Visual Basic語(yǔ)句簡(jiǎn)單易懂,其編輯器支持彩色代碼,可自動(dòng)

30、進(jìn)行語(yǔ)法錯(cuò)誤檢查,同時(shí)具有功能強(qiáng)大且使用靈活的調(diào)試器和編譯器。</p><p>  Visual Basic是解釋型語(yǔ)言,在輸入代碼的同時(shí),解釋系統(tǒng)將高級(jí)語(yǔ)言分解翻譯成計(jì)算機(jī)可以識(shí)別的機(jī)器指令,并判斷每個(gè)語(yǔ)句的語(yǔ)法錯(cuò)誤。在設(shè)計(jì)Visual Basic程序的過(guò)程中,隨時(shí)可以運(yùn)行程序,而在整個(gè)程序設(shè)計(jì)好之后,可以編譯生成可執(zhí)行文件(.EXE),脫離Visual Basic環(huán)境,直接在Windows環(huán)境下運(yùn)行。<

31、/p><p>  (4)事件驅(qū)動(dòng)編程機(jī)制</p><p>  Visual Basic通過(guò)事件來(lái)執(zhí)行對(duì)象的操作。一個(gè)對(duì)象可能會(huì)產(chǎn)生多個(gè)事件,每個(gè)事件都可以通過(guò)一段程序來(lái)響應(yīng)。在用Visual Basic設(shè)計(jì)大型應(yīng)用軟件時(shí),不必建立具有明顯開(kāi)始和結(jié)束的程序,而是編寫(xiě)若干個(gè)微小的子程序,即過(guò)程。這些過(guò)程分別面向不同的對(duì)象,由用戶操作引發(fā)某個(gè)事件來(lái)驅(qū)動(dòng)完成某種特定的功能,或者由事件驅(qū)動(dòng)程序調(diào)用通用過(guò)

32、程來(lái)執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。</p><p><b> ?。?)訪問(wèn)數(shù)據(jù)庫(kù)</b></p><p>  Visual Basic具有強(qiáng)大的數(shù)據(jù)庫(kù)管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫(kù)管理窗口,可以直接建立或處理Microsoft Access格式的數(shù)據(jù)庫(kù),并提供了強(qiáng)大的數(shù)據(jù)存儲(chǔ)和檢索功能。同時(shí),Visual Basic還能直接編輯和訪問(wèn)其他外部數(shù)據(jù)庫(kù),

33、如dBASE,F(xiàn)oxPro,Paradox等,這些數(shù)據(jù)庫(kù)格式都可以用Visual Basic編輯和處理。</p><p>  Visual Basic提供開(kāi)放式數(shù)據(jù)連接,即ODBC功能,可通過(guò)直接訪問(wèn)或建立連接的方式使用并操作后臺(tái)大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù),如SQL Server,Oracle等。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語(yǔ)言SQL數(shù)據(jù)標(biāo)準(zhǔn),直接訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),并提供了簡(jiǎn)單的面向?qū)ο蟮膸?kù)操作指令和多用戶數(shù)據(jù)庫(kù)訪問(wèn)

34、的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的SQL的編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫(kù)提供了SQL網(wǎng)絡(luò)接口,以便在分布式環(huán)境中快速而有效地實(shí)現(xiàn)客戶/服務(wù)器(client/server)方案。</p><p> ?。?)動(dòng)態(tài)數(shù)據(jù)交換(DDE)</p><p>  利用動(dòng)態(tài)數(shù)據(jù)交換(Dynamic Data Exchange)技術(shù),可以把一種應(yīng)用程序中的數(shù)據(jù)動(dòng)態(tài)地鏈接到另一種應(yīng)用程序中,使兩種完全不同的應(yīng)用程序建立起

35、一條動(dòng)態(tài)數(shù)據(jù)鏈路。當(dāng)原始數(shù)據(jù)變化時(shí),可以自動(dòng)更新鏈接的數(shù)據(jù)。Visual Basic提供了動(dòng)態(tài)數(shù)據(jù)交換的編程技術(shù),可以在應(yīng)用程序中與其他Windows應(yīng)用程序建立動(dòng)態(tài)數(shù)據(jù)交換,在不同的應(yīng)用程序之間進(jìn)行通信。</p><p> ?。?)對(duì)象的鏈接與嵌入(OLE)</p><p>  對(duì)象的鏈接與嵌入(OLE)將每個(gè)應(yīng)用程序都看做是一個(gè)對(duì)象(object),將不同的對(duì)象鏈接(link)起來(lái),再

36、嵌入(embed)某個(gè)應(yīng)用程序中,從而可以得到具有聲音、影像、圖像、動(dòng)畫(huà)、文字等各種信息的集合式的文件。OLE技術(shù)是Microsoft公司對(duì)象技術(shù)的戰(zhàn)略,它把多個(gè)應(yīng)用程序合為一體,將每個(gè)應(yīng)用程序看做是一個(gè)對(duì)象進(jìn)行鏈接和嵌入,是一種應(yīng)用程序一體化的技術(shù)。利用OLE技術(shù),可以方便地建立復(fù)合式文檔(compound document),這種文檔由來(lái)自多個(gè)不同應(yīng)用程序的對(duì)象組成,文檔中的每個(gè)對(duì)象都與原來(lái)的應(yīng)用程序相聯(lián)系,并可執(zhí)行與原來(lái)應(yīng)用程序完

37、全相同的操作。</p><p> ?。?)動(dòng)態(tài)鏈接庫(kù)(DLL)</p><p>  Visual Basic是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,不具備低級(jí)語(yǔ)言的功能,對(duì)訪問(wèn)機(jī)器硬件的操作不太容易實(shí)現(xiàn)。但它可以通過(guò)動(dòng)態(tài)鏈接庫(kù)技術(shù)將C/C++或匯編語(yǔ)言編寫(xiě)的程序加入到Visual Basic應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語(yǔ)言編寫(xiě)的函數(shù)。此外,通過(guò)動(dòng)態(tài)鏈接庫(kù),還可以調(diào)用Windows應(yīng)用程序接口

38、(API)函數(shù),實(shí)現(xiàn)SDK所具有的功能。</p><p>  生成幫助文件及版本信息 </p><p>  專業(yè)水平的軟件通常都帶有聯(lián)機(jī)幫助功能。無(wú)論寫(xiě)出來(lái)的程序是要給大量的用戶使用,還是僅僅局限于公司內(nèi)部有限的使用者,我們都應(yīng)該為用戶提供詳細(xì)的、易于理解的聯(lián)機(jī)幫助文檔。微軟的Help Workshop4.0 是一套獨(dú)立于Visual Basic 的用來(lái)協(xié)助我們創(chuàng)建、運(yùn)行于32位Wi

39、ndows 操作系統(tǒng)下的幫助文件的工具。使用它我們可以為我們編寫(xiě)的應(yīng)用程序生成一組幫助文件。為了是程序顯得更具有專業(yè)風(fēng)格,首先可以在其中加入通常的應(yīng)用程序信息。這些信息包括公司名稱、版本號(hào)、修訂號(hào)以及其他類似信息。Visual Basic允許你使用APP對(duì)象來(lái)保存這些信息,APP對(duì)象是一個(gè)預(yù)定義對(duì)象,不需要在程序中創(chuàng)建它。APP對(duì)象的大多數(shù)屬性被應(yīng)用程序用來(lái)提供常規(guī)的信息,通過(guò)使用這些APP提供的屬性,可以在應(yīng)用程序和用戶之間交流重要信

40、息,在項(xiàng)目屬性框中可以設(shè)置它的屬性。</p><p>  SQLSERVER2000數(shù)據(jù)庫(kù)簡(jiǎn)介</p><p><b>  數(shù)據(jù)庫(kù)的概念</b></p><p>  數(shù)據(jù)庫(kù)是一種存儲(chǔ)數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行操作的工具。數(shù)據(jù)庫(kù)的作用在于組織和表達(dá)信息,簡(jiǎn)而言之,數(shù)據(jù)庫(kù)就是信息的集合。計(jì)算機(jī)的數(shù)據(jù)庫(kù)可以分為兩類:非關(guān)系數(shù)據(jù)庫(kù)(flat-file)和關(guān)系數(shù)據(jù)

41、庫(kù)(relational)。關(guān)系數(shù)據(jù)庫(kù)中包含了多個(gè)數(shù)據(jù)表的信息,數(shù)據(jù)庫(kù)含有各個(gè)不同部分的術(shù)語(yǔ),象記錄、域等。 </p><p>  微軟SQLSERVER2000簡(jiǎn)介</p><p>  SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本該版本繼承了SQL Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方

42、便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用</p><p>  ADO是訪問(wèn)由微軟推出的最新.功能最強(qiáng),且容易使用的數(shù)據(jù)訪問(wèn)實(shí)例(OLEDB)的應(yīng)用程序接口. 我們就是通過(guò)它以及創(chuàng)建Active X數(shù)據(jù)對(duì)象 </p><p>  V

43、B6.0與SQL數(shù)據(jù)庫(kù)二者的連接(ADO)</p><p>  ADO Recordset來(lái)訪問(wèn)SQLSEVER2000上的ODBC數(shù)據(jù)源.使用ADO控件可以方便的在VB6中訪問(wèn)ODBC數(shù)據(jù)庫(kù),但是通過(guò)直接放置ADODS控件來(lái)獲得ADO的數(shù)據(jù)連接比較麻煩,可以在VB工程中創(chuàng)建一個(gè)公共數(shù)據(jù)模塊,將ADO控件的初始化、建立連接、關(guān)閉連接等操作都寫(xiě)到函數(shù)中,這樣就可以在工程的其他模塊中共享調(diào)用這個(gè)ADO連接。一次完整的

44、ADO調(diào)用操作分為如下幾個(gè)步驟:</p><p>  (1)打開(kāi)ADO到數(shù)據(jù)庫(kù)的連接,初始化ADO RECORDSET集。 </p><p>  (2)通過(guò)寫(xiě)入SQL語(yǔ)句執(zhí)行查詢并返回查詢結(jié)果RECORDSET集;或者可以通過(guò)寫(xiě)入SQL語(yǔ)句執(zhí)行相應(yīng)數(shù)據(jù)庫(kù)操作。 </p><p>  (3)釋放RECORDSET集,關(guān)閉數(shù)據(jù)庫(kù)連接。需要注意的是,每個(gè)動(dòng)態(tài)創(chuàng)建的ADO同

45、時(shí)只能被一個(gè)過(guò)程調(diào)用,如果需要進(jìn)行多表并行操作,可能需要在公共數(shù)據(jù)模塊中建立多個(gè)動(dòng)態(tài)ADO。在本次設(shè)計(jì)中,由于我只設(shè)計(jì)了一個(gè)主模塊,所以直接將ADO控件的初始化、建立連接、關(guān)閉連接等操作都寫(xiě)到了最先調(diào)用的身份認(rèn)證函數(shù)中,就已經(jīng)可以滿足我對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)操作.</p><p>  通過(guò)ADO控件使Visual Basic程序與SQLSERVER數(shù)據(jù)庫(kù)之間架起了一座橋梁,我們可以很方便的通過(guò)修改程序中ADODC的參數(shù),

46、并通過(guò)SQL語(yǔ)句來(lái)指向數(shù)據(jù)庫(kù)的不同部分,從而方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作.</p><p><b>  系統(tǒng)分析設(shè)計(jì)</b></p><p><b>  系統(tǒng)功能簡(jiǎn)介</b></p><p>  經(jīng)過(guò)對(duì)比真實(shí)的銀行提款機(jī)系統(tǒng),本系統(tǒng)實(shí)現(xiàn)以下內(nèi)容:</p><p>  1.可以選擇中文和英文兩種語(yǔ)言服務(wù)

47、</p><p><b>  2身份認(rèn)證</b></p><p><b>  3.密碼修改</b></p><p><b>  4.取款.</b></p><p><b>  5.轉(zhuǎn)帳.</b></p><p><b> 

48、 6.查詢余額.</b></p><p><b>  7.查詢交易明細(xì)</b></p><p><b>  系統(tǒng)流程圖</b></p><p><b>  圖1系統(tǒng)流程圖</b></p><p>  系統(tǒng)開(kāi)發(fā)主要應(yīng)用技術(shù)</p><p>  

49、WINDOWS XP是時(shí)下最流行的電腦操作系統(tǒng)穩(wěn)定性安全性都非常不錯(cuò),而隨著ATM提款機(jī)逐步采用個(gè)人電腦,以及性能的升級(jí),WINXP也有了可能成為這些提款機(jī)的操作系統(tǒng),所以本次系統(tǒng)也在WINXP下進(jìn)行開(kāi)發(fā)。由于需要開(kāi)發(fā)出前臺(tái)客戶友好界面及后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng),而對(duì)于前臺(tái)只要能滿足其界面開(kāi)發(fā)需要即可,所以我采用了相對(duì)簡(jiǎn)單易用并且功能強(qiáng)大的VB6.0,后臺(tái)數(shù)據(jù)庫(kù)則采用了與之相連方便且功能同樣強(qiáng)大的SQLSERVER2000。采用以上兩個(gè)開(kāi)發(fā)軟件完

50、全能夠滿足ATM模擬系統(tǒng)的開(kāi)發(fā)需要。</p><p><b>  系統(tǒng)前臺(tái)設(shè)計(jì)</b></p><p>  系統(tǒng)主要是由前臺(tái)(客戶操作界面)與后臺(tái)(數(shù)據(jù)庫(kù))兩個(gè)部分組成。前臺(tái)部分整個(gè)代碼程序采用一個(gè)主模塊,在里面定義程序全局變量,把各種功能函數(shù)寫(xiě)入其中,每個(gè)界面制作一個(gè)獨(dú)立窗體,在各個(gè)窗體代碼中來(lái)調(diào)用主模塊中的各個(gè)函數(shù)來(lái),來(lái)實(shí)現(xiàn)相應(yīng)功能。界面部分由于08年奧運(yùn)會(huì)的臨近

51、,系統(tǒng)采用了幾副有關(guān)北京08奧運(yùn)會(huì)的卡通圖片,讓界面整體突出一種奧運(yùn)氣氛。通過(guò)可愛(ài)的卡通動(dòng)物也實(shí)現(xiàn)了友好親切的操作氛圍。 </p><p><b>  后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  經(jīng)過(guò)充分考慮,認(rèn)為系統(tǒng)并不需要非常復(fù)雜的數(shù)據(jù)庫(kù)系統(tǒng)就能夠達(dá)到模擬ATM系統(tǒng)的效果,所以建立了一個(gè)名為XQQ\ATM的SQL服務(wù)器,創(chuàng)建了名為USER的數(shù)據(jù)庫(kù),用戶登陸名為sa

52、密碼為空,并在ODBC數(shù)據(jù)源中將USER數(shù)據(jù)庫(kù)添加進(jìn)去。其中實(shí)際上只運(yùn)用到兩個(gè)表,一個(gè)用戶信息表和一個(gè)用戶操作表。</p><p><b>  表1 用戶信息表</b></p><p>  用戶信息表(如表1)用以存放用戶的卡號(hào),密碼,存款金額等信息,由于該系統(tǒng)是為了模擬運(yùn)用,故安全要求不高,所以密碼采用了明文方式存放,便于使用查看。本次模擬系統(tǒng)并不具有創(chuàng)建新用戶的功

53、能,用戶信息表上的內(nèi)容都是為了模擬而手動(dòng)添加的樣本用戶。 </p><p><b>  表2 用戶操作表</b></p><p>  用戶操作表(如表3)則用來(lái)記錄用戶在ATM機(jī)上所使用的服務(wù),它包括了所有用戶對(duì)ATM的操作信息,包括時(shí)間,操作類型,金額,轉(zhuǎn)帳卡號(hào),成功與否等等。用戶查詢明細(xì)的功能就是通過(guò)搜集檢索這張表來(lái)實(shí)現(xiàn)。同時(shí)管理人員也可以從這張表上很方便的查閱用

54、戶使用情況。當(dāng)然,真實(shí)的銀行ATM系統(tǒng),其后臺(tái)的數(shù)據(jù)庫(kù)系統(tǒng)肯定是十分龐大的一個(gè)系統(tǒng),對(duì)保密性的要求也非常的高,在這次的模擬中當(dāng)然不可能達(dá)到那樣的要求。</p><p><b>  系統(tǒng)功能的實(shí)現(xiàn)</b></p><p><b>  歡迎界面實(shí)現(xiàn) </b></p><p><b>  圖2 歡迎界面</b&g

55、t;</p><p>  在歡迎界面(如圖2)我們可以自由的選擇兩種語(yǔ)言,分別為我們最常用的中文和英語(yǔ),在這里主模塊中定義了一個(gè)非常重要的INT整型變量i,通過(guò)i的值來(lái)決定所選擇的服務(wù)。任意點(diǎn)擊一種服務(wù)都將進(jìn)入登陸界面。</p><p>  Private Sub Command1_Click()</p><p>  i = 2 當(dāng)點(diǎn)中文按鈕時(shí),i的值就被賦為了2,

56、在后面的操作中,i的值就將始終為2,用以區(qū)別所選語(yǔ)言服務(wù)</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 點(diǎn)ENGLISH按鈕時(shí) i的值賦1 </p><p>  Unload Form1</p><p>  Form2.Show</p><p><b>  End Sub</b></p><p><b>  登陸的實(shí)現(xiàn)</b></p><p>  在登陸界面有兩種語(yǔ)言

58、可以為用戶服務(wù),一是中文,而是英文。選擇兩種語(yǔ)言的功能和界面背景實(shí)際上都是完全一致的,只是語(yǔ)言文字不同。如圖3為選擇中文的界面: </p><p>  圖 3 登陸界面(中文)</p><p>  如果點(diǎn)擊的是ENGLISH, 則登陸界面為圖4</p><p>  圖4 登陸界面(英文)</p><p>  這里的兩個(gè)界面并非

59、通過(guò)兩個(gè)窗體單獨(dú)實(shí)現(xiàn)而是共用一個(gè)窗體,通過(guò)判斷i的值,對(duì)label中的CAPTION進(jìn)行相應(yīng)的中文和英文賦值。后面的操作界面同樣也是采用這種方法,就不再做英文的界面介紹。這里把默認(rèn)的語(yǔ)言選擇為中文直接在窗體編輯菜單中對(duì)CAPTION進(jìn)行了相應(yīng)賦值。如果為英文則需執(zhí)行下面的語(yǔ)句,此后的每個(gè)界面語(yǔ)言確定及實(shí)現(xiàn)都是通過(guò)采取這個(gè)方法</p><p>  Private Sub Form_Load()</p>

60、<p>  If i = 1 Then //判斷i的值 如果為1則進(jìn)行英文賦值</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>  在窗體中我們首先來(lái)判斷用戶輸入的卡號(hào)和密碼是否符合我們的規(guī)定。卡號(hào)為8位密碼為6位</p><p

62、>  Private Sub Command1_Click() //當(dāng)我們點(diǎn)下確認(rèn)按鈕時(shí)</p><p>  If i = 2 Then</p><p>  If Len(Text1.Text) <> 8 Or Len(Text2.Text) <> 6 Then // 比較卡號(hào)是否為8位及密碼是否為6位</p><p>

63、;  Form3.Show</p><p>  Form3.Label1.Caption = "沒(méi)有正確輸入卡號(hào)或密碼"</p><p>  Text1.Text = ""</p><p>  Text2.Text = ""</p><p><b>  Else</b

64、></p><p>  Call Checkuser //這里是調(diào)用主模塊中的身份驗(yàn)證函數(shù),在后面的窗體實(shí)現(xiàn)中都是通過(guò)</p><p>  CALL語(yǔ)句來(lái)直接調(diào)用相應(yīng)函數(shù)的 </p><p><b>  End If</b></p><p>  End If //以下為用戶選擇

65、英語(yǔ)的代碼,和選擇中文時(shí)是一樣的,在后面的介紹中將不在引用英語(yǔ)的代碼</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中身份驗(yàn)證函數(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"// 這段語(yǔ)句采用了動(dòng)態(tài)連接數(shù)據(jù)庫(kù)的方法與數(shù)據(jù)庫(kù)USER進(jìn)行連接,采用的是SQL OLEDB應(yīng)用接口。</p><p>  CON.Open strr </p><p>  u = Form2.Text1.Text 把卡號(hào)賦給

70、u</p><p>  str = "select 密碼 from 用戶信息 where 卡號(hào)='" & u & "'" //SQL數(shù)據(jù)庫(kù)查詢語(yǔ)句,根據(jù)卡號(hào)把所查詢的密碼數(shù)據(jù)放入str中</p><p>  Set RS = New ADODB.Recordset //設(shè)置RS為新的Recordset對(duì)象

71、</p><p>  RS.Open str, CON, adOpenDynamic, adLockPessimistic</p><p>  If RS.EOF = True Then //當(dāng)前記錄指針無(wú)效,說(shuō)明不存在這個(gè)用戶</p><p>  If i = 2 Then</p><p>  Form3.Show</p&

72、gt;<p>  Form3.Label1.Caption = " 沒(méi)有此用戶,請(qǐng)檢查并重新輸入!"</p><p>  u = "" // u重新設(shè)置為空</p><p>  接下來(lái)就是比較從所輸卡號(hào)中取出的密碼與用戶輸入的密碼進(jìn)行比較</p><p>  If

73、Trim(RS.Fields(0)) = Trim(Form2.Text2.Text) Then '//檢驗(yàn)密碼是否相同</p><p>  Form4.Show //密碼相同轉(zhuǎn)入服務(wù)界面</p><p><b>  RS.Close </b></p><p>  Unload Form2</p>

74、<p>  在窗體中直接通過(guò)程序代碼調(diào)用在模塊中的Checkuser函數(shù)即可,后面的界面都是采用這種方法,都不再進(jìn)行仔細(xì)說(shuō)明。 </p><p><b>  主界面實(shí)現(xiàn)</b></p><p><b>  圖 5 服務(wù)界面</b></p><p>  在主界面中(如圖5)有5個(gè)服務(wù)按鈕 設(shè)置了一個(gè)整型變量j,在

75、點(diǎn)擊各種服務(wù)的同時(shí),J也被賦予了不同的數(shù)值,用以后面記錄用戶操作信息,寫(xiě)入數(shù)據(jù)庫(kù)。</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>  查詢余額功能的實(shí)現(xiàn)</b></p><p>  查詢功能的實(shí)現(xiàn)相對(duì)來(lái)說(shuō)就非常簡(jiǎn)單了,直接連接數(shù)據(jù)庫(kù),搜索到相應(yīng)的數(shù)據(jù)后輸出到文本框中即可

81、(如圖6)</p><p>  在主模塊中的查詢函數(shù):</p><p>  Public Sub Query()</p><p>  Dim str2 As String</p><p>  str2 = "select * from 用戶信息 where 卡號(hào)='" & 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>  取款功能的實(shí)現(xiàn)</b></p><p><b>  圖7 取款界面</b></p><p>  取款函數(shù)相對(duì)于其他函數(shù)就相對(duì)復(fù)雜一點(diǎn),因?yàn)橛泻芏嗲闆r需要判斷,列如只能取50與100的整數(shù),就需要對(duì)50取模,還需要判斷所取金額是否

84、大于卡上的余額,余額不足那也是沒(méi)法成功取款的。用戶取了一定數(shù)量的錢(qián)后還需要把新的數(shù)據(jù)重新寫(xiě)入數(shù)據(jù)庫(kù)。</p><p>  Public Public Sub TakeMoney()</p><p>  Dim str1 As String</p><p>  str1 = "select * from 用戶信息 where 卡號(hào)='" &

85、amp; u & "'"</p><p>  Set RS = New ADODB.Recordset</p><p>  RS.Open str1, CON, adOpenDynamic, adLockPessimistic 前面也是對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,并把用戶信息根據(jù)所輸卡號(hào)輸入到記錄集中。</p><p>  If i =

86、2 Then //在中文服務(wù)下</p><p>  m = Form5.Text1.Text</p><p>  If m = "" Then //m為空,說(shuō)明用戶沒(méi)有輸入金額</p><p>  k = 0 //這里的K為全局變量 ,在后面數(shù)據(jù)庫(kù)對(duì)用戶操作表進(jìn)行寫(xiě)入時(shí)非常有用,k的值標(biāo)識(shí)操作的成功與否,k=0操作

87、失敗,k=1則為成功 </p><p>  Form3.Show</p><p>  Form3.Label1.Caption = "請(qǐng)您正確輸入金額!"</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 = "請(qǐng)您正確輸入金額!"</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 //排除所有不正確情況,即輸入正確,則對(duì)k賦值為1 標(biāo)識(shí)操作成功</p><p>  Money = RS.Fields("金額")</p><p>  RS.Fields("金額") = (Money - Form5.Text1.Text) // 表

92、中用戶金額減去所取金額</p><p>  RS.Update // 將新的數(shù)據(jù)寫(xiě)入所取位置</p><p><b>  RS.Close</b></p><p>  Call InsertDatabase '//把操作插入用戶操作表,這個(gè)函數(shù)將在后面介紹其功能</p><p>  Unload Form5&l

93、t;/p><p>  Form9.Show</p><p>  Form9.Label1.Caption = "交易成功,謝謝您的使用,請(qǐng)拿好您的鈔票!"</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>  轉(zhuǎn)賬功能的實(shí)現(xiàn)</b></p><p>  轉(zhuǎn)帳功能要求用戶輸入對(duì)方卡號(hào)及轉(zhuǎn)帳金額,并且對(duì)方卡號(hào)也必須是在數(shù)據(jù)庫(kù)中存在的卡號(hào),否則會(huì)出錯(cuò),這里對(duì)數(shù)額上沒(méi)有要求,并不要求是整數(shù),可隨意輸入轉(zhuǎn)帳金額 。 </

95、p><p><b>  圖8 轉(zhuǎn)賬界面</b></p><p>  在程序?qū)崿F(xiàn)中,同樣要對(duì)用戶輸入的信息要驗(yàn)證其正確性,對(duì)方卡號(hào)必須真實(shí)存在,所輸入金額不得超過(guò)卡上金額等等。 </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 卡號(hào)='" & transcard & "'"</p><p&g

97、t;  Set RS = New ADODB.Recordset </p><p>  RS.Open str3, CON, adOpenDynamic, adLockPessimistic //數(shù)據(jù)庫(kù)連接</p><p>  If i = 2 Then</p><p>  If Form7.Text2.Text = "" Or Form7

98、.Text1.Text = "" Then // 輸入卡號(hào)或輸入金額為空 則出錯(cuò)</p><p><b>  k = 0</b></p><p>  Form3.Show</p><p>  Form3.Label1.Caption = "請(qǐng)你正確輸入!"</p><p>  Fo

99、rm7.Text1.Text = ""</p><p>  Form7.Text2.Text = ""</p><p>  Call InsertDatabase //每出現(xiàn)一次錯(cuò)誤就調(diào)用數(shù)據(jù)庫(kù)寫(xiě)入函數(shù)。對(duì)用戶操作信息表進(jìn)行添加操作信息。此函數(shù)將在后面介紹</p><p><b>  Exit Sub</b&g

100、t;</p><p><b>  End If</b></p><p>  If RS.EOF = True Then //記錄集中沒(méi)有所輸入卡號(hào)的用戶 則出錯(cuò)</p><p><b>  k = 0</b></p><p>  Form3.Show</p><p>  F

101、orm3.Label1.Caption = "沒(méi)有此用戶,請(qǐng)檢查并重新輸入!"</p><p>  Call InsertDatabase</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If trans

102、card = u Then //轉(zhuǎn)帳卡號(hào)與實(shí)施轉(zhuǎn)帳操作的卡號(hào)相同,則出錯(cuò)</p><p><b>  k = 0</b></p><p>  Form3.Show</p><p>  Form3.Label1.Caption = "操作錯(cuò)誤,同帳戶不可以轉(zhuǎn)帳!"</p><p>  Call Inse

103、rtDatabase</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  str6 = "select * from 用戶信息 where 卡號(hào)='" & 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 = "金額不足以轉(zhuǎn)帳,請(qǐng)你重新輸入"</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>  在排除了不正確的情況后,將轉(zhuǎn)入確認(rèn)信息界面,如圖9,在

108、確認(rèn)信息窗體中將調(diào)用trans2函數(shù),對(duì)交易成功后的數(shù)據(jù)進(jìn)行更新</p><p><b>  圖 9 確認(rèn)界面</b></p><p>  Public Sub Trans2()</p><p>  Dim str4 As String</p><p>  str4 = "select * from 用戶信息

109、where 卡號(hào)='" & 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 //對(duì)轉(zhuǎn)出錢(qián)的卡號(hào)減少相應(yīng)數(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 卡號(hào)='" & 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 //所轉(zhuǎn)入的卡號(hào)加上相應(yīng)數(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 = "恭喜您轉(zhuǎn)帳成功!"</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 //調(diào)用數(shù)據(jù)庫(kù)寫(xiě)入函數(shù)</p>

115、<p><b>  End Sub</b></p><p><b>  密碼修改功能的實(shí)現(xiàn)</b></p><p>  圖10 修改密碼界面</p><p>  在密碼修改界面中(如圖10)需要用戶兩次輸入的密碼相一致,否則不能進(jìn)行修改,密碼兩次輸入正確后,程序?qū)⑿碌拿艽a寫(xiě)入原來(lái)位置。</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//比較兩次密碼長(zhǎng)度是否符合6位的要求</p><p><b>  k =

117、 0</b></p><p>  Form3.Show</p><p>  Form3.Label1.Caption = "請(qǐng)正確輸入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 = "您兩次輸入的密碼不一致,請(qǐng)檢查!"</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 卡號(hào)='" & 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 = "密碼修改成功,請(qǐng)記好您的新密碼!"</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>  查詢交易明細(xì)功能的實(shí)現(xiàn)</p><p>  圖11 查詢明細(xì)界面</p>&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論