自動取款機畢業(yè)論文_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)論文(設(shè)計)</b></p><p>  系 別 信息安全系 </p><p>  專 業(yè) 信息網(wǎng)絡(luò)安全監(jiān)察 </p><p>  年 級

2、2009級 </p><p>  姓 名 </p><p>  論文(設(shè)計)題目 ATM虛擬自動取款機 </p><p>  指導(dǎo)教師 職稱

3、 副教授 </p><p>  2012 年 5 月 4 日</p><p><b>  目錄</b></p><p><b>  1.引言5</b></p><p><b>  1.1編寫目的5</b></p><p>

4、;<b>  1.2項目背景5</b></p><p><b>  1.3定義5</b></p><p><b>  2.任務(wù)概述6</b></p><p><b>  2.1目標6</b></p><p><b>  2.2運行環(huán)境6

5、</b></p><p><b>  2.3需求概述6</b></p><p>  2.4條件與限制6</p><p><b>  3.總體設(shè)計7</b></p><p><b>  3.1處理流程7</b></p><p>  3.

6、2總體結(jié)構(gòu)和模塊外部設(shè)計(打印憑條沒實現(xiàn))10</p><p>  4.對現(xiàn)有系統(tǒng)的分析11</p><p>  4.1處理流程和數(shù)據(jù)流程(打印憑條和轉(zhuǎn)賬沒實現(xiàn))11</p><p>  4.2工作負荷11</p><p>  4.3費用支出11</p><p><b>  4.4人員11<

7、/b></p><p><b>  4.5設(shè)備12</b></p><p><b>  4.6局限性12</b></p><p>  5.所建議技術(shù)可行性分析12</p><p>  5.1對系統(tǒng)的簡要描述12</p><p>  5.2處理流程和數(shù)據(jù)流程(打印

8、憑條和轉(zhuǎn)賬沒實現(xiàn))13</p><p>  5.3與現(xiàn)有系統(tǒng)比較的優(yōu)越性13</p><p>  5.4采用建議系統(tǒng)可能帶來的影響14</p><p>  5.4.1對設(shè)備的影響14</p><p>  5.4.2對現(xiàn)有軟件的影響14</p><p>  5.2.3對用戶的影響14</p>&

9、lt;p>  5.2.4對系統(tǒng)運行的影響14</p><p>  5.2.5對開發(fā)環(huán)境的影響14</p><p>  5.2.6對運行環(huán)境的影響14</p><p>  5.2.7對經(jīng)費支出的影響14</p><p>  5.5技術(shù)可行性評價15</p><p>  6.1存款子系統(tǒng)15</p&

10、gt;<p>  6.1.1功能15</p><p>  6.1.2性能15</p><p>  6.1.3輸入項目15</p><p>  6.1.4輸出項目15</p><p>  6.1.5算法16</p><p>  6.1.6程序邏輯17</p><p>  

11、6.1.7接口17</p><p>  6.1.8存儲分配18</p><p>  6.1.9限制條件18</p><p>  6.1.10測試要點18</p><p>  6.2 查詢余額子系統(tǒng)18</p><p>  6.2.1功能18</p><p>  6.2.2性能18&

12、lt;/p><p>  6.2.3輸入項目19</p><p>  6.2.4輸出項目19</p><p>  6.2.5算法19</p><p>  6.2.6程序邏輯20</p><p>  6.2.7接口20</p><p>  6.2.8存儲分配21</p><

13、;p>  6.2.9限制條件21</p><p>  6.2.10測試要點21</p><p>  6.3 修改密碼子系統(tǒng)21</p><p>  6.3.1功能21</p><p>  6.3.2性能21</p><p>  6.3.3輸入項目21</p><p>  6.3

14、.4輸出項目22</p><p>  6.3.5算法22</p><p>  6.3.6程序邏輯23</p><p>  6.3.7接口23</p><p>  6.3.8存儲分配24</p><p>  6.3.9限制條件24</p><p>  6.3.10測試要點24<

15、/p><p>  6.3.8存儲分配24</p><p>  6.3.9限制條件24</p><p>  6.3.10測試要點24</p><p>  7.所建議系統(tǒng)經(jīng)濟可行性分析24</p><p><b>  7.1支出24</b></p><p>  7.1.1

16、基建投資25</p><p>  7.1.2其他一次性支出25</p><p>  7.1.3經(jīng)常性支出25</p><p><b>  7.2效益25</b></p><p>  7.2.1一次性收益25</p><p>  7.2.2經(jīng)常性收益25</p><p

17、>  7.2.3不可定量收益25</p><p>  7.3收益/投資比26</p><p>  7.4投資回收周期26</p><p>  7.5敏感性分析26</p><p>  8 系統(tǒng)的總結(jié)26</p><p>  8.1 登錄界面(差磁卡界面)27</p><p> 

18、 8.2開戶界面28</p><p>  8.3取款界面29</p><p>  8.4 查詢余額界面30</p><p>  8.4 存款界面31</p><p>  8.5 程序代碼31</p><p><b>  9參考資料40</b></p><p>

