版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文---基于wcf的atm自動取款機系統(tǒng)
- 自動取款機畢業(yè)設(shè)計
- 自動取款機畢業(yè)設(shè)計---銀行取款機操作軟件的設(shè)計
- atm自動取款機系統(tǒng)設(shè)計
- 股票--取款機
- atm自動取款機模擬設(shè)計
- atm銀行自動取款機c程序
- atm自動取款機系統(tǒng)需求分析
- atm自動取款機用例圖
- 自動取款機終端系統(tǒng)設(shè)計.doc
- 銀行自動存取款機(atm機)怎樣存錢
- jx0695-自動取款機終端系統(tǒng)設(shè)計
- atm自動存取款機服務(wù)指南
- 銀行atm自動取款機系統(tǒng)課程設(shè)計
- 銀行atm自動取款機系統(tǒng)課程設(shè)計
- 基于單片機自動取款機系統(tǒng)課程設(shè)計
- 基于自動取款機視頻的人臉偽裝檢測.pdf
- 中國農(nóng)業(yè)銀行自動取款機系統(tǒng)
- 基于vb.net的atm取款機模擬軟件—界面設(shè)計【畢業(yè)論文】
- 基于vb.net的atm取款機模擬軟件—數(shù)據(jù)庫設(shè)計【畢業(yè)論文】
評論
0/150
提交評論