![C++模擬ATM機存取款管理系統(tǒng)設計_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/8/844de8af-b4cf-403f-bfe1-473acbf83c76/844de8af-b4cf-403f-bfe1-473acbf83c761.gif)
![C++模擬ATM機存取款管理系統(tǒng)設計_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/8/844de8af-b4cf-403f-bfe1-473acbf83c76/844de8af-b4cf-403f-bfe1-473acbf83c762.gif)
![C++模擬ATM機存取款管理系統(tǒng)設計_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/8/844de8af-b4cf-403f-bfe1-473acbf83c76/844de8af-b4cf-403f-bfe1-473acbf83c763.gif)
![C++模擬ATM機存取款管理系統(tǒng)設計_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/8/844de8af-b4cf-403f-bfe1-473acbf83c76/844de8af-b4cf-403f-bfe1-473acbf83c764.gif)
![C++模擬ATM機存取款管理系統(tǒng)設計_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/8/844de8af-b4cf-403f-bfe1-473acbf83c76/844de8af-b4cf-403f-bfe1-473acbf83c765.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、溫馨提示程序語言:C、C+、C#、Python(紅色字體 表示本課設使用的程序設計語言)圖形功能選項:Win32控制臺程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑體標明 表示本課設的程序圖形類別,默認為非圖形界面Win32控制臺程序)數(shù)據(jù)結構:基礎類型、數(shù)組、鏈表、雙向鏈表、搜索樹(非平衡二叉樹)、平衡二叉樹、鏈表與平衡二叉樹相結合、堆棧、隊列、串、圖(黑體標明 表示本課設使用的數(shù)據(jù)結構)C+語言項:STL庫(黑體標明 表示使用C+的STL庫)編譯環(huán)境:Windows 7 64位旗艦版(Linux及其他環(huán)境請謹慎下載)集成開發(fā)環(huán)境:Visual C+
2、6.0、DEVC+、CodeBlocks、Visual Studio 2015均可通過編譯。(淺藍色字體 表示需要運行修改后的版本,請用戶自行選擇源代碼測試)分多頭文件編譯:否(所有代碼基本都包含在一個文件內(nèi),如需試驗頭文件功能,請自行參考相關文獻)內(nèi)容說明:1、課設題目及預覽內(nèi)容 將在第二頁開始展示。2、代碼行數(shù):241行3、目錄 所示內(nèi)容,本文基本涵蓋,如無內(nèi)容,會在本頁進行說明。4、附錄 絕對包含用戶使用手冊及程序完整源代碼和詳細注釋。5、如需下載 其他 頭文件(例如DirectX需另行配置),本文會在此進行說明。6、本文撰寫內(nèi)容僅供學習參考,另外,由于本人水平有限,編寫之處難免存在錯誤
3、和紕漏,懇請各位老師或同學批評指正。面向?qū)ο蟪绦蛟O計課程設計報告書 設計題目: 模擬ATM機存取款管理系統(tǒng)設計 指導老師: 學生班級: 學生學號: 學生姓名: 同組人員: 時 間: 2017.12. 課 程 設 計 任 務 書題 目 模擬ATM機存取款管理系統(tǒng)設計一、設計內(nèi)容及要求(1)卡號、密碼輸入最多三次,否則直接退出系統(tǒng)。(2)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。(3)查詢功能:實現(xiàn)查詢余額功能。(4)更改密碼:實現(xiàn)密碼更改功能,對于密碼要有2次驗證。(5)鎖卡功能:實現(xiàn)卡被鎖的功能。(6)退卡功能:實現(xiàn)退出系統(tǒng)功能。二、設計原始資料 三、設計完成后提交
4、的成果及其相關資料。 四、主要參考資料 c+程序設計(第二版) 五、進程安排12.25:類的設計12.26:模塊4.2、4.3的設計12.27:模塊4.4、4.5的設計12.28:完成課程設計報告 第一章 概述 使用ATM柜員機可以節(jié)約人力資源,方便用戶進行簡單常用的操作,并且為用戶全天候的服務,提高銀行效率,給人們提供了非常大的便利。本文就以C+語言設計一項簡單的模擬ATM柜員機程序。運行程序時,當輸入給定的卡號和密碼(初始卡號和密碼都為)后,系統(tǒng)就能登錄ATM柜員機系統(tǒng),用戶可以進入功能實現(xiàn)界面,有查詢余額,取款,存款,修改密碼等功能。設計要點:使用文本命令行界面。當輸入給定的卡號和密碼(
5、初始卡號和密碼為)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:l 查詢余額:初始余額為10000元l ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。l ATM存款:不能出現(xiàn)負存款。修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 第二章 設計內(nèi)容2.1功能:設計一個模擬ATM柜員機的程序,輸入你需要的操作(選擇相對的括號里的阿拉伯數(shù)字)程序具體功能有:(1) 查詢余額(2) ATM取款(3) ATM存款(4) 修改密碼(5) 退出系統(tǒng)2.2 操作:本程序通過
6、鍵盤操作。在運行過程中,當用戶輸入正確的賬號和密碼時,會出現(xiàn)一個功能界面,按照功能界面操作。只需輸入所需操作的序號,便可執(zhí)行其中相應的功能。但是需要小心的是如果輸錯密碼三次,便會鎖卡,這時將無法操作。 第三章 總體設計3.1模塊化設計為實現(xiàn)系統(tǒng)功能,本程序主要分為六個模塊。它們分別為:主界面、查詢余額、ATM取款、ATM存款、修改密碼、退出系統(tǒng)。這六個函數(shù)再通過主函數(shù)調(diào)用分別得以實現(xiàn)。主函數(shù),首先提供了程序運行時的友好界面,提供客戶選擇的菜單。然后,通過執(zhí)行多分支選擇語句switch語句,分別實現(xiàn)其它各個函數(shù)的調(diào)用功能。其它各個函數(shù)的功能分別如下:ATM() 構造函數(shù)face() 構造函數(shù)ch
7、eckout() 檢驗卡號密碼lock() 鎖卡checkmoney() 查詢余額getmoney() ATM取款savemoney() ATM存款change() 修改密碼exitsystem() 退出系統(tǒng)show() 打印界面3.2程序運行示意圖輸入卡號、密碼取款存款主界面查詢余額修改密碼退出系統(tǒng) 第四章 詳細設計4.1類的設計 設計了兩個類,ATM類和face類。ATM類完成ATM柜員機的模擬,包括:驗證卡號密碼,查詢余額,修改密碼,取款,存款,退出系統(tǒng)等功能。face類完成顯示登陸界面的功能,顯示查詢余額,修改密碼,取款,存款,退出系統(tǒng)的選項。ATM類的設計:class ATMprot
8、ected:string card;string password;float money;static int times;public:ATM(string c,string p,float m)/構造函數(shù)card=c;password=p;money=m;int checkout();/驗證卡號密碼void lock();/鎖卡void checkmoney();/查詢余額void getmoney();/取款void savemoney();/存款void change();/修改密碼void exitsystem();/退出系統(tǒng);face類的設計class face:public A
9、TMprotected:int x;public:face(string c,string p,float m):ATM(c,p,m)/構造函數(shù)void show();/顯示界面;4.2 ATM柜員機的登陸在main主函數(shù)中實例化一個face類的對象,卡號密碼都為,默認余額為10000.在程序運行中輸入卡號密碼,若都正確即可進入主界面,選擇ATM柜員機的功能。程序運行首先要求用戶輸入卡號和密碼,卡號和密碼首先由main主函數(shù)構造默認,然后用checkout()函數(shù)判斷卡號密碼是否一致,一致則登陸,如果連續(xù)3次輸入錯誤,則用lock()函數(shù)鎖定卡號密碼。相關代碼:void ATM:lock()i
10、f(times=3)cout輸入密碼3次錯誤,該卡已被鎖endl;exitsystem();int ATM:checkout()string a;string b;while(1)couta;coutb;if(card!=a|password!=b)times+;lock();cout卡號或密碼有誤,請重新輸入endl;elsebreak;return 1;4.3 ATM柜員機修改密碼功能新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才能成功修改密碼。輸入正確卡號密碼后,或者實現(xiàn)其他功能退回主界面后都可以選擇柜員機的修改密碼功能,在運
11、行過程中先要求用戶輸入舊密碼,判斷用戶輸入的舊密碼是否與默認密碼相同,若相同則繼續(xù)運行,若不同則需要重新輸入。驗證舊密碼正確后系統(tǒng)會要求用戶定義新密碼,新密碼要重復輸入兩次,要求兩次必須重復正確且新密碼符合要求才能修改成功。相關代碼:void ATM:change()int count=0,i,j,flag=1;string secondpassword;string newpassword;string oldpassword;coutoldpassword;if(password=oldpassword)coutnewpassword;if(newpassword.size()=6)for
12、(i=0;inewpassword.size();i+)for(j=i+1;jnewpassword.size();j+)if(newpasswordi=newpasswordj)count+;if(count6)while(flag)coutsecondpassword;if(newpassword=secondpassword)cout密碼修改成功!endl;flag=0;elsecout兩次密碼輸入不一樣,請重新輸入endl;flag=1;elsecout修改密碼失敗,請重新修改endl;elsecout修改密碼失敗,請重新修改endl;elsecout修改密碼失敗,請重新修改endl;
13、4.4 ATM柜員機存款取款功能 輸入正確卡號密碼后,即可登錄柜員機主界面,其中可以選擇取款,存款功能。取款功能要求用戶輸入取錢金額,取錢功能用if語句判斷金額是否是100的倍數(shù)且金額是否大于5000或小于0,若符合要求,則順利運行。用getmoney()函數(shù)實現(xiàn)更新用戶余額,余額為賬戶余額減去取錢金額,當取錢成功時,系統(tǒng)會提示用戶是否繼續(xù)取錢,若輸入“Y”則繼續(xù),若輸入“N”則退回主界面,若輸入其他字符則要重新輸入。存款功能要求用戶不能輸入負值的金額,用if語句判斷,若符合條件,則成功取款,并且用savemoney()函數(shù)更新余額,余額為賬戶余額加上存款金額,當成功存款時,系統(tǒng)會提示是否繼續(xù)
14、存款,若輸入“Y”則繼續(xù),若輸入“N”則退回主界面,若輸入其他字符則要重新輸入。存款功能代碼:void ATM:savemoney()/存款char ch;float save;/存入金額docoutsave;if(save0)cout存款金額有誤,請重新輸入endl;elsecout正在存款中,請稍候.endl;money=money+save;cout交易成功!endl;cout請問是否繼續(xù)存款?(Y/N)ch;while(ch!=Y&ch!=N)cout該操作無效,請重新輸入:ch;while(ch=Y); 取款功能代碼:void ATM:getmoney()/取款int get;/取款
15、金額char ch;docoutget;if(get5000|get0|get%100!=0)cout支取金額有誤,請重新輸入endl;else if(money-get)0)cout對不起,您的余額不足,請重新輸入endl;elsecout正在取款中,請稍候.endl;money=money-get;cout取款成功!endl;cout請問是否繼續(xù)取款?(Y/N)ch;while(ch!=Y&ch!=N)cout該操作無效,請重新輸入:ch;while(ch=Y);4.5 ATM柜員機查詢余額功能輸入正確卡號密碼后,即可登錄柜員機主界面,其中可以選擇查詢余額功能。余額主要調(diào)用checkmon
16、ey()函數(shù)。代碼如下:void ATM:checkmoney()/查詢余額cout余額:moneyendl;cout查詢余額成功!endl; 第五章調(diào)試與測試5.1調(diào)試過程中的主要問題由于本程序的運行是當輸入卡號密碼成功后登陸主界面,在主界面中執(zhí)行完一個功能后再次回到主界面進行操作,而程序大體上是沒問題的,但是還是有一些小問題:當執(zhí)行完存款或取款后,沒有提示是否繼續(xù)執(zhí)行此操作,而是直接退回主界面,這是一處不善人意的地方,但是經(jīng)過修改,已將此功能加入程序。5.2具體測試過程(1) 檢驗卡號密碼(如下圖)(2)卡號密碼輸入成功(如下圖)(3)卡號密碼輸入有誤(如下圖)(4)查詢余額(如下圖)(5
17、) ATM取款成功(如下圖)(6) ATM取款不成功(如下圖)(7) ATM存款成功(如下圖)(8) ATM存款不成功(如下圖)(9) 修改密碼成功(如下圖)(10) 修改密碼失敗(如下圖)(11)退出系統(tǒng) (如下圖) 第六章 心得體會經(jīng)過一個學期對C+程序設計的學習,我學習到了基本的理論知識,了解到了C+語言程序設計的思想,這些知識都為我的課程實踐和進一步的學習打下了堅實的基礎。在為期近兩周的C+課程設計中,我體會頗多,學到了很多東西。我加強了對C+程序設計這門課程的認識,并且復習了自己以前學習到的知識。這些都使得我對計算機語言的學習有了更深入的認識!總之,通過這次課程設計,我收獲頗豐,相信
18、會為自己以后的學習和工作帶來很大的好處。像職工信息表這樣的程序設計,經(jīng)歷了平時在課堂和考試中不會出現(xiàn)的問題和考驗。而這些問題,這并不是我們平時只靠課本,就可以輕易解決的。所以,鍛煉了我們挑戰(zhàn)難題,學會用已掌握的知識去解決具體問題的能力,進一步培養(yǎng)了獨立思考問題和解決問題的能力。特別是學會了在VisualC+中如何調(diào)試程序的方法。當然,老師的指導和同學的幫助也是不可忽視的,他們給了我許多提示和幫助,教會了我編譯復雜程序的方法。在老師和同學的幫助下,通過自己的努力,終于完成了這次職工信息表的簡單課程設計。我經(jīng)過這段時間的編程,對其中的艱辛,我是深有體會。從剛開始的選擇程序、理解程序到后來的調(diào)試程序
19、以及改進程序這個過程中,我遇到了各種各樣的困難和挫折。但是我堅定信念,對自己充滿了信心,想盡一切辦法克服重重困難。通過課程設計的訓練,我進一步學習和掌握了對程序的設計和編寫,從中體會到了面向?qū)ο蟪绦蛟O計的方便和巧妙。懂得了在進行編寫一個程序之前,要有明確的目標和整體的設計思想。另外某些具體的細節(jié)內(nèi)容也是相當?shù)闹匾_@些寶貴的編程思想和從中摸索到的經(jīng)驗都是在編程的過程中獲得的寶貴財富。這些經(jīng)驗對我以后的編程會有很大的幫助的,我要好好利用。雖然這次課程設計是在參考程序的基礎之上進行的,但是我覺得對自己是一個挑戰(zhàn)和鍛煉。我很欣慰自己能在程序中加入自己的想法和有關程序內(nèi)容,也就是對它的程序改進了一番改
20、進,并有創(chuàng)新。但是我感覺自己的創(chuàng)新還不夠典型,總之還不是很滿意。另外由于時間的緊迫和對知識的了解不夠廣泛,造成了系統(tǒng)中還存在許多不足,功能上還不夠完善。以后我會繼續(xù)努力,大膽創(chuàng)新,爭取能編寫出透射著自己思想的程序。這次課程設計讓我充分認識到了自己的不足,認識到了動手能力的重要性。我會在以后的學習中更加努力鍛煉自己,提高自己,讓自己寫出更好更完善的程序,為以后的編程打好基礎!附 錄用戶使用手冊1、卡號: 密碼:2、根據(jù)提示,輸入指定內(nèi)容即可。程序源代碼/#include stdafx.h#include#include#include#include#include#include#pragma
21、 warning (disable:4996)using namespace std;/* 類 */class ATMprotected:string card;string password;float money;static int times;public:ATM(string c, string p, float m) :card(c), password(p), money(m) /構造函數(shù)int checkout();/驗證卡號密碼void lock();/鎖卡void checkmoney();/查詢余額void getmoney();/取款void savemoney();/
22、存款void change();/修改密碼void exitsystem();/退出系統(tǒng);int ATM:times = 0;class face :public ATMprotected:int x;public:face(string c, string p, float m) :ATM(c, p, m) /構造函數(shù)void show();/顯示界面;void face:show()cout endl * endl;cout 1.查詢余額 endl;cout 2.ATM取款 endl;cout 3.ATM存款 endl;cout 4.修改密碼 endl;cout 5.退出 endl;cou
23、t * endl;cout 請輸入您需要查詢的信息:;void ATM:lock()if (times = 3)cout 輸入密碼3次錯誤,該卡已被鎖 endl;exitsystem();int ATM:checkout()string a;string b;while (1)cout a;cout b;if (card != a | password != b)times+;lock();cout 卡號或密碼有誤,請重新輸入 endl;elsebreak;return 1;void ATM:change()int count = 0, i, j, flag = 1;string second
24、password;string newpassword;string oldpassword;cout oldpassword;if (password = oldpassword)cout newpassword;if (newpassword.size() = 6)for (i = 0; inewpassword.size(); i+)for (j = i + 1; jnewpassword.size(); j+)if (newpasswordi = newpasswordj)count+;if (count6)while (flag)cout secondpassword;if (new
25、password = secondpassword)cout 密碼修改成功! endl;flag = 0;elsecout 兩次密碼輸入不一樣,請重新輸入 endl;flag = 1;elsecout 修改密碼失敗,請重新修改 endl;elsecout 修改密碼失敗,請重新修改 endl;elsecout 修改密碼失敗,請重新修改 endl;void ATM:exitsystem()exit(0);void ATM:savemoney()/存款char ch;float save;/存入金額docout save;if (save0)cout 存款金額有誤,請重新輸入 endl;elsecout 正在存款中,請稍候. endl;money = money + save;cout 交易成功! endl;cout 請問是否繼續(xù)存款?(Y/N) ch;while (ch != Y&ch != y&ch != n&ch != N)cout 該操作無效,請重新輸入: ch; while (ch = Y | y = ch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年五年級語文上冊第二單元9西風胡楊教案設計語文S版
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院中國醫(yī)師節(jié)活動總結
- 八年級第一學期體育教學計劃
- 少先隊工作計劃第一學期
- 年度衛(wèi)生工作計劃范文
- 加工制造機械租賃合同
- 培訓安置協(xié)議書范本
- 高校聘用合同范本
- 股票質(zhì)押擔保合同范本
- 拼音聽評課記錄幼兒園
- 六年級下冊數(shù)學應用題練習100題及答案
- 5系鋁合金制備工藝
- 急診科護士的婦產(chǎn)科急癥急救
- 《案場服務禮儀》課件
- 醫(yī)療器械-軟件設計和開發(fā)-驗證報告-模板范例
- 學校食堂《風險管控清單》
- 小學生研學旅行展示ppt模板
- (完整版)高標準農(nóng)田建設施工組織設計
- 鋼琴教學大綱
- 【字貼】人教PEP版-小學英語四年級上冊單詞表國標體描紅字帖(含音標)
- 班組建設考核制度
評論
0/150
提交評論