19、<b>  1.引言</b></p><p><b>  1.1編寫目的</b></p><p>  從此階段正式進入ATM系統(tǒng)的軟件設(shè)計階段,本階段完成系統(tǒng)的大致設(shè)計并明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與軟件結(jié)構(gòu),在軟件設(shè)計階段主要是把軟件需求轉(zhuǎn)化為軟件表示過程,這種表示只是描述軟件總的概貌,把它加工成程序細節(jié)上非常接近于源程序的表示,使軟件開發(fā)人員在編碼階段

20、以此文檔供為標準。</p><p><b>  1.2項目背景</b></p><p>  應(yīng)呼和浩特建設(shè)銀行網(wǎng)絡(luò)建設(shè)和改造需要,為客戶提供方便、迅速、便捷的自動存取款業(yè)務(wù)提出了ATM機自動取款系統(tǒng)設(shè)計與實現(xiàn)的項目,并由軟件工程08-2班第七小組完成設(shè)計與開發(fā),上級主管部門計算機系。要求此系統(tǒng)能夠?qū)崿F(xiàn)所提出的基本功能要求并且兼容現(xiàn)在使用的軟件。</p>

21、<p><b>  1.3定義</b></p><p>  客戶:擁有銀行的一個或多個帳號的人??梢允且粋€人或多個人,或者是公司。相同的人,擁有不同的銀行帳號被認為是不同的落戶。</p><p>  ATM:ATM是Automatic Teller Machine 的縮寫,意為自動柜員機。是一種高度精密的機電一體化設(shè)備,利用磁卡或智能IC卡儲存用戶信息并通過

22、加密鍵盤(EPP)輸入密碼然后通過銀行內(nèi)部網(wǎng)絡(luò)驗證并進行各種交易的金融自助設(shè)備。</p><p>  事務(wù):對單個客戶帳號的單個完整的操作請求,一般是指要做的或所做的事情。</p><p>  儲蓄卡:儲蓄卡是銀行為儲戶提供金融服務(wù)而發(fā)行的一種金融交易卡。它的主要功能是能在聯(lián)網(wǎng)ATM和儲蓄所存、取款及在聯(lián)網(wǎng)的POS上進行消費,但不具備透支功能。</p><p>&l

23、t;b>  2.任務(wù)概述</b></p><p><b>  2.1目標</b></p><p>  明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與軟件結(jié)構(gòu),此外總體設(shè)計還將給出內(nèi)部軟件與外部系統(tǒng)部件之間的接口定義,各個軟件的模塊的功能說明,數(shù)據(jù)結(jié)構(gòu)的細節(jié)以及具體的裝配要求,通過閱讀此文檔可以對ATM系統(tǒng)的設(shè)計有了初步的構(gòu)想,程序開發(fā)人員能夠快速進入代碼實現(xiàn),在ATM系統(tǒng)的基

24、本功能實現(xiàn)的基礎(chǔ)上,提高性能指標。</p><p><b>  2.2運行環(huán)境</b></p><p>  硬件環(huán)境:CPU:1GHZ 以上</p><p>  RAM:256兆以上</p><p>  HARD DISK:2G以上</p><p>  軟件環(huán)境:應(yīng)用服務(wù)器的操作系統(tǒng)環(huán)境為wind

25、owsXP以上的</p><p>  數(shù)據(jù)庫為Oracle或SQL server2005</p><p>  此系統(tǒng)運行在ATM機上</p><p><b>  2.3需求概述</b></p><p>  針對銀行業(yè)務(wù)種類繁多、客戶需求量大等現(xiàn)象,為了減少銀行人員的工作任務(wù),方便客戶,進行ATM系統(tǒng)的設(shè)計與開發(fā),使用戶自

26、己就可以在ATM機上存款、取款、查詢余額、、修改密碼、、退卡等基礎(chǔ)功能。同時要求滿足基本的性能需求:快速性:處理業(yè)務(wù)的時間不得超過30秒否則取消事務(wù)退卡;準確性:吐鈔、存抄的數(shù)目正確; 穩(wěn)定性:頻繁的進行多項業(yè)務(wù)系統(tǒng)仍能正常運行,外部環(huán)境發(fā)生小范圍內(nèi)變動系統(tǒng)不受影響;安全性:系統(tǒng)中所有涉及敏感信息如登錄口令等,服務(wù)器端應(yīng)設(shè)置嚴格安全訪問控制策略,從而保證系統(tǒng)安全性和操作責(zé)任的可追溯性。</p><p><b

27、>  2.4條件與限制</b></p><p>  整個項目的條件與限制:</p><p>  1、建議開發(fā)軟件運行的最短壽命:十年。</p><p>  2、經(jīng)費來源和使用限制:中國建設(shè)銀行投資。</p><p>  3、法律和政策方面的限制:涉及法律法規(guī)應(yīng)向律師進行詳細咨詢以免侵害客戶和其他人的利益。</p>

