版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 前言</b></p><p> 介紹本課題的目的和意義</p><p> 隨著時(shí)代的進(jìn)步,生活節(jié)奏的加快,越來(lái)越多的人進(jìn)入銀行。在銀行業(yè)務(wù)量爆炸式增長(zhǎng)的時(shí)候,ATM已經(jīng)開(kāi)始悄悄的走入人們的生活。ATM機(jī)作為銀行服務(wù)的擴(kuò)展終端,大大的提高了銀行離柜業(yè)務(wù)辦理能力,24小時(shí)為客戶提供最基礎(chǔ)的銀行服務(wù),使得銀行客戶在面對(duì)長(zhǎng)長(zhǎng)的隊(duì)伍時(shí)有更加主動(dòng)
2、的選擇。ATM設(shè)備已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡闹匾O(shè)備。因此我決定學(xué)習(xí)了解ATM設(shè)備的工作愿意,探究ATM機(jī)的工作機(jī)制,并自行模擬ATM系統(tǒng)能。</p><p> 第二節(jié) 國(guó)內(nèi)外發(fā)展概況及存在問(wèn)題</p><p> 隨著銀行業(yè)務(wù)的擴(kuò)展,業(yè)務(wù)量的增長(zhǎng),人們的生活和銀行連接的越來(lái)越緊密,這個(gè)時(shí)候銀行的長(zhǎng)龍開(kāi)始出現(xiàn),銀行方面不得不投入巨大的來(lái)那個(gè)人難以想象的人力和物力來(lái)解決個(gè)人儲(chǔ)戶的存取
3、款的問(wèn)題,在1969年漢華銀行(Chemical Bank)的一個(gè)廣告拉開(kāi)了這場(chǎng)革命的序幕: “我行將在 9 月 2 日早晨九點(diǎn)開(kāi)門(mén)后永不關(guān)門(mén)!”漢華銀行在紐約長(zhǎng)島北村街 10 號(hào)的洛克維爾中心(Rockville Centre)設(shè)有一家分行。從那天起,凡持該行帶磁條塑料卡的客戶再也不用排隊(duì)等候銀行出納員為他們兌現(xiàn)支票。銀行在大街的一面墻上安裝了一臺(tái)機(jī)器,客戶可以通過(guò)它隨時(shí)取款。這個(gè)時(shí)候第一臺(tái)真正意義上的ATM機(jī)投入使用,一直到現(xiàn)在,在
4、我國(guó)在大街小巷也能看到各個(gè)銀行的ATM柜員機(jī)在工作。</p><p> 相比國(guó)外國(guó)內(nèi)的ATM機(jī)起步較晚,ATM(Auto Teller Machine)稱自動(dòng)取款機(jī),實(shí)質(zhì)是一種集光、機(jī)、電技術(shù)的銀行業(yè)自動(dòng)化設(shè)備。我國(guó)的ATM是伴隨著銀行卡業(yè)務(wù)的成長(zhǎng)而逐步發(fā)展起來(lái)的,為了滿足持卡人在銀行營(yíng)業(yè)時(shí)間外也能夠用卡存、取款,銀行投資并安裝了ATM,以此提供24小時(shí)的自助服務(wù)。1987年2月,我國(guó)第一臺(tái)ATM在廣東珠海投入
5、使用。1993 年我國(guó)“金卡工程”啟動(dòng)后,國(guó)內(nèi)銀行對(duì)ATM 需求激增。1998年,全國(guó)ATM突破2萬(wàn)臺(tái)。進(jìn)入21世紀(jì)后,ATM數(shù)量速度迅猛。到2007年底,中國(guó)聯(lián)網(wǎng)ATM機(jī)已經(jīng)達(dá)到12.3萬(wàn)臺(tái),近5年國(guó)內(nèi)ATM設(shè)備保有量實(shí)現(xiàn)了年均20.22%的復(fù)合增長(zhǎng),整體ATM機(jī)市場(chǎng)保有量已經(jīng)達(dá)到13.8萬(wàn)臺(tái),預(yù)計(jì)2011年會(huì)達(dá)到20萬(wàn)臺(tái)。ATM是社會(huì)發(fā)展過(guò)程中電子技術(shù)與銀行業(yè)務(wù)完美結(jié)合的產(chǎn)物之一,信息技術(shù)的創(chuàng)新推動(dòng)著ATM向更加智能化和人性化的方向
6、發(fā)展?,F(xiàn)在的ATM機(jī)使用方便、界面更加友好,為廣大客戶提供了一種便捷的自助服務(wù)方式,不但增強(qiáng)了銀行服務(wù)的靈活性,而且提升了銀行的整體形象。</p><p> 現(xiàn)在國(guó)內(nèi)主要生產(chǎn)廠家有:廣電運(yùn)通、深圳怡化;廣州御銀、廣州廣利、深圳新達(dá)通等。雖然起步較晚,但是發(fā)展勢(shì)頭良好,在短短的幾年之內(nèi)實(shí)現(xiàn)了年均20%多的增長(zhǎng)率。隨著ATM機(jī)功能的復(fù)雜化,界面越來(lái)越良好。相信會(huì)有更加良好的發(fā)展前景</p><p
7、> 當(dāng)然在飛速發(fā)展的同時(shí)也存在很多的問(wèn)題</p><p> 沒(méi)有樹(shù)立正確的ATM經(jīng)營(yíng)發(fā)展理念</p><p> 大部分商業(yè)銀行是將ATM作為形象宣傳或者營(yíng)業(yè)網(wǎng)點(diǎn)的補(bǔ)充,沒(méi)有樹(shù)立起一種新的經(jīng)營(yíng)理念,對(duì)ATM缺乏科學(xué)管理和經(jīng)濟(jì)效益的考核,導(dǎo)致銀行在確定ATM安裝選點(diǎn)時(shí)沒(méi)有考慮經(jīng)濟(jì)效益,更多地考慮銀行形象和減輕網(wǎng)點(diǎn)人員的工作壓力。</p><p> ?。ǘ└?/p>
8、商業(yè)銀行對(duì)ATM管理不規(guī)范</p><p> 首先是銀行間管理差距較大,有些商業(yè)銀行的形象設(shè)計(jì)不夠人性化。有的銀行功能齊全、形象統(tǒng)一,設(shè)備維護(hù)保養(yǎng)好;但也有的銀行功能單一、外觀五花八門(mén),各類操作標(biāo)識(shí)和提示牌隨意張貼。其次,對(duì)于因ATM的設(shè)備問(wèn)題導(dǎo)致客戶遇到錯(cuò)賬、出鈔故障等的解決處理也沒(méi)有統(tǒng)一的服務(wù)承諾。</p><p><b> ATM布局不合理</b></
9、p><p> 從ATM交易量分析,業(yè)務(wù)量較大的地區(qū)主要集中在經(jīng)濟(jì)發(fā)展熱點(diǎn)地區(qū)、繁華商業(yè)區(qū)、大型居民社區(qū)、大型批發(fā)市場(chǎng)周邊,經(jīng)常出現(xiàn)排隊(duì)取款的現(xiàn)象。而偏遠(yuǎn)地區(qū)和城填的交易量較小。應(yīng)該實(shí)際狀況進(jìn)行調(diào)整,交易量多的地區(qū)可以多裝,少的地區(qū)可以少裝或不裝,以講究實(shí)效、降低交易成本。</p><p> 目前ATM功能單一、技術(shù)安全還待進(jìn)一步提高</p><p> 大多數(shù)的AT
10、M僅有修改密碼、查詢、取現(xiàn)等功能。隨著中間業(yè)務(wù)的發(fā)展,ATM應(yīng)開(kāi)發(fā)多種業(yè)務(wù),既方便客戶也減輕柜臺(tái)壓力。此外,各地ATM技術(shù)故障事件屢見(jiàn)報(bào)端,如重慶觀音橋步行街郵政儲(chǔ)蓄A(yù)TM機(jī)取出48張同號(hào)百元假鈔事件、“許霆案”等</p><p><b> 第三節(jié) 相關(guān)技術(shù)</b></p><p> 一 C#3.0技術(shù)簡(jiǎn)介</p><p> C#3.0在
11、原有的基礎(chǔ)上改變了很多,再加上和VS2008一起推出,絕對(duì)有理由進(jìn)入到一般編程愛(ài)好者的視野之中</p><p> 第一個(gè)特性:隱式類型化本地變量</p><p> 這個(gè)特性非常簡(jiǎn)單,有些JavaScript的影子,我們可以統(tǒng)一使用使用"var"關(guān)鍵字來(lái)聲明局部變量,而不再需要指明變量的確切類型了,變量的確切類型可通過(guò)聲明變量時(shí)的初始值推斷出來(lái)。這樣一來(lái),可以大大簡(jiǎn)化
12、我們聲明局部變量的工作量了。</p><p> 第二個(gè)特性:匿名類型</p><p> 有些時(shí)候我們需要臨時(shí)保存一些運(yùn)算的中間結(jié)果,特別是當(dāng)這些中間結(jié)果是由多個(gè)部份組成時(shí),我們常常會(huì)去聲明一個(gè)新的類型,以方便保存這些中間結(jié)果。表面上看起來(lái)這很正常,而細(xì)想之后就會(huì)發(fā)現(xiàn),這個(gè)新類型只服務(wù)于這個(gè)函數(shù),其它地方都不會(huì)再使用它了,就為這一個(gè)函數(shù)而去定義一個(gè)新的類型,確實(shí)有些麻煩。</p&g
13、t;<p> 第三個(gè)特性:隱式類型化數(shù)組</p><p> 這個(gè)特性是對(duì)隱式類型化本地變量的擴(kuò)展,有了這個(gè)特性,將使我們創(chuàng)建數(shù)組的工作變得簡(jiǎn)單。我們可以直接使用"new[]"關(guān)鍵字來(lái)聲明數(shù)組,后面跟上數(shù)組的初始值列表。在這里,我們并沒(méi)有直接指定數(shù)組的類型,數(shù)組的類型是由初始化列表推斷出來(lái)的。 </p><p> 第四個(gè)特性:對(duì)象構(gòu)造者</p&g
14、t;<p> 我們?cè)诼暶鲾?shù)組時(shí),可以同時(shí)對(duì)其進(jìn)行初始化,這樣就省去了很多麻煩,但是在創(chuàng)建類的對(duì)象時(shí),這招可就不靈了,我們要么調(diào)用該類的構(gòu)造函數(shù)完成對(duì)象的初始化,要么就手工進(jìn)行初始化。這兩種方法都不太方便,使用構(gòu)造函數(shù)來(lái)對(duì)對(duì)象進(jìn)行初始化時(shí),我們?yōu)榱四撤N靈活性,可能需要編寫(xiě)構(gòu)造函數(shù)的多個(gè)重載版本,實(shí)在是麻煩。C#3.0中加入的對(duì)象構(gòu)造者特性,使得對(duì)象的初始化工作變得格外簡(jiǎn)單,我們可以采用類似于數(shù)組初始化的方式來(lái)初始化類的對(duì)象
15、,方法就是直接在創(chuàng)建類對(duì)象的表達(dá)式后面跟上類成員的初始化代碼。</p><p> 第五個(gè)特性:集合構(gòu)造者</p><p> 我們可以在聲明數(shù)組的同時(shí),為其指定初始值,方法是直接在數(shù)組聲明的后面跟上初始值列表。這樣就使數(shù)組的初始化工作變得簡(jiǎn)單,而對(duì)于我們自己創(chuàng)建的集合類型,就無(wú)法享受到與普通數(shù)組一樣的待遇了,我們無(wú)法在創(chuàng)建自定義集合對(duì)象的同時(shí),使用數(shù)組的初始化語(yǔ)法為其指定初始值。 C
16、# 3.0中加入的集合構(gòu)造者特性,可使我們享受到與普通數(shù)組一樣的待遇,從而在創(chuàng)建集合對(duì)象的同時(shí)為其指定初始值。為了做到這一點(diǎn),我們需要讓我們的集合實(shí)現(xiàn)ICollection<T>接口,在這個(gè)接口中,完成初始化操作的關(guān)鍵在于Add函數(shù),當(dāng)我使用初始化語(yǔ)法為集合指定初始值時(shí),C#編譯器將自動(dòng)調(diào)用ICollection<T>中的Add函數(shù)將初始列表中的所有元素加入到集合中,以完成集合的初始化操作。</p>
17、<p> 第六個(gè)特性:Lambda表達(dá)式</p><p> C# 2.0中加入的匿名代理,簡(jiǎn)化了我們編寫(xiě)事件處理函數(shù)的工作,使我們不再需要單獨(dú)聲明一個(gè)函數(shù)來(lái)與事件綁定,只需要使用delegate關(guān)鍵字在線編寫(xiě)事件處理代碼。而C# 3.0則更進(jìn)一步,通過(guò)Lambda表達(dá)式,我們可以一種更為簡(jiǎn)潔方式編寫(xiě)事件處理代碼,新的Lambda事件處理代碼看上去就像一個(gè)計(jì)算表達(dá)式,它使用"=>&q
18、uot;符號(hào)來(lái)連接事件參數(shù)和事件處理代碼。我可以這樣寫(xiě):SomeEvent += 事件參數(shù) => 事件處理代碼;</p><p> 第七個(gè)特性:擴(kuò)展方法</p><p> 當(dāng)我們需要對(duì)已有類的功能進(jìn)行擴(kuò)展時(shí),我們通常會(huì)想到繼承,繼承已有類,然后為其加入新的行為。而C# 3.0中加入的擴(kuò)展方法特性,則提供了另一種實(shí)現(xiàn)功能擴(kuò)展的方式,我們可以在不使用繼承的前提下實(shí)現(xiàn)對(duì)已有類本身的擴(kuò)展
19、,這種方法并不會(huì)產(chǎn)生新的類型,而是采用向已有類中加入新方法的方式來(lái)完成功能擴(kuò)展。在對(duì)已有類進(jìn)行擴(kuò)展時(shí),我們需將所有擴(kuò)展方法都寫(xiě)在一個(gè)靜態(tài)類中,這個(gè)靜態(tài)類就相當(dāng)于存放擴(kuò)展方法的容器,所有的擴(kuò)展方法都可以寫(xiě)在這里面。而且擴(kuò)展方法采用一種全新的聲明方式:public static 返回類型 擴(kuò)展方法名(this 要擴(kuò)展的類型 sourceObj [,擴(kuò)展方法參數(shù)列表]),與普通方法聲明方式不同,擴(kuò)展方法的第一個(gè)參數(shù)以this關(guān)鍵字開(kāi)始,后跟被
20、擴(kuò)展的類型名,然后才是真正的參數(shù)列表。</p><p> 第八個(gè)特性:Linq查詢表達(dá)式</p><p> C# 3.0中加入的最為復(fù)雜的特性就是Linq查詢表達(dá)式了,這使我們可直接采用類似于SQL的語(yǔ)法對(duì)集合進(jìn)行查詢,這就使我們可以享受到關(guān)系數(shù)據(jù)查詢的強(qiáng)大功能。Linq查詢表達(dá)式是建立在多種C# 3.0的新特性之上的</p><p> 二 ADO.NET連接
21、數(shù)據(jù)庫(kù)技術(shù)</p><p> 1、 Dataset</p><p> 許多ado.net的工作都是圍繞一個(gè)對(duì)象dataset來(lái)展開(kāi)工作的,dataset是從數(shù)據(jù)庫(kù)查詢得來(lái)的緩存信息。dataset最革命性的特點(diǎn)是它是無(wú)連接的并且同時(shí)可以存儲(chǔ)多個(gè)表并且可以定義他們之間的關(guān)系。</p><p><b> 2、 無(wú)連接特性</b></
22、p><p> 無(wú)連接特性是ado.net最重要的特點(diǎn),在先前的連接都是在代碼工作的時(shí)候保持?jǐn)?shù)據(jù)庫(kù)連接,可以保持即時(shí)的更新但是它限制了連接的數(shù)目。無(wú)連接就不會(huì)出現(xiàn)這樣的問(wèn)題。</p><p> 但是無(wú)連接也會(huì)帶一些新的問(wèn)題,它很容易造成不一致的更新。但是ado.net提供了一套特性來(lái)解決這些問(wèn)題。</p><p><b> 3、 XML集成</b&
23、gt;</p><p> Ado.net很好的支持XML,當(dāng)你用dataset對(duì)象時(shí)這個(gè)事實(shí)可能不是很明顯,那是因?yàn)閐ataset的內(nèi)置方法和屬性可以很好的完成你需要管理的數(shù)據(jù)。但是如果你深入研究,你將會(huì)發(fā)現(xiàn)你接觸dataset中的信息是作為一個(gè)xml文檔。你甚至可以通過(guò)修改XML來(lái)修改值和刪除行和增加記錄,這個(gè)dataset會(huì)立馬更新。</p><p> Ado.net 的功能主要依
24、賴于一小部分核心對(duì)象的集合??梢詫⑦@些對(duì)象分成兩部分:</p><p> 1、容納和管理數(shù)據(jù)的對(duì)象(比如dataset,datatable,datarow,datareleation)</p><p> 2、用來(lái)連接某些數(shù)據(jù)源(比如 connection,command,datareader數(shù)據(jù)容器對(duì)象是完全通用的,無(wú)論你使用什么數(shù)據(jù)源,一旦你提取了數(shù)據(jù),都是用同一個(gè)dataset類來(lái)
25、存儲(chǔ)。</p><p> 第二組對(duì)象存在很多不同的形式。數(shù)據(jù)連接對(duì)象的每一個(gè)集合都被稱為ado.net data provider. Data providers都是自定義的,所以每一個(gè)都用自己最好的表現(xiàn)方式來(lái)連接它形相應(yīng)的數(shù)據(jù)源。比如說(shuō)SQL Server data provider是為SQL SERVER 7或以后版本而設(shè)計(jì)的。在內(nèi)部,它用SQL Server’sTDS(tabular data strea
26、m)協(xié)議來(lái)進(jìn)行通信,這樣就能保證他最好的表現(xiàn)形式</p><p> 常用的編程語(yǔ)言有C,C++,JAVA等。</p><p><b> (一) C</b></p><p><b> C語(yǔ)言的特點(diǎn) </b></p><p> 簡(jiǎn)潔緊湊、靈活方便 </p><p>
27、; C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫(xiě)自由,主要用小寫(xiě)字母表示。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。 C 語(yǔ)言可以象匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。 </p><p><b> 運(yùn)算符豐富 </b></p><p> C的運(yùn)算符包含的范圍很廣泛,共有種34個(gè)運(yùn)算符。C語(yǔ)言把括號(hào)
28、、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。</p><p><b> 數(shù)據(jù)結(jié)構(gòu)豐富</b></p><p> C的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外
29、C語(yǔ)言具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。</p><p> C是結(jié)構(gòu)式語(yǔ)言 </p><p> 結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護(hù)以及調(diào)試。C語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程
30、序完全結(jié)構(gòu)化。 5. C語(yǔ)法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大 </p><p> 一般的高級(jí)語(yǔ)言語(yǔ)法檢查比較嚴(yán),能夠檢查出幾乎所有的語(yǔ)法錯(cuò)誤。而C語(yǔ)言允許程序編寫(xiě)者有較大的自由度。 </p><p> C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作 </p><p> 因此既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,能夠象匯編語(yǔ)言一樣對(duì)位
31、、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可以用來(lái)寫(xiě)系統(tǒng)軟件。</p><p> C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高 </p><p> 一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。 </p><p> C語(yǔ)言適用范圍大,可移植性好 </p><p> C語(yǔ)言有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng),
32、如DOS、UNIX,也適用于多種機(jī)型。用法補(bǔ)充:C語(yǔ)言對(duì)操作系統(tǒng)和系統(tǒng)使用程序以及需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語(yǔ)言明顯優(yōu)于其它高級(jí)語(yǔ)言,許多大型應(yīng)用軟件都是用C語(yǔ)言編寫(xiě)的。C語(yǔ)言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà)它是數(shù)值計(jì)算的高級(jí)語(yǔ)言</p><p><b> ?。ǘ㎎AVA</b></p><p>
33、面向?qū)ο螅浩鋵?shí)是現(xiàn)實(shí)世界模型的自然延伸?,F(xiàn)實(shí)世界中任何實(shí)體都可以看作是對(duì)象。對(duì)象之間通過(guò)消息相互作用。另外,現(xiàn)實(shí)世界中任何實(shí)體都可歸屬于某類事物,任何對(duì)象都是某一類事物的實(shí)例。如果說(shuō)傳統(tǒng)的過(guò)程式編程語(yǔ)言是以過(guò)程為中心以算法為驅(qū)動(dòng)的話,面向?qū)ο蟮木幊陶Z(yǔ)言則是以對(duì)象為中心以消息為驅(qū)動(dòng)。用公式表示,過(guò)程式編程語(yǔ)言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z(yǔ)言為:程序=對(duì)象+消息。 所有面向?qū)ο缶幊陶Z(yǔ)言都支持三個(gè)概念:封裝、多態(tài)性和繼承,Java也不例
34、外。現(xiàn)實(shí)世界中的對(duì)象均有屬性和行為,映射到計(jì)算機(jī)程序上,屬性則表示對(duì)象的數(shù)據(jù),行為表示對(duì)象的方法(其作用是處理數(shù)據(jù)或同外界交互)。所謂封裝,就是用一個(gè)自主式框架把對(duì)象的數(shù)據(jù)和方法聯(lián)在一起形成一個(gè)整體??梢哉f(shuō),對(duì)象是支持封裝的手段,是封裝的基本單位。Java語(yǔ)言的封裝性較強(qiáng),因?yàn)镴ava無(wú)全程變量,無(wú)主函數(shù),在Java中絕大部分成員是對(duì)象,只有簡(jiǎn)單的數(shù)字類型、字符類型和布爾類型除外。而對(duì)于這些類型,Java也提供了相應(yīng)的對(duì)象類型以便與其他
35、對(duì)象交互操作。 </p><p> 可移植性:就是在這個(gè)系統(tǒng)上作的程序經(jīng)過(guò)一次編譯后可以移植到別的系統(tǒng)上解釋執(zhí)行,只要經(jīng)過(guò)簡(jiǎn)單的粘貼和復(fù)制就行了,不影響程序的效果</p><p> 安全性:在 iSeries 服務(wù)器上運(yùn)行的大多數(shù) Java(TM) 程序是應(yīng)用程序,而不是 applet,所以“砂箱”安全性模型對(duì)它們不起限制作用。從安全性的觀點(diǎn)看,Java 應(yīng)用程序所受的安全性限
36、制與 iSeries 服務(wù)器上的任何其它程序相同。要在 iSeries 服務(wù)器上運(yùn)行 Java 程序,您必須對(duì)集成文件系統(tǒng)中的類文件具有權(quán)限。程序一旦啟動(dòng),它就在該用戶權(quán)限控制下運(yùn)行。 您可以使用沿用權(quán)限來(lái)訪問(wèn)具有運(yùn)行程序的用戶的權(quán)限和程序擁有者權(quán)限的對(duì)象。沿用權(quán)限臨時(shí)地將用戶原先無(wú)權(quán)訪問(wèn)的對(duì)象的權(quán)限授予用戶。</p><p> 并發(fā)性:JAVA支持多線程技術(shù),就是多個(gè)線程并行機(jī)制,多線程是Java的一個(gè)重
37、要方法,特別有利于在程序中實(shí)現(xiàn)并發(fā)任務(wù).Java提供Thread線程類,實(shí)現(xiàn)了多線程的并發(fā)機(jī)制.然而,程序的并發(fā)執(zhí)行必定會(huì)出現(xiàn)多個(gè)線程互斥訪問(wèn)臨界資源的局面,因而并發(fā)系統(tǒng)解決的關(guān)鍵就是對(duì)臨界資源的管理和分配問(wèn)題,而在進(jìn)行臨界資源分配時(shí)有兩方面需要考慮,即安全性和公平性.文中首先討論了多線程并發(fā)系統(tǒng)中的安全性與公平性問(wèn)題,指出安全性與公平性在并發(fā)系統(tǒng)中訪問(wèn)臨界資源時(shí)的重要性.并通過(guò)火車行駛單行隧道的實(shí)例,演示各種條件下的行駛情況來(lái)進(jìn)一步說(shuō)
38、明該問(wèn)題。</p><p><b> (三)Ruby</b></p><p> Ruby語(yǔ)言的主要特點(diǎn)如下。</p><p> 純的面向?qū)ο笳Z(yǔ)言在Ruby中,一切皆是對(duì)象。下面舉一個(gè)例子來(lái)更直觀地說(shuō)明Ruby語(yǔ)言的這一特點(diǎn)。在Java中,求一個(gè)數(shù)的絕對(duì)值的代碼如下。int c = Math.abs(-20);而在Ruby語(yǔ)言中,
39、一切皆是對(duì)象,也就是說(shuō)“-20”這個(gè)數(shù)也是一個(gè)對(duì)象,因此,求一個(gè)數(shù)絕對(duì)值的Ruby代碼形式如下。c = -20.abs這樣的代碼編寫(xiě)方式是不是更形象一些呢?2.解釋型腳本語(yǔ)言Ruby 語(yǔ)言是解釋型腳本語(yǔ)言,它既有腳本語(yǔ)言強(qiáng)大的字符串處理能力和正則表達(dá)式,又不失解釋型語(yǔ)言的動(dòng)態(tài)性。一方面,在最初設(shè)計(jì)Ruby語(yǔ)言時(shí),Ruby的研發(fā)者松本行弘考慮到文字處理方面的需要,他借鑒了Perl語(yǔ)言在文字處理方面的成功經(jīng)驗(yàn)。另一方面,松本行弘將
40、Ruby語(yǔ)言設(shè)定為一種解釋型語(yǔ)言,Ruby 的動(dòng)態(tài)性使得由Ruby語(yǔ)言編寫(xiě)的程序不需要事先編譯即可直接運(yùn)行,這為程序的調(diào)試帶來(lái)了方便。同時(shí),這一特點(diǎn)可以實(shí)現(xiàn)開(kāi)發(fā)過(guò)程中的快速反饋。</p><p> 3.其他特點(diǎn)(1)動(dòng)態(tài)載入。可以在運(yùn)行時(shí)候重定義自己,類也可以在運(yùn)行時(shí)繼承或取消繼承。(2)自動(dòng)內(nèi)存管理機(jī)制。(3)多精度整數(shù)。(4)迭代器和閉包。(5)開(kāi)源項(xiàng)目。有大量活躍的社區(qū)支持Ruby語(yǔ)言</p&
41、gt;<p><b> ?。ㄋ模〤++</b></p><p> C++語(yǔ)言既保留了C語(yǔ)言的有效性、靈活性、便于移植等全部精華和特點(diǎn),又添加了面向?qū)ο缶幊痰闹С?,具有?qiáng)大的編程功能,可方便地構(gòu)造出模擬現(xiàn)實(shí)問(wèn)題的實(shí)體和操作;編寫(xiě)出的程序具有結(jié)構(gòu)清晰、易于擴(kuò)充等優(yōu)良特性,適合于各種應(yīng)用軟件、系統(tǒng)軟件的程序設(shè)計(jì)。用C++編寫(xiě)的程序可讀性好,生成的代碼質(zhì)量高,運(yùn)行效率僅比匯編語(yǔ)言慢1
42、0%~20%。</p><p> C++語(yǔ)言具有以下特點(diǎn):</p><p> (1) C++是C語(yǔ)言的超集。它既保持了C語(yǔ)言的簡(jiǎn)潔、高效和接近匯編語(yǔ)言等特點(diǎn),又克服了C語(yǔ)言的缺點(diǎn),其編譯系統(tǒng)能檢查更多的語(yǔ)法錯(cuò)誤,因此,C++比C語(yǔ)言更安全。</p><p> (2) C++保持了與C語(yǔ)言的兼容。絕大多數(shù)C語(yǔ)言程序可以不經(jīng)修改直接在C++環(huán)境中運(yùn)行,用C語(yǔ)言編寫(xiě)
43、的眾多庫(kù)函數(shù)可以用于C++程序中。</p><p> (3) 支持面向?qū)ο蟪绦蛟O(shè)計(jì)的特征。C++既支持面向過(guò)程的程序設(shè)計(jì),又支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。</p><p> (4) C++程序在可重用性、可擴(kuò)充性、可維護(hù)性和可靠性等方面都較C語(yǔ)言得到了提高,使其更適合開(kāi)發(fā)大中型的系統(tǒng)軟件和應(yīng)用程序。</p><p><b> 第二章 系統(tǒng)概述</b&
44、gt;</p><p> 本ATM機(jī)模擬管理系統(tǒng)主要實(shí)現(xiàn)ATM機(jī)的取現(xiàn)、查詢、轉(zhuǎn)賬、修改密碼功能。</p><p> 第一節(jié) 系統(tǒng)及需求分析</p><p><b> 系統(tǒng)需求:</b></p><p> 通過(guò)調(diào)查,要求系統(tǒng)要有以下功能:</p><p> 由于操作人員的計(jì)算機(jī)知識(shí)水
45、平參差不齊,要求有良好的人機(jī)交互界面。</p><p> 信息顯示格式清晰,達(dá)到一目了然的效果。</p><p> 按鈕的位置盡量在醒目位置。</p><p> 方便數(shù)據(jù)查詢,支持多條件查詢和模糊查詢。</p><p><b> 二 可行性分析:</b></p><p> 經(jīng)過(guò)調(diào)查、研究
46、、分析、計(jì)算,在ATM機(jī)模擬系統(tǒng)中的應(yīng)用已經(jīng)條件成熟,我將從以下幾個(gè)方面總結(jié)系統(tǒng)開(kāi)發(fā)的可行性,就具體情況如下:</p><p><b> 1.技術(shù)可行性</b></p><p> 以Windows為操作系統(tǒng),運(yùn)用SQL SERVER2000的數(shù)據(jù)庫(kù)技術(shù),開(kāi)發(fā)以Windows XP為用戶的操作平臺(tái),界面友善、功能齊全的《ATM機(jī)模擬系統(tǒng)》。</p>&
47、lt;p> 新系統(tǒng)的運(yùn)行硬件環(huán)境PC機(jī),當(dāng)用戶使用系統(tǒng)時(shí),通過(guò)正確的用戶名及密碼進(jìn)入系統(tǒng),進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)操作和運(yùn)用。</p><p><b> 2.經(jīng)濟(jì)可行性</b></p><p> 一方面,新系統(tǒng)中有好的人機(jī)界面和更強(qiáng)勁的功能支持,會(huì)使管理人員的工作進(jìn)一步提高,從而節(jié)省人力、物力,進(jìn)而提高經(jīng)濟(jì)效益;另一方面,系統(tǒng)開(kāi)發(fā)成本低,現(xiàn)有PC機(jī)即可提供該系統(tǒng)開(kāi)
48、發(fā)工作需要的所有硬件設(shè)備環(huán)境。</p><p><b> 3.操作可行性</b></p><p> 主要使用簡(jiǎn)單的幾個(gè)按鈕,還有數(shù)字鍵來(lái)進(jìn)行操作,方便簡(jiǎn)潔。能做到一目了然。</p><p><b> 系統(tǒng)設(shè)計(jì)的背景</b></p><p> 隨著時(shí)代的進(jìn)步,社會(huì)生產(chǎn)力高速發(fā)展,新技術(shù)層出不窮
49、,信息量急劇膨脹,整個(gè)人類社會(huì)已成為金融化信 息化的社會(huì),并開(kāi)始朝著自動(dòng)化智能化發(fā)展。以往人們?nèi)ャy行存款取款進(jìn)行各種財(cái)務(wù)處理都必須通過(guò)柜臺(tái),隨著越來(lái)越多的人們進(jìn)入銀行,使用銀行的服務(wù),使銀行出現(xiàn)了工作效率低,顧客等待時(shí)間過(guò)長(zhǎng)等等問(wèn)題,既加大了銀行工作人員的工作量,又使得人們享受銀行服務(wù)的質(zhì)量大幅度降低,所以銀行交易的自動(dòng)化智能化已經(jīng)成為了一個(gè)不可逆轉(zhuǎn)的趨勢(shì),而且必將成為各個(gè)銀行今后發(fā)展的重點(diǎn)。</p><p>
50、 ATM機(jī)作為銀行服務(wù)的擴(kuò)展終端,大大的提高了銀行離柜業(yè)務(wù)辦理能力,24小時(shí)為客戶提供最基礎(chǔ)的銀行服務(wù),使得銀行客戶在面對(duì)長(zhǎng)長(zhǎng)的隊(duì)伍時(shí)有更加主動(dòng)的選擇。ATM設(shè)備已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡闹匾O(shè)備。因此我決定學(xué)習(xí)了解ATM設(shè)備的工作愿意,探究ATM機(jī)的工作機(jī)制,并自行模擬ATM系統(tǒng)能。</p><p><b> 系統(tǒng)的功能簡(jiǎn)介</b></p><p> 經(jīng)過(guò)
51、對(duì)比真實(shí)的銀行提款機(jī)系統(tǒng),同時(shí)方便系統(tǒng)程序的使用者,在經(jīng)過(guò)分析后,本系統(tǒng)需要實(shí)現(xiàn)以下的幾種任務(wù):</p><p> 1.兩種語(yǔ)言選擇:可以選擇中文和英文兩種語(yǔ)言服務(wù)。</p><p> 2.數(shù)據(jù)庫(kù)管理功能:提供一個(gè)可直接在前臺(tái)管理用戶信息的界面。</p><p> 3.身份認(rèn)證:每個(gè)用戶對(duì)應(yīng)自己的登錄口令。不能修改和查看他人帳號(hào)的內(nèi)容。</p>
52、<p> 4.密碼修改:用戶可以對(duì)自己的賬戶口令進(jìn)行修改。</p><p> 5.取款:辨認(rèn)用戶輸入的取款金額是否正確。</p><p> 6.存款:辨認(rèn)用戶存入的金額是否正確。</p><p> 7.轉(zhuǎn)帳:與系統(tǒng)中其他用戶進(jìn)行轉(zhuǎn)賬,需要對(duì)象用戶同樣存在于數(shù)據(jù)庫(kù)中。</p><p> 8.查詢余額:查詢自己的余額。<
53、/p><p> 9.查詢交易明細(xì):用戶可以查詢自己賬戶的過(guò)往操作記錄,并打印。</p><p> 以上是本系統(tǒng)在功能呢方面的需求,根據(jù)這些需求設(shè)計(jì)了各個(gè)功能模塊,各功能模塊的詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)將在以后章節(jié)中進(jìn)行詳細(xì)的分析和介紹。</p><p><b> 系統(tǒng)開(kāi)發(fā)的目標(biāo)</b></p><p> 在對(duì)現(xiàn)有系統(tǒng)和現(xiàn)狀認(rèn)真調(diào)
54、查分析的基礎(chǔ)上,明確了ATM機(jī)模擬系統(tǒng)工作本身存在的問(wèn)題和建立管理信息系統(tǒng)的初步要求,進(jìn)一步研究確定新系統(tǒng)的開(kāi)發(fā)目標(biāo)如下:</p><p> 1 按照管理信息系統(tǒng)的原理和方法,采用成熟的信息技術(shù)和手段,支持ATM工作的全過(guò)程,提高了銀行處理業(yè)務(wù)的能力,提高管理效率。</p><p> 2 針對(duì)現(xiàn)代計(jì)算機(jī)廣泛應(yīng)用的情況以及數(shù)據(jù)的封閉性,ATM機(jī)模擬系統(tǒng)基于Windows系統(tǒng)研制、設(shè)計(jì)和開(kāi)
55、發(fā)。</p><p> 3 考慮經(jīng)費(fèi)等原因,新系統(tǒng)使用PC機(jī)和現(xiàn)有其他打印設(shè)備以節(jié)省資金,降低成本。</p><p> 4由于這是一個(gè)模擬系統(tǒng)所以對(duì)安全性方面的考慮較差,數(shù)據(jù)庫(kù)為了方便并沒(méi)有采取加密方式,實(shí)際應(yīng)用的時(shí)候應(yīng)當(dāng)注意安全性方面。</p><p><b> 系統(tǒng)分析</b></p><p><b>
56、; 業(yè)務(wù)流程分析</b></p><p> 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ù)則
57、采用了與之相連方便且功能同樣強(qiáng)大的SQLSERVER2000。采用以上兩個(gè)開(kāi)發(fā)軟件完全能夠滿足ATM模擬系統(tǒng)的開(kāi)發(fā)需要。</p><p> 系統(tǒng)主要是由前臺(tái)(客戶操作界面)與后臺(tái)(數(shù)據(jù)庫(kù))兩個(gè)部分組成:</p><p><b> 業(yè)務(wù)流程圖:</b></p><p> 圖3.1 影院管理系統(tǒng)業(yè)務(wù)流程圖</p><p&g
58、t;<b> 數(shù)據(jù)流程分析</b></p><p> 數(shù)據(jù)流圖是在對(duì)系統(tǒng)分析調(diào)查的基礎(chǔ)上,以系統(tǒng)的科學(xué)性、管理的合理性、技術(shù)的可行性角度出發(fā),將信息處理功能和彼此之間的聯(lián)系,自頂向下、逐層分解,從邏輯上精確的描述具有的數(shù)據(jù)加工功能、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)的來(lái)源和去向。</p><p> 影院管理系統(tǒng)經(jīng)劃分出各子系統(tǒng)及其各自的功能,以及相互聯(lián)系,繪制出
59、的數(shù)據(jù)流圖如下:</p><p> 影院管理系統(tǒng)數(shù)據(jù)流圖:</p><p> 圖3.2 ATM機(jī)模擬系統(tǒng)頂層數(shù)據(jù)流圖</p><p><b> 系統(tǒng)設(shè)計(jì)</b></p><p><b> 網(wǎng)站結(jié)構(gòu)模塊設(shè)計(jì)</b></p><p><b> 1)系統(tǒng)前臺(tái)設(shè)計(jì)
60、</b></p><p> 前臺(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)功能。具有類似功能的界面之間采用了窗口的復(fù)用,如返回錯(cuò)誤窗口的Form3能夠根據(jù)各個(gè)功能返回的不同錯(cuò)誤來(lái)顯示相應(yīng)的錯(cuò)誤信息。</p><p> 同時(shí)前臺(tái)提供兩種語(yǔ)言界面的選擇。 在控制
61、界面語(yǔ)言的選擇時(shí)用到兩種方式,一種是已經(jīng)寫(xiě)好中文界面,當(dāng)選定語(yǔ)言種類為英文時(shí),通過(guò)變量控制界面語(yǔ)言換為英文。另一種是只有界面的框架,沒(méi)有已經(jīng)寫(xiě)好的內(nèi)容,一開(kāi)始登陸的時(shí)候選擇哪種語(yǔ)言,就給界面賦值為哪種語(yǔ)言。</p><p><b> 2)后臺(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)的效果,所以
62、建立了一個(gè)名為AYU\ATM的SQL服務(wù)器,創(chuàng)建了名為USER的數(shù)據(jù)庫(kù),用戶登陸名為sa密碼為空,并在ODBC數(shù)據(jù)源中將USER數(shù)據(jù)庫(kù)添加進(jìn)去。其中實(shí)際上只運(yùn)用到兩個(gè)表,一個(gè)用戶信息表和一個(gè)用戶操作表。</p><p> 圖2-2-1用戶信息表</p><p> 用戶信息表(如圖2-2-1)用以存放用戶的卡號(hào),密碼,存款金額等信息,由于該系統(tǒng)只是為了模擬運(yùn)用,故對(duì)安全性的要求并不高,所
63、以密碼采用了明文方式存放,便于使用與查看。本次模擬系統(tǒng)同時(shí)還具有創(chuàng)建新用戶的功能,可以通過(guò)管理界面對(duì)后臺(tái)的數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單的管理,如添加和刪除用戶。當(dāng)然現(xiàn)實(shí)中的ATM機(jī)的這項(xiàng)功能肯定是不對(duì)普通用戶開(kāi)放的,銀行的數(shù)據(jù)全部存在于分行的計(jì)算機(jī)中,ATM只是與銀行數(shù)據(jù)庫(kù)的一個(gè)交互式作用。 </p><p> 圖2-2-2用戶操作表</p><p> 用戶操作表(如圖2-2-2)則用來(lái)記錄用戶在A
64、TM機(jī)上所使用的服務(wù),它包括了所有用戶對(duì)自己賬戶的操作信息,包括時(shí)間,操作類型,金額,轉(zhuǎn)帳卡號(hào),成功與否等等。用戶查詢明細(xì)與打印清單的功能就是通過(guò)搜集檢索這張表來(lái)實(shí)現(xiàn)。同時(shí)管理人員也可以從這張表上很方便的查閱用戶使用情況。當(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)&
65、lt;/b></p><p> 系統(tǒng)功能的實(shí)現(xiàn)包括18個(gè)窗口文件和一個(gè)模塊文件,每個(gè)窗口分別實(shí)現(xiàn)各個(gè)實(shí)際功能,以及主要功能函數(shù)的調(diào)用。模塊里定義窗口中使用的各種自定義函數(shù),包括身份驗(yàn)證函數(shù)Checkuser、修改密碼函數(shù)Changewd、操作寫(xiě)入數(shù)據(jù)庫(kù)函數(shù)InsertDatabase、取款函數(shù)TakeMoney、存款函數(shù)Save、余額查詢函數(shù)Qurey、轉(zhuǎn)賬函數(shù)trans和trans2。具體函數(shù)實(shí)現(xiàn)方式在
66、各個(gè)窗口中會(huì)具體來(lái)說(shuō)明。</p><p><b> 重要全局變量</b></p><p> 在程序設(shè)計(jì)時(shí),一些全局變量發(fā)揮了重要的作用。下面介紹其中起到關(guān)鍵作用的部分變量。</p><p> 整型變量i是本系統(tǒng)實(shí)現(xiàn)中英文界面的重要變量,i=2代表中文、i=1代表英文,歡迎界面(圖3-2-1)選擇語(yǔ)言時(shí),會(huì)將i賦予相應(yīng)的值,以實(shí)現(xiàn)中英文的功
67、能。若不設(shè)置這個(gè)變量,每個(gè)界面的功能都要有兩個(gè)窗口來(lái)實(shí)現(xiàn),代碼重復(fù),功能相同。i的存在不僅代表中英文界面的基本成型,更重要的是簡(jiǎn)化了程序代碼,將窗口數(shù)量縮減了一倍,代碼更加簡(jiǎn)潔優(yōu)化。</p><p> 字符串型變量j的每個(gè)值代表著系統(tǒng)中的每個(gè)操作,j=1代表取款操作,j=2代表修改密碼操作,j=3代表轉(zhuǎn)賬操作、j=4代表查詢余額操作、j=5代表查看交易清單操作、j=6代表存款操作。j的值具體應(yīng)用于用戶操作表的插
68、入中,每次操作將插入代表其操作內(nèi)容的信息,是變量文字的很好的相互轉(zhuǎn)化媒介。</p><p> 字符串型變量u,這是登陸驗(yàn)證、信息查詢等各種操作安全行的重要變量。通過(guò)登陸時(shí)輸入的卡號(hào)值賦給u,之后的操作都將圍繞這個(gè)卡號(hào)來(lái)運(yùn)行,保證每個(gè)用戶只能對(duì)自己相應(yīng)的卡號(hào)來(lái)進(jìn)行操作,不能進(jìn)入到其他人的頁(yè)面,也不能對(duì)其他用戶的信息查詢和修改。</p><p><b> 歡迎界面實(shí)現(xiàn) </
69、b></p><p> 在歡迎界面(圖3-2-1)我們可以自由的選擇兩種語(yǔ)言,分別為我們最常用的中文和英語(yǔ),語(yǔ)言種類選擇后,通過(guò)上述變量i對(duì)接下來(lái)的操作區(qū)分中英文。任意點(diǎn)擊一種服務(wù)都將進(jìn)入登陸界面。由于中英文僅是提示語(yǔ)言不同,功能實(shí)現(xiàn)完全相同,以后功能介紹時(shí)僅以中文界面為例。</p><p> 點(diǎn)擊中文按鈕i值賦予2,點(diǎn)擊English按鈕i將被賦予1并進(jìn)入相應(yīng)語(yǔ)言的登陸界面進(jìn)行
70、操作。管理系統(tǒng)也是由此窗口進(jìn)入,具體功能將在后面進(jìn)行介紹。退出系統(tǒng)將結(jié)束程序運(yùn)行。</p><p> 圖3-2-1歡迎界面</p><p><b> 登陸的實(shí)現(xiàn)</b></p><p><b> 下面請(qǐng)看登陸界面:</b></p><p> 圖3-3-1登陸界面(中文)</p>
71、<p> 圖3-3-1所示的就是登陸界面的窗口,用戶應(yīng)在相應(yīng)的TextBox中輸入自己的卡號(hào)和密碼。密碼和卡號(hào)的格式是受限的,卡號(hào)為8位,密碼為6位,點(diǎn)擊確認(rèn)按鈕時(shí),將實(shí)現(xiàn)對(duì)其的檢測(cè),若不符合條件則進(jìn)入錯(cuò)誤輸出界面form3,顯示相應(yīng)的錯(cuò)誤信息。重輸按鈕將TextBox內(nèi)容清空,語(yǔ)句為text1.text=””。</p><p> 本窗口要重點(diǎn)說(shuō)明的是模塊中驗(yàn)證身份函數(shù)——Checkuser函數(shù)&
72、lt;/p><p> Checkuser函數(shù)的代碼如下:</p><p> Public Sub Checkuser() </p><p> Dim strr As String</p><p> Set CON = New ADODB.Connection //設(shè)置CON為新的ADO連接
73、對(duì)象</p><p> strr = "Provider=SQLOLEDB.1;Password= ;Persist Security Info=True;User ID=sa;Initial Catalog=user;Data Source=(local)" //這里采用的是SQL OLEDB應(yīng)用接口</p>
74、<p> CON.Open strr</p><p> u = Form2.Text1.Text</p><p> str = "select 密碼 from 用戶信息 where 卡號(hào)='" & u & "'" //只打開(kāi)密碼列</p><p> Set RS
75、 = New ADODB.Recordset</p><p> RS.Open str, CON, adOpenDynamic, adLockPessimistic //recordset對(duì)象的打開(kāi)語(yǔ)句 動(dòng)態(tài)游標(biāo) 悲觀鎖</p><p><b> 無(wú)用戶情況</b></p><p> If RS.EOF = True Then /
76、/未查找到用戶,當(dāng)前記錄被定位于最后一條記錄后面。當(dāng)前記錄指針無(wú)效</p><p> If i = 2 Then</p><p> Form3.Show</p><p> Form3.Label1.Caption = "沒(méi)有此用戶,請(qǐng)檢查并重新輸入!"</p><p><b> u = "&qu
77、ot;</b></p><p> Form2.Text1.Text = ""</p><p> Form2.Text2.Text = ""</p><p><b> Else</b></p><p> Form3.Show</p><p>
78、; Form3.Label1.Caption = "Wrong Customer!"</p><p><b> u = ""</b></p><p> Form2.Text1.Text = ""</p><p> Form2.Text2.Text = ""&
79、lt;/p><p><b> End If</b></p><p> Exit Sub //沒(méi)有此用戶則退出不再進(jìn)行以下步驟重新輸入</p><p><b> End If</b></p><p><b> 密碼錯(cuò)誤情況&l
80、t;/b></p><p> If Trim(RS.Fields(0)) = Trim(Form2.Text2.Text) Then //檢驗(yàn)密碼是否相同就一列所以0</p><p> Form4.Show</p><p> RS.Close //關(guān)閉記錄集<
81、;/p><p> Unload Form2</p><p><b> Else</b></p><p> If pcount < 2 Then</p><p> pcount = pcount + 1</p><p> Form3.Show</p><p>
82、If i = 2 Then</p><p> Form3.Label1.Caption = "密碼不正確,請(qǐng)重新輸入!"</p><p> ElseIf i = 1 Then</p><p> Form3.Label1.Caption = "Incorrect Password,Please Try Again!"<
83、;/p><p><b> End If</b></p><p> Form2.Text2.Text = ""</p><p><b> Else</b></p><p> Form3.Show</p><p> If i = 2 Then</p
84、><p> Form3.Label1.Caption = "由于您已經(jīng)輸錯(cuò)三次密碼,您的卡暫時(shí)由本行保管請(qǐng)您于明日拿身份證來(lái)領(lǐng)?。?quot;</p><p> ElseIf i = 1 Then</p><p> Form3.Label1.Caption = "Your Card Have Been Eaten ,Please Take It
85、 Tomorrow"</p><p><b> End If</b></p><p> pcount = 0 //置成原值</p><p> Unload Form2</p><p> Form1.Show</p><p>
86、 Form3.SetFocus</p><p><b> End If</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> 此頁(yè)面的Label1,Label2,Command1,Command2,c
87、ommand3的Caption默認(rèn)都為空,通過(guò)i的賦值而變換中英文的顯示。這個(gè)方法在后面的窗口也多有應(yīng)用,能夠極大的減少頁(yè)面的使用量,我稱之為窗口的復(fù)用,將在本章的最后一節(jié)詳細(xì)的介紹。</p><p><b> 主服務(wù)界面實(shí)現(xiàn)</b></p><p> 下面介紹主服務(wù)界面:</p><p> 圖3-4-1 服務(wù)界面</p>
88、<p> 在主界面中(如圖3-4-1)有5個(gè)服務(wù)按鈕,設(shè)置了一個(gè)整型變量j,在點(diǎn)擊選擇各種服務(wù)的同時(shí),J也被賦予了不同的數(shù)值,用以后面記錄用戶的操作信息,寫(xiě)入數(shù)據(jù)庫(kù)。</p><p> j的賦值方式采用的是option控件,若optinon.value=ture代表選中相應(yīng)操作,則將j置成對(duì)應(yīng)的值。j=1代表取款操作,j=2查詢操作,j=3代表轉(zhuǎn)賬操作、j=4代表修改操作、j=5代表退卡操作。<
89、;/p><p> 同時(shí)這里也使用了如登陸界面使用的兩種語(yǔ)言的選擇。</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ù)后輸出到文本框中即可(如圖3-5-1)。在主模塊中的查詢函數(shù)為Query函數(shù):</p><p> Query函
90、數(shù)的代碼為:</p><p> Public Sub Query() //查詢余額\</p><p> Dim str2 As String</p><p> str2 = "select * from 用戶信息 where 卡號(hào)='" & u &
91、amp; "'"</p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str2, CON, adOpenDynamic, adLockPessimistic //第一個(gè)函數(shù)已經(jīng)定義</p><p> Form8.Label5.Caption = RS.Fiel
92、ds("金額")</p><p> Call InsertDatabase //查詢計(jì)入操作明細(xì)中</p><p><b> End Sub</b></p><p> 圖3-5-1 查詢界面</p><p><
93、b> 取款功能的實(shí)現(xiàn)</b></p><p> 取款頁(yè)面如圖3-6-1所示。</p><p> 圖3-6-1 取款界面</p><p> 取款函數(shù)相對(duì)于其他函數(shù)就相對(duì)復(fù)雜一點(diǎn),因?yàn)橛泻芏嗲闆r需要判斷,因?yàn)锳TM機(jī)只能提供面值100元的人民幣,所以輸入的取款金額只能是100的倍數(shù),實(shí)現(xiàn)方法就是對(duì)100求余。還需要判斷所取金額是否大于卡上的余額
94、,余額不足那也是沒(méi)法成功取款的。其次單次取款金額不得大于3000元。用戶取了一定數(shù)量的錢(qián)后還需要把新的數(shù)據(jù)重新寫(xiě)入數(shù)據(jù)庫(kù)。界面的實(shí)現(xiàn)方面可以直接輸入金額,也可點(diǎn)擊快捷取款按鈕,金額都會(huì)直接顯示在textbox中,整個(gè)窗口textbox為唯一接口,與函數(shù)和數(shù)據(jù)庫(kù)相連。</p><p> 下面具體列出模塊中的TakeMoney函數(shù)的偽碼:</p><p> Public Sub TakeM
95、oney()</p><p><b> 建立數(shù)據(jù)庫(kù)連接</b></p><p> Dim str1 As String</p><p> str1 = "select * from 用戶信息 where 卡號(hào)='" & u & "'"</p><p
96、> Set RS = New ADODB.Recordset</p><p> RS.Open str1, CON, adOpenDynamic, adLockPessimistic </p><p> 金額= Form5.Text1.Text</p><p> If 金額輸入為空 Then</p><p> 標(biāo)記操作失
97、敗 </p><p> Form3顯示出錯(cuò)信息"請(qǐng)您正確輸入金額!"</p><p> ElseIf 輸入金額不是100的倍數(shù)Then </p><p><b> 標(biāo)記操作失敗</b></p><p> Form3
98、顯示出錯(cuò)信息 "請(qǐng)您正確輸入金額!"</p><p> ElseIf 數(shù)據(jù)庫(kù)中用戶u的余額< 取款值 Then </p><p><b> 標(biāo)記操作失敗</b></p><p> Form3顯示出錯(cuò)信息 "金額不足!"</p><p> ElseIf 單次取款超
99、過(guò)3000 Then</p><p><b> 標(biāo)記操作失敗</b></p><p> Form3顯示 "單次取款不得超過(guò)3000"</p><p> Else 取款金額符合操作</p><p><b> 標(biāo)記操作成功</b></p><p>
100、 數(shù)據(jù)庫(kù)中用戶余額更新為原值減去取款值</p><p> Call InsertDatabase '把操作插入用戶操作表</p><p> Form9顯示 "交易成功,謝謝您的使用,請(qǐng)拿好您的鈔票!"</p><p><b> End If</b></p><p> TakeMoney
101、代碼中的insertDatabase函數(shù)是將相應(yīng)的操作內(nèi)容以及成功與否加入到用戶操作表中。</p><p> insertDatabase的偽碼為</p><p> Public Sub InsertDatabase()</p><p> str = "select * from 用戶操作表"</p><p> S
102、et RS = New ADODB.Recordset</p><p> RS.Open str, CON, adOpenDynamic, adLockPessimistic</p><p> If j為相應(yīng)操作值 And k所標(biāo)志的操作成功或不成功 Then </p><p> RS.AddNew
103、</p><p> RS.Fields("卡號(hào)") = u</p><p> RS.Fields("操作") = j對(duì)應(yīng)的操作值</p><p> RS.Fields("時(shí)間") = Now</p><p> RS.Fields("取款金額") = Val
104、(Form5.Text1.Text)</p><p> RS.Fields("是否成功") = k所標(biāo)識(shí)的成功或不成功</p><p><b> RS.Update</b></p><p><b> RS.Close</b></p><p><b> End s
105、ub</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)帳金額。轉(zhuǎn)賬界面如圖3-7-1所示: </p><p> 圖3-7-1 轉(zhuǎn)賬界面&
106、lt;/p><p> 在程序?qū)崿F(xiàn)中,同樣要對(duì)用戶輸入的信息要驗(yàn)證其正確性,對(duì)方卡號(hào)必須真實(shí)存在,所輸入金額不得超過(guò)卡上金額等等。輸入轉(zhuǎn)入用戶卡號(hào)時(shí)如果輸入錯(cuò)誤,不同的錯(cuò)誤也會(huì)顯示出不同的結(jié)果。如當(dāng)輸入的轉(zhuǎn)入用戶賬號(hào)與自己的賬號(hào)相同時(shí)就顯示“操作錯(cuò)誤,同賬戶不能轉(zhuǎn)賬!”</p><p> 轉(zhuǎn)賬的函數(shù)Trans偽碼如下: </p><p> Public Sub Tr
107、ans()</p><p> Dim str3 As String</p><p> transcard = Form7.Text1.Text</p><p> transmoney = Form7.Text2.Text</p><p> str3 = "select * from 用戶信息 where 卡號(hào)='&q
108、uot; & transcard & "'"</p><p> Set RS = New ADODB.Recordset</p><p> RS.Open str3, CON, adOpenDynamic, adLockPessimistic</p><p> If i = 2 Then</p><
109、;p> If Form7.Text2.Text = "" Or Form7.Text1.Text = "" Then</p><p><b> k = 0</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "請(qǐng)你正確輸入
110、!"</p><p> Form7.Text1.Text = ""</p><p> Form7.Text2.Text = ""</p><p> transcard = 0</p><p> transmoney = 0</p><p> Call Inse
111、rtDatabase</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If RS.EOF = True Then '</p><p><b> k = 0</b></p>
112、<p> Form3.Show</p><p> Form3.Label1.Caption = "沒(méi)有此用戶,請(qǐng)檢查并重新輸入!"</p><p> transcard = 0</p><p> transmoney = 0</p><p> Call InsertDatabase</p>
113、<p><b> Exit Sub</b></p><p><b> End If</b></p><p> If transcard = u Then</p><p><b> k = 0</b></p><p> Form3.Show</p>
114、;<p> Form3.Label1.Caption = "操作錯(cuò)誤,同帳戶不可以轉(zhuǎn)帳!"</p><p> transcard = 0</p><p> transmoney = 0</p><p> Call InsertDatabase</p><p><b> Exit Sub&l
115、t;/b></p><p><b> End If</b></p><p><b> '輸入正確的信息</b></p><p> str6 = "select * from 用戶信息 where 卡號(hào)='" & u & "'"<
116、;/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</p><
117、;p><b> k = 0</b></p><p><b> '余額不夠不能轉(zhuǎn)賬</b></p><p> Form3.Show</p><p> Form3.Label1.Caption = "金額不足以轉(zhuǎn)帳,請(qǐng)你重新輸入"</p><p> Form7
118、.Text2.Text = ""</p><p> transcard = 0</p><p> transmoney = 0</p><p> Call InsertDatabase</p><p><b> Exit Sub</b></p><p><b>
119、; Else</b></p><p><b> k = 1</b></p><p> Unload Form7</p><p> str14 = "select * from 用戶信息 where 卡號(hào)='" & transcard & "'"</
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- atm機(jī)畢業(yè)論文(c++)--模擬atm柜員機(jī)程序
- 基于ssh 集成框架銀行atm 機(jī)功能實(shí)現(xiàn)──銀行atm系統(tǒng)【畢業(yè)論文】
- atm系統(tǒng)畢業(yè)設(shè)計(jì)論文
- java模擬atm系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)論文---基于wcf的atm自動(dòng)取款機(jī)系統(tǒng)
- 大學(xué)計(jì)算機(jī)專業(yè)畢業(yè)論文-模擬atm機(jī)系統(tǒng)軟件的設(shè)計(jì)與開(kāi)發(fā)
- java模擬atm系統(tǒng)
- 模擬路燈控制系統(tǒng)畢業(yè)論文
- 基于vb.net的atm取款機(jī)模擬軟件—界面設(shè)計(jì)【畢業(yè)論文】
- 自動(dòng)電梯模擬控制系統(tǒng)--畢業(yè)論文
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng)
- 路燈模擬控制系統(tǒng)畢業(yè)論文設(shè)計(jì)
- 基于vb.net的atm取款機(jī)模擬軟件—數(shù)據(jù)庫(kù)設(shè)計(jì)【畢業(yè)論文】
- 基于java的atm模擬系統(tǒng)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 基于粒子系統(tǒng)的噴泉模擬【畢業(yè)論文】
- 模擬路燈控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 基于粒子系統(tǒng)的噴泉模擬畢業(yè)論文
評(píng)論
0/150
提交評(píng)論