28、<p>  4、硬件、軟件、運行環(huán)境和開發(fā)環(huán)境的條件和限制:ATM柜員機終端設(shè)備,地區(qū)服務(wù)器、中央服務(wù)器、數(shù)據(jù)庫服務(wù)器(多個分散的)。</p><p>  5、可利用的信息和資源:現(xiàn)有簡易ATM機的實現(xiàn)原理 銀行工作人員手工操作的業(yè)務(wù)流程。</p><p>  6、建議開發(fā)軟件投入使用的最遲時間:測試一個月后。</p><p>  軟件設(shè)計時的條件與限

29、制:軟件設(shè)計應(yīng)當表現(xiàn)層次結(jié)構(gòu),巧妙地利用各個軟件之間的控制關(guān)系,設(shè)計應(yīng)當是模塊化。小組成員應(yīng)對軟件開發(fā)的流程基本了解并且充分調(diào)研后開始編輯文檔,同時要掌握JAVA語言及數(shù)據(jù)庫相關(guān)知識以備后續(xù)實現(xiàn)。項目進行中注意時間的控制和資金的合理分配。</p><p><b>  3.總體設(shè)計</b></p><p><b>  3.1處理流程</b><

30、/p><p>  圖1-1取款的活動圖</p><p>  圖1-2 款的活動圖</p><p>  圖1-3修改密碼活動圖</p><p>  圖1-4查詢余額的活動圖</p><p>  3.2總體結(jié)構(gòu)和模塊外部設(shè)計(打印憑條沒實現(xiàn))</p><p>  圖1-5 總體結(jié)構(gòu)圖</p>

31、<p>  4.對現(xiàn)有系統(tǒng)的分析</p><p>  4.1處理流程和數(shù)據(jù)流程(打印憑條和轉(zhuǎn)賬沒實現(xiàn))</p><p>  圖1-6現(xiàn)有系統(tǒng)處理流程</p><p>  舉例說明:客戶到銀行根據(jù)事務(wù)不同進行排隊,若進行取錢要將存折交給業(yè)務(wù)人員并告之取款的金額,業(yè)務(wù)人員在柜員終端識別賬戶后扣除相應(yīng)金額,取出錢交給客戶。</p><p&

32、gt;<b>  4.2工作負荷</b></p><p>  業(yè)務(wù)人員要進行大量客戶的不同事務(wù)操作,在一段時間內(nèi)可能重復(fù)同樣的操作多次,很容易產(chǎn)生厭煩心理,客戶需要長時間的等待使用戶體驗不友好。</p><p><b>  4.3費用支出</b></p><p>  業(yè)務(wù)人員的工資按每月4000元、購買柜員機及內(nèi)部軟件開發(fā)

33、費用。</p><p><b>  4.4人員</b></p><p>  銀行業(yè)務(wù)人員:若干 </p><p><b>  客戶</b></p><p><b>  4.5設(shè)備</b></p><p>  現(xiàn)有系統(tǒng)設(shè)備主要有柜員終端機并且需要大量的業(yè)務(wù)

34、人員。</p><p><b>  4.6局限性</b></p><p>  原有銀行終端操作,銀行業(yè)務(wù)種類繁多、業(yè)務(wù)人員工作量大,業(yè)務(wù)進度緩慢,客戶受到地點、時間因素的限制不能隨時進行業(yè)務(wù)。</p><p>  5.所建議技術(shù)可行性分析</p><p>  5.1對系統(tǒng)的簡要描述</p><p>

35、;  ATM終端可以接受一張可識別的銀行儲蓄卡,通過儲戶身份驗證后,同儲戶進行各種交互,處理儲戶要求,執(zhí)行各類操作,為儲戶服務(wù)。系統(tǒng)要求保持一定時間內(nèi)的交易記錄,可以處理多個ATM終端并發(fā)訪問。同時,系統(tǒng)應(yīng)每天自動匯總各種交易數(shù)據(jù),生成報表。系統(tǒng)24小時工作,無操作時播放本行的動畫廣告。系統(tǒng)具有設(shè)備自檢提示報錯功能,可以提示輸入錯誤,ATM終端錢柜缺錢。</p><p>  5.2處理流程和數(shù)據(jù)流程(打印憑條和轉(zhuǎn)

36、賬沒實現(xiàn))</p><p>  圖1-7本系統(tǒng)處理流圖</p><p>  舉例說明:取錢的流程:在讀卡機中插入銀行卡,識別后提示輸入密碼,用鍵盤輸入密碼后,驗證密碼正確后進入主界面選擇取錢,提示輸入金額,輸入金額后系統(tǒng)到賬戶中驗證是否在允許值范圍內(nèi),金額正確則吐錢機吐鈔,吐鈔后提示取走錢,系統(tǒng)自動跳轉(zhuǎn)到主界面客戶可以進行其他事務(wù)的選擇。</p><p>  5.3

37、與現(xiàn)有系統(tǒng)比較的優(yōu)越性</p><p>  與銀行終端相比較無需到銀行領(lǐng)號排隊,減輕銀行業(yè)務(wù)人員的工作量,同時使客戶可以在就近的ATM機上24小時進行事務(wù)交易。</p><p>  5.4采用建議系統(tǒng)可能帶來的影響</p><p>  5.4.1對設(shè)備的影響</p><p>  由于所建議系統(tǒng)是基于WINDOWS操作系統(tǒng)和互聯(lián)網(wǎng)的,所以需要配

38、備足夠符合以上列出的各種軟硬件條件的計算機和通信線路。系統(tǒng)失效后,服務(wù)器端需要利用備份的數(shù)據(jù)庫恢復(fù)數(shù)據(jù)信息,要求要有足夠的數(shù)據(jù)備份空間。</p><p>  5.4.2對現(xiàn)有軟件的影響</p><p>  需要落實是否有符合本報告所列出的正版的軟件環(huán)境,如果沒有則需要購買,要和現(xiàn)有系統(tǒng)兼容。</p><p>  5.2.3對用戶的影響</p><

39、p>  投入使用前還需改進現(xiàn)有的管理模式。</p><p>  5.2.4對系統(tǒng)運行的影響</p><p><b>  無影響。</b></p><p>  5.2.5對開發(fā)環(huán)境的影響</p><p>  開發(fā)過程需要用戶進行密切的配合,準確闡明需求。</p><p>  5.2.6對運行環(huán)

40、境的影響</p><p><b>  無影響。</b></p><p>  5.2.7對經(jīng)費支出的影響</p><p>  除了需要支付開發(fā)單位的有關(guān)費用外,每年還需要一定的運行維護費用(見經(jīng)濟可行性分析)。</p><p>  5.5技術(shù)可行性評價</p><p>  系統(tǒng)是一個基于局域網(wǎng)、互聯(lián)

41、網(wǎng)和WINDOWS操作的系統(tǒng),現(xiàn)有技術(shù)已較為成熟,利用現(xiàn)有技術(shù)完全可以實現(xiàn)系統(tǒng)開發(fā)目標。同時具有優(yōu)秀的軟件需求人員、軟件設(shè)計人員、和具有豐富經(jīng)驗的軟件測試人員。開發(fā)期限較為寬裕,預(yù)計可以在規(guī)定期限內(nèi)完成開發(fā)任務(wù)。</p><p><b>  6功能的分析和設(shè)計</b></p><p><b>  6.1存款子系統(tǒng)</b></p>&

42、lt;p><b>  6.1.1功能</b></p><p>  用戶可以通過和ATM自動取款機交互,完成存款的操作。</p><p><b>  6.1.2性能</b></p><p>  系統(tǒng)的反應(yīng)時間是不能超過2秒,完成取款操作的時間不能超過30秒。</p><p><b> 

43、 6.1.3輸入項目</b></p><p>  表1-8存款子系統(tǒng)的輸入項目</p><p><b>  6.1.4輸出項目</b></p><p>  表1-9存款子系統(tǒng)的輸出項目</p><p><b>  6.1.5算法</b></p><p>  圖2-

44、1存款的活動圖</p><p><b>  6.1.6程序邏輯</b></p><p>  圖2-2 存款的時序圖</p><p><b>  6.1.7接口</b></p><p>  系統(tǒng)程序內(nèi)部在功能模塊下設(shè)置的程序接口見表3-6 ,圖3.13</p><p>  表3

45、-6 存款子系統(tǒng)的軟件接口</p><p><b>  圖2-3存款的類圖</b></p><p><b>  6.1.8存儲分配</b></p><p>  賬戶表 儲蓄卡表 ATM表 清單表</p><p><b>  6.1.9限制條件</b></p>&

46、lt;p>  ATM自動取款機中的紙幣以滿,不能再放入紙幣。</p><p>  6.1.10測試要點</p><p>  好的產(chǎn)品才能得到用戶的認可和肯定,只有得到用戶的肯定才會有市場,為此要對系統(tǒng)的反應(yīng)速度、準確性(能準確讀取放入的紙幣數(shù)目)和安全性,以及系統(tǒng)的穩(wěn)定應(yīng)有非常高的要求。</p><p>  6.2 查詢余額子系統(tǒng)</p><

47、;p><b>  6.2.1功能</b></p><p>  用戶可以通過和ATM自動取款機交互,完成查詢余額的操作。</p><p><b>  6.2.2性能</b></p><p>  系統(tǒng)的反應(yīng)時間是不能超過2秒,完成查詢余額操作的時間不能超過30秒。</p><p><b>

48、;  6.2.3輸入項目</b></p><p>  表2-4 余額查詢子系統(tǒng)的輸入項目</p><p><b>  6.2.4輸出項目</b></p><p>  表2-5余額查詢子系統(tǒng)的輸出項目</p><p><b>  6.2.5算法</b></p><p&g

49、t;  圖2-6余額查詢的活動圖</p><p><b>  6.2.6程序邏輯</b></p><p>  圖 2-7 余額查詢的時序圖</p><p><b>  6.2.7接口</b></p><p>  系統(tǒng)程序內(nèi)部在功能模塊下設(shè)置的程序接口見表3-12,圖3.19</p>&

50、lt;p>  表2-8 查詢余額子系統(tǒng)的軟件接口</p><p>  圖2-9余額查詢的類圖</p><p><b>  6.2.8存儲分配</b></p><p>  賬戶表 儲蓄卡表 清單表</p><p><b>  6.2.9限制條件</b></p><p>

51、;<b>  硬件故障</b></p><p>  6.2.10測試要點</p><p>  好的產(chǎn)品才能得到用戶的認可和肯定,只有得到用戶的肯定才會有市場,為此要對系統(tǒng)的反應(yīng)速度有非常高的要求,這也是最基本的要求。</p><p>  6.3 修改密碼子系統(tǒng)</p><p><b>  6.3.1功能<

52、/b></p><p>  用戶可以通過和ATM自動取款機交互,完成修改密碼的操作。</p><p><b>  6.3.2性能</b></p><p>  系統(tǒng)的反應(yīng)時間是不能超過2秒,完成修改密碼操作的時間不能超過30秒。</p><p><b>  6.3.3輸入項目</b></p

53、><p>  表3-1修改密碼子系統(tǒng)的輸入項目</p><p><b>  6.3.4輸出項目</b></p><p>  表3-2 修改密碼子系統(tǒng)的輸出項目</p><p><b>  6.3.5算法</b></p><p>  圖3-3 修改密碼的活動圖</p>

54、<p><b>  6.3.6程序邏輯</b></p><p>  圖3-4 修改密碼的時序圖</p><p><b>  6.3.7接口</b></p><p>  系統(tǒng)程序內(nèi)部在功能模塊下設(shè)置的程序接口見表3-15,圖3.22</p><p>  表 3-15修改密碼子系統(tǒng)的軟件接口

55、</p><p>  圖3-5 修改密碼的類圖</p><p><b>  6.3.8存儲分配</b></p><p>  賬戶表 儲蓄卡表 清單表</p><p><b>  6.3.9限制條件</b></p><p><b>  忘記了舊密碼</b&g

56、t;</p><p>  6.3.10測試要點</p><p>  好的產(chǎn)品才能得到用戶的認可和肯定,為此要對系統(tǒng)的反應(yīng)速度、 安全性,以及系統(tǒng)的穩(wěn)定有非常高的要求。</p><p><b>  6.3.8存儲分配</b></p><p>  賬戶表 儲蓄卡表 清單表 ATM表</p><p>

57、;<b>  6.3.9限制條件</b></p><p>  ATM自動取款機里的憑條紙用完了、紙幣沒有了或是硬件出項了故障。</p><p>  6.3.10測試要點</p><p>  對系統(tǒng)的反應(yīng)速度,穩(wěn)定性有非常高的要求,以達到用戶的滿意度。</p><p>  7.所建議系統(tǒng)經(jīng)濟可行性分析</p>

58、<p><b>  7.1支出</b></p><p>  (1)系統(tǒng)開發(fā)、建立費用共23萬元。其中:</p><p>  本系統(tǒng)開發(fā)期為一年,需開發(fā)人員6人(不一定都是參加滿整個開發(fā)周期)。根據(jù)軟件系統(tǒng)的規(guī)模估算,開發(fā)工作量約為30人月,每人月的人工費按5000元計算,開發(fā)費用為15萬元。</p><p> ?。?)硬件設(shè)備費共2

59、9萬元,其中:ATM機約19萬元;服務(wù)器3臺及網(wǎng)絡(luò)等設(shè)備費10萬元。 </p><p>  (3)外購開發(fā)工具、軟件環(huán)境費用共9萬元。</p><p><b>  7.1.1基建投資</b></p><p>  基礎(chǔ)建設(shè)投資約52萬</p><p>  7.1.2其他一次性支出</p><

60、p><b>  暫無</b></p><p>  7.1.3經(jīng)常性支出</p><p>  加班費用、培訓(xùn)費用約10萬。</p><p><b>  7.2效益</b></p><p>  7.2.1一次性收益</p><p>  以前手工操作完成的事務(wù)可能需要十個業(yè)務(wù)

61、員,現(xiàn)在只需要一個業(yè)務(wù)員就能滿足需求,小額取款客戶可以到ATM機自主完成,相當于一個月節(jié)省九個人工資費用約36000元。</p><p>  7.2.2經(jīng)常性收益</p><p>  跨行轉(zhuǎn)賬收取手續(xù)費。</p><p>  7.2.3不可定量收益</p><p>  服務(wù)的改進和組織機構(gòu)給外界形象會使?jié)撛谟脩粼黾?,銀行收益不可估量的。<

62、;/p><p><b>  7.3收益/投資比</b></p><p><b>  后期收益無法估量</b></p><p><b>  7.4投資回收周期</b></p><p><b>  約三至四年</b></p><p><

63、;b>  7.5敏感性分析</b></p><p>  系統(tǒng)生存周期十年、自身工作量較大但可以承受,處理速度可以滿足現(xiàn)有用戶的需求,系較所使用的硬件如無特殊重大事故生存周期內(nèi)不會有破壞性損害,因此,十年內(nèi)可以得到較為可觀收益。</p><p><b>  8 系統(tǒng)的總結(jié)</b></p><p>  自動取款機的虛擬系統(tǒng)主要是模

64、仿銀行真的自動取款機的功能而設(shè)計的,其功能和真正的自動取款機是有很多的差別的,但對我們來說,此 虛擬的自動取款機也是很大的激勵 對大家的認識自動取款機也有一定的幫助 雖然 在功能和界面上和其他的自動取款機系統(tǒng)和很大的差別但是 我們的系統(tǒng) 也是很實用的 可以用在一定的地方的 我們的系統(tǒng)簡介方便容易學(xué)習(xí) 適應(yīng)用于廣大的用戶 </p><p>  一下是我們系統(tǒng)的各個界面的顯示</p><p>

65、  8.1 登錄界面(差磁卡界面)</p><p>  圖 3-5 登陸界面</p><p><b>  8.2開戶界面</b></p><p>  圖 3-6 開戶界面</p><p><b>  8.3取款界面</b></p><p>  圖 3-7 取款界面&

66、lt;/p><p>  8.4 查詢余額界面</p><p>  圖3-8 查詢余額界面</p><p><b>  8.4 存款界面</b></p><p>  圖 3-9 存款界面</p><p><b>  8.5 程序代碼</b></p><p

67、>  以上功能的實現(xiàn)的所用的代碼,有我們的研究人員的精心設(shè)計以及我們的程序人員的奮斗我們,設(shè)計到了最好的代碼來實現(xiàn)我的程序的正常使用的。我們的代碼是安全的,嚴謹?shù)?,當然我們會時常的檢測我們的程序的運行,以保證用戶的安全使用,和用戶對我們公司的滿意,代碼是一下:</p><p><b>  程序代碼:</b></p><p>  using System;<

68、/p><p>  using System.Collections.Generic;</p><p>  using System.Text;</p><p>  //download by http://www.codefans.net</p><p>  namespace ATM</p><p><b> 

69、 {</b></p><p>  class Account</p><p><b>  {</b></p><p>  protected string name;</p><p>  protected string password;</p><p>  protected de

70、cimal balance;</p><p>  public decimal Balance</p><p><b>  {</b></p><p><b>  get</b></p><p><b>  {</b></p><p>  return

71、balance;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public string Name</p><p><b>  {</b></p><p><b>  get</b&

72、gt;</p><p><b>  {</b></p><p>  return name;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public Account(string name, st

73、ring password)</p><p><b>  {</b></p><p>  this.balance = 0;</p><p>  this.name = name;</p><p>  this.password = password;</p><p><b>  }&l

74、t;/b></p><p>  public bool Deposit(decimal amount)</p><p><b>  {</b></p><p>  if (amount <= 0)</p><p>  return false;</p><p>  balance +=

75、 amount;</p><p>  return true;</p><p><b>  }</b></p><p>  public bool Deposit(double amount)</p><p><b>  {</b></p><p>  return Depo

76、sit((decimal)amount);</p><p><b>  }</b></p><p>  public bool Deposit(int amount)</p><p><b>  {</b></p><p>  return Deposit((decimal)amount);<

77、/p><p><b>  }</b></p><p>  public bool Deposit(decimal amount, out decimal balance)</p><p><b>  {</b></p><p>  bool succeed = Deposit(amount);</

78、p><p>  balance = this.balance;</p><p>  return succeed;</p><p><b>  }</b></p><p>  public bool Withdraw(decimal amount)</p><p><b>  {</b

79、></p><p>  if (amount > balance || amount <= 0)</p><p>  return false;</p><p>  balance -= amount;</p><p>  return true;</p><p><b>  }</b

80、></p><p>  public bool Withdraw(double amount)</p><p><b>  {</b></p><p>  return Withdraw((decimal)amount);</p><p><b>  }</b></p><

81、p>  public bool Withdraw(int amount)</p><p><b>  {</b></p><p>  return Withdraw((decimal)amount);</p><p><b>  }</b></p><p>  public bool With

82、draw(decimal amount, out decimal balance)</p><p><b>  {</b></p><p>  bool succeed = Withdraw(amount);</p><p>  balance = this.balance;</p><p>  return succe

83、ed;</p><p><b>  }</b></p><p>  public bool ChangePassword(string oldpassword, string newpassword)</p><p><b>  {</b></p><p>  if (oldpassword !=

84、password)</p><p>  return false;</p><p>  password = newpassword;</p><p>  return true;</p><p><b>  }</b></p><p>  public bool Login(string nam

85、e, string password)</p><p><b>  {</b></p><p>  return (this.name == name && this.password == password);</p><p><b>  }</b></p><p><b&g

86、t;  }</b></p><p><b>  }</b></p><p>  using System;</p><p>  using System.Collections.Generic;</p><p>  using System.Text;</p><p>  //down

87、load by http://www.codefans.net</p><p>  namespace ATM</p><p><b>  {</b></p><p><b>  class ATM</b></p><p><b>  {</b></p><

88、p>  private const string quitCode = "20060824";</p><p>  private Bank bank;</p><p>  public ATM(Bank bank)</p><p><b>  {</b></p><p>  this.bank

89、 = bank;</p><p><b>  }</b></p><p>  public void Start()</p><p><b>  {</b></p><p>  while (true)</p><p><b>  {</b></p

90、><p><b>  // 主界面</b></p><p>  printLogo();</p><p>  Console.WriteLine(" 1. 開戶 ");</p><p>  Console.WriteLine(" 2. 登

91、錄 ");</p><p>  Console.WriteLine("______________________");</p><p>  Console.WriteLine("");</p><p>  Console.Write("你的選擇(回車結(jié)束):");</p&

92、gt;<p>  string code = Console.ReadLine();</p><p>  //quit system</p><p>  if (code == quitCode)</p><p><b>  return;</b></p><p>  if (code == "1

93、") //開戶</p><p>  OpenAccount();</p><p>  else if (code == "2") //登錄</p><p>  LoginAccount();</p><p><b>  }</b></p><p&g

94、t;<b>  }</b></p><p>  private void LoginAccount()</p><p><b>  {</b></p><p>  printLogo();</p><p>  Console.WriteLine(" 請輸入你的賬號的用戶名和密碼

95、 ");</p><p>  Console.WriteLine("____________________________________________");</p><p>  Console.WriteLine("");</p><p>  string name = Input("

96、;用戶名(回車結(jié)束): ");</p><p>  string password = Input("密碼(回車結(jié)束): ");</p><p><b>  //登錄賬號</b></p><p>  Account account;</p><p>  if (!bank.LoginAcco

97、unt(name, password, out account))</p><p><b>  {</b></p><p>  Console.Write("登錄錯誤,請檢查用戶名和密碼是否正確。按Enter鍵繼續(xù)...");</p><p>  Console.Read();</p><p><

98、;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ManageAccount(ref account);</p><p><b>  }</b></p><p&g

99、t;<b>  }</b></p><p>  private void OpenAccount()</p><p><b>  {</b></p><p>  printLogo();</p><p>  Console.WriteLine(" 請輸入你的賬號的用戶名和密碼

100、 ");</p><p>  Console.WriteLine("____________________________________________");</p><p>  Console.WriteLine("");</p><p>  string name = Input("

101、用戶名(回車結(jié)束): ");</p><p>  string password = Input("密碼(回車結(jié)束): ");</p><p><b>  //開戶</b></p><p>  Account account;</p><p>  if (!bank.OpenAccount(

102、name, password, out account))</p><p><b>  {</b></p><p>  Console.Write("開戶錯誤,用戶名可能已經(jīng)存在。按Enter鍵繼續(xù)...");</p><p>  Console.Read();</p><p><b>  

103、}</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  print("開戶", 0, account);</p><p><b>  pause();</b></p>&

104、lt;p>  ManageAccount(ref account);</p><p><b>  }</b></p><p><b>  }</b></p><p>  private void ManageAccount(ref Account account)</p><p><b&

105、gt;  {</b></p><p>  while (true)</p><p><b>  {</b></p><p><b>  //管理賬戶界面</b></p><p>  printLogo();</p><p>  Console.WriteLine(

106、" 1.存款 ");</p><p>  Console.WriteLine(" 2.取款 ");</p><p>  Console.WriteLine(" 3.查詢余額 ");<

107、/p><p>  Console.WriteLine(" 4.修改密碼 ");</p><p>  Console.WriteLine(" 5.退出 ");</p><p>  Console.WriteLine("_______

108、____________________");</p><p>  Console.WriteLine("");</p><p>  Console.WriteLine("你的選擇(回車結(jié)束):");</p><p>  string code = Console.ReadLine();</p><

109、;p><b>  string s;</b></p><p>  decimal amount;</p><p>  bool succeed;</p><p>  switch (code)</p><p><b>  {</b></p><p><b> 

110、 case"1":</b></p><p>  amount = InputNumber("\n輸入存款數(shù)目: ");</p><p>  succeed = account.Deposit(amount);</p><p>  if (succeed)</p><p><b> 

111、 {</b></p><p>  print("存入", amount, account);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>&l

112、t;p>  Console.WriteLine("存款失敗!");</p><p><b>  }</b></p><p><b>  pause();</b></p><p><b>  break;</b></p><p><b>  c

113、ase"2":</b></p><p>  amount = InputNumber("\n輸入取款數(shù)目: ");</p><p>  succeed = account.Withdraw(amount);</p><p>  if (succeed)</p><p><b>  

114、{</b></p><p>  print("取出", amount, account);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><

115、;p>  Console.WriteLine("取款失??!");</p><p><b>  }</b></p><p><b>  pause();</b></p><p><b>  break;</b></p><p><b>  ca

116、se"3":</b></p><p>  print(account);</p><p><b>  pause();</b></p><p><b>  break;</b></p><p><b>  case"4":</b&g

117、t;</p><p>  string oldpassword=Input("當前密碼(回車結(jié)束): ");</p><p>  string newpassword=Input("新密碼(回車結(jié)束): ");</p><p>  succeed=account.ChangePassword(oldpassword,newpa

118、ssword);</p><p>  if(succeed)</p><p>  Console.WriteLine("密碼修改成功!");</p><p><b>  else</b></p><p>  Console.WriteLine("密碼修改失敗!");</p&g

119、t;<p><b>  pause();</b></p><p><b>  break;</b></p><p><b>  case"5":</b></p><p><b>  return;</b></p><p>

120、<b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&l

121、t;p>  private void printLogo()</p><p><b>  {</b></p><p>  Console.WriteLine("\n____________________________");</p><p>  Console.WriteLine("{0}自動取款機

122、 用戶第一 服務(wù)至上", bank.Name);</p><p>  Console.WriteLine("\n____________________________");</p><p><b>  }</b></p><p>  private string Input(string pr

123、ompt)</p><p><b>  {</b></p><p>  Console.Write(prompt);</p><p>  string str = Console.ReadLine();</p><p>  while (str == "")</p><p>&

124、lt;b>  {</b></p><p>  Console.Write("不能為空,{0}", prompt);</p><p>  str = Console.ReadLine();</p><p><b>  }</b></p><p>  return str;</p&

125、gt;<p><b>  }</b></p><p>  private decimal InputNumber(string prompt)</p><p><b>  {</b></p><p>  Console.Write(prompt);</p><p>  string s

126、 = Console.ReadLine();</p><p>  decimal amount = 0;</p><p><b>  try</b></p><p><b>  {</b></p><p>  amount = decimal.Parse(s);</p><p&g

127、t;<b>  }</b></p><p>  catch (Exception)</p><p><b>  {</b></p><p>  Console.Write("輸入的數(shù)值格式不正確,請重新輸入!");</p><p>  amount = InputNumber(p

128、rompt);</p><p><b>  }</b></p><p>  return amount;</p><p><b>  }</b></p><p>  private void pause()</p><p><b>  {</b><

129、/p><p>  Console.Write("按Enter鍵繼續(xù)...");</p><p>  Console.Read();</p><p><b>  }</b></p><p>  private void print(string operation,decimal amount,Accoun

130、t account)</p><p><b>  {</b></p><p>  Console.WriteLine("________________________________");</p><p>  Console.WriteLine("姓名: {0}",account.Name);</

131、p><p>  Console.WriteLine("{0}:{1}",operation,amount);</p><p>  Console.WriteLine("余額: {0}",account.Balance);</p><p>  Console.WriteLine("_____________________

132、___________");</p><p>  Console.WriteLine("{0}成功",operation);</p><p><b>  }</b></p><p>  public void print(Account account)</p><p><b> 

133、 {</b></p><p>  Console.WriteLine("________________________________");</p><p>  Console.WriteLine("姓名: {0}",account.Name);</p><p>  Console.WriteLine("

134、;余額: {0}",account.Balance);</p><p>  Console.WriteLine("________________________________");</p><p><b>  }</b></p><p><b>  }</b></p><

135、;p><b>  }</b></p><p>  using System;</p><p>  using System.Collections.Generic;</p><p>  using System.Text;</p><p>  namespace ATM</p><p>&l

136、t;b>  {</b></p><p>  class Bank</p><p><b>  {</b></p><p>  protected const int MaxAccountNum = 2048;</p><p>  protected string name;</p><

137、;p>  protected List<Account> accounts; //用List<T>來定義賬號集</p><p>  public string Name</p><p><b>  {</b></p><p><b>  get</b></p

138、><p><b>  {</b></p><p>  return name;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public Bank(string name)</p><

139、;p><b>  {</b></p><p>  this.name = name;</p><p>  accounts = new List<Account>(); //創(chuàng)建集合對象</p><p><b>  }</b></p><p>  public

140、 bool LoginAccount(string name,string password,out Account account)</p><p><b>  {</b></p><p>  account=null;</p><p>  foreach (Account acc in accounts) //檢查每一個賬號</p&g

141、t;<p><b>  {</b></p><p>  if(acc.Login(name,password))</p><p><b>  {</b></p><p>  account=acc;</p><p>  return true;</p><p>

溫馨提示

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

評論

0/150

提交評論