




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、溫馨提示程序語言:C、C+、C#、Python(紅色字體 表示本課設(shè)使用的程序設(shè)計(jì)語言)圖形功能選項(xiàng):Win32控制臺程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑體標(biāo)明 表示本課設(shè)的程序圖形類別,默認(rèn)為非圖形界面Win32控制臺程序)數(shù)據(jù)結(jié)構(gòu):基礎(chǔ)類型、數(shù)組、鏈表、雙向鏈表、搜索樹(非平衡二叉樹)、平衡二叉樹、鏈表與平衡二叉樹相結(jié)合、堆棧、隊(duì)列、串、圖(黑體標(biāo)明 表示本課設(shè)使用的數(shù)據(jù)結(jié)構(gòu))C+語言項(xiàng):STL庫(黑體標(biāo)明 表示使用C+的STL庫)編譯環(huán)境:Windows 7 64位旗艦版(Linux及其他環(huán)境請謹(jǐn)慎下載)集成開發(fā)環(huán)境:Visual C+
2、6.0、DEVC+、CodeBlocks、Visual Studio 2015均可通過編譯。(淺藍(lán)色字體 表示需要運(yùn)行修改后的版本,請用戶自行選擇源代碼測試)分多頭文件編譯:否(所有代碼基本都包含在一個(gè)文件內(nèi),如需試驗(yàn)頭文件功能,請自行參考相關(guān)文獻(xiàn))內(nèi)容說明:1、課設(shè)題目及預(yù)覽內(nèi)容 將在第二頁開始展示。2、代碼行數(shù):241行3、目錄 所示內(nèi)容,本文基本涵蓋,如無內(nèi)容,會(huì)在本頁進(jìn)行說明。4、附錄 絕對包含用戶使用手冊及程序完整源代碼和詳細(xì)注釋。5、如需下載 其他 頭文件(例如DirectX需另行配置),本文會(huì)在此進(jìn)行說明。6、本文撰寫內(nèi)容僅供學(xué)習(xí)參考,另外,由于本人水平有限,編寫之處難免存在錯(cuò)誤
3、和紕漏,懇請各位老師或同學(xué)批評指正。面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告書 設(shè)計(jì)題目: 模擬ATM機(jī)存取款管理系統(tǒng)設(shè)計(jì) 指導(dǎo)老師: 學(xué)生班級: 學(xué)生學(xué)號: 學(xué)生姓名: 同組人員: 時(shí) 間: 2017.12. 課 程 設(shè) 計(jì) 任 務(wù) 書題 目 模擬ATM機(jī)存取款管理系統(tǒng)設(shè)計(jì)一、設(shè)計(jì)內(nèi)容及要求(1)卡號、密碼輸入最多三次,否則直接退出系統(tǒng)。(2)取款功能:取款金額受卡余額、機(jī)單筆最大取款金額及機(jī)當(dāng)前剩余金額的限制。(3)查詢功能:實(shí)現(xiàn)查詢余額功能。(4)更改密碼:實(shí)現(xiàn)密碼更改功能,對于密碼要有2次驗(yàn)證。(5)鎖卡功能:實(shí)現(xiàn)卡被鎖的功能。(6)退卡功能:實(shí)現(xiàn)退出系統(tǒng)功能。二、設(shè)計(jì)原始資料 三、設(shè)計(jì)完成后提交
4、的成果及其相關(guān)資料。 四、主要參考資料 c+程序設(shè)計(jì)(第二版) 五、進(jìn)程安排12.25:類的設(shè)計(jì)12.26:模塊4.2、4.3的設(shè)計(jì)12.27:模塊4.4、4.5的設(shè)計(jì)12.28:完成課程設(shè)計(jì)報(bào)告 第一章 概述 使用ATM柜員機(jī)可以節(jié)約人力資源,方便用戶進(jìn)行簡單常用的操作,并且為用戶全天候的服務(wù),提高銀行效率,給人們提供了非常大的便利。本文就以C+語言設(shè)計(jì)一項(xiàng)簡單的模擬ATM柜員機(jī)程序。運(yùn)行程序時(shí),當(dāng)輸入給定的卡號和密碼(初始卡號和密碼都為)后,系統(tǒng)就能登錄ATM柜員機(jī)系統(tǒng),用戶可以進(jìn)入功能實(shí)現(xiàn)界面,有查詢余額,取款,存款,修改密碼等功能。設(shè)計(jì)要點(diǎn):使用文本命令行界面。當(dāng)輸入給定的卡號和密碼(
5、初始卡號和密碼為)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:l 查詢余額:初始余額為10000元l ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。l ATM存款:不能出現(xiàn)負(fù)存款。修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 第二章 設(shè)計(jì)內(nèi)容2.1功能:設(shè)計(jì)一個(gè)模擬ATM柜員機(jī)的程序,輸入你需要的操作(選擇相對的括號里的阿拉伯?dāng)?shù)字)程序具體功能有:(1) 查詢余額(2) ATM取款(3) ATM存款(4) 修改密碼(5) 退出系統(tǒng)2.2 操作:本程序通過
6、鍵盤操作。在運(yùn)行過程中,當(dāng)用戶輸入正確的賬號和密碼時(shí),會(huì)出現(xiàn)一個(gè)功能界面,按照功能界面操作。只需輸入所需操作的序號,便可執(zhí)行其中相應(yīng)的功能。但是需要小心的是如果輸錯(cuò)密碼三次,便會(huì)鎖卡,這時(shí)將無法操作。 第三章 總體設(shè)計(jì)3.1模塊化設(shè)計(jì)為實(shí)現(xiàn)系統(tǒng)功能,本程序主要分為六個(gè)模塊。它們分別為:主界面、查詢余額、ATM取款、ATM存款、修改密碼、退出系統(tǒng)。這六個(gè)函數(shù)再通過主函數(shù)調(diào)用分別得以實(shí)現(xiàn)。主函數(shù),首先提供了程序運(yùn)行時(shí)的友好界面,提供客戶選擇的菜單。然后,通過執(zhí)行多分支選擇語句switch語句,分別實(shí)現(xiàn)其它各個(gè)函數(shù)的調(diào)用功能。其它各個(gè)函數(shù)的功能分別如下:ATM() 構(gòu)造函數(shù)face() 構(gòu)造函數(shù)ch
7、eckout() 檢驗(yàn)卡號密碼lock() 鎖卡checkmoney() 查詢余額getmoney() ATM取款savemoney() ATM存款change() 修改密碼exitsystem() 退出系統(tǒng)show() 打印界面3.2程序運(yùn)行示意圖輸入卡號、密碼取款存款主界面查詢余額修改密碼退出系統(tǒng) 第四章 詳細(xì)設(shè)計(jì)4.1類的設(shè)計(jì) 設(shè)計(jì)了兩個(gè)類,ATM類和face類。ATM類完成ATM柜員機(jī)的模擬,包括:驗(yàn)證卡號密碼,查詢余額,修改密碼,取款,存款,退出系統(tǒng)等功能。face類完成顯示登陸界面的功能,顯示查詢余額,修改密碼,取款,存款,退出系統(tǒng)的選項(xiàng)。ATM類的設(shè)計(jì):class ATMprot
8、ected:string card;string password;float money;static int times;public:ATM(string c,string p,float m)/構(gòu)造函數(shù)card=c;password=p;money=m;int checkout();/驗(yàn)證卡號密碼void lock();/鎖卡void checkmoney();/查詢余額void getmoney();/取款void savemoney();/存款void change();/修改密碼void exitsystem();/退出系統(tǒng);face類的設(shè)計(jì)class face:public A
9、TMprotected:int x;public:face(string c,string p,float m):ATM(c,p,m)/構(gòu)造函數(shù)void show();/顯示界面;4.2 ATM柜員機(jī)的登陸在main主函數(shù)中實(shí)例化一個(gè)face類的對象,卡號密碼都為,默認(rèn)余額為10000.在程序運(yùn)行中輸入卡號密碼,若都正確即可進(jìn)入主界面,選擇ATM柜員機(jī)的功能。程序運(yùn)行首先要求用戶輸入卡號和密碼,卡號和密碼首先由main主函數(shù)構(gòu)造默認(rèn),然后用checkout()函數(shù)判斷卡號密碼是否一致,一致則登陸,如果連續(xù)3次輸入錯(cuò)誤,則用lock()函數(shù)鎖定卡號密碼。相關(guān)代碼:void ATM:lock()i
10、f(times=3)cout輸入密碼3次錯(cuò)誤,該卡已被鎖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柜員機(jī)修改密碼功能新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才能成功修改密碼。輸入正確卡號密碼后,或者實(shí)現(xiàn)其他功能退回主界面后都可以選擇柜員機(jī)的修改密碼功能,在運(yùn)
11、行過程中先要求用戶輸入舊密碼,判斷用戶輸入的舊密碼是否與默認(rèn)密碼相同,若相同則繼續(xù)運(yùn)行,若不同則需要重新輸入。驗(yàn)證舊密碼正確后系統(tǒng)會(huì)要求用戶定義新密碼,新密碼要重復(fù)輸入兩次,要求兩次必須重復(fù)正確且新密碼符合要求才能修改成功。相關(guān)代碼: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柜員機(jī)存款取款功能 輸入正確卡號密碼后,即可登錄柜員機(jī)主界面,其中可以選擇取款,存款功能。取款功能要求用戶輸入取錢金額,取錢功能用if語句判斷金額是否是100的倍數(shù)且金額是否大于5000或小于0,若符合要求,則順利運(yùn)行。用getmoney()函數(shù)實(shí)現(xiàn)更新用戶余額,余額為賬戶余額減去取錢金額,當(dāng)取錢成功時(shí),系統(tǒng)會(huì)提示用戶是否繼續(xù)取錢,若輸入“Y”則繼續(xù),若輸入“N”則退回主界面,若輸入其他字符則要重新輸入。存款功能要求用戶不能輸入負(fù)值的金額,用if語句判斷,若符合條件,則成功取款,并且用savemoney()函數(shù)更新余額,余額為賬戶余額加上存款金額,當(dāng)成功存款時(shí),系統(tǒng)會(huì)提示是否繼續(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柜員機(jī)查詢余額功能輸入正確卡號密碼后,即可登錄柜員機(jī)主界面,其中可以選擇查詢余額功能。余額主要調(diào)用checkmon
16、ey()函數(shù)。代碼如下:void ATM:checkmoney()/查詢余額cout余額:moneyendl;cout查詢余額成功!endl; 第五章調(diào)試與測試5.1調(diào)試過程中的主要問題由于本程序的運(yùn)行是當(dāng)輸入卡號密碼成功后登陸主界面,在主界面中執(zhí)行完一個(gè)功能后再次回到主界面進(jìn)行操作,而程序大體上是沒問題的,但是還是有一些小問題:當(dāng)執(zhí)行完存款或取款后,沒有提示是否繼續(xù)執(zhí)行此操作,而是直接退回主界面,這是一處不善人意的地方,但是經(jīng)過修改,已將此功能加入程序。5.2具體測試過程(1) 檢驗(yàn)卡號密碼(如下圖)(2)卡號密碼輸入成功(如下圖)(3)卡號密碼輸入有誤(如下圖)(4)查詢余額(如下圖)(5
17、) ATM取款成功(如下圖)(6) ATM取款不成功(如下圖)(7) ATM存款成功(如下圖)(8) ATM存款不成功(如下圖)(9) 修改密碼成功(如下圖)(10) 修改密碼失?。ㄈ缦聢D)(11)退出系統(tǒng) (如下圖) 第六章 心得體會(huì)經(jīng)過一個(gè)學(xué)期對C+程序設(shè)計(jì)的學(xué)習(xí),我學(xué)習(xí)到了基本的理論知識,了解到了C+語言程序設(shè)計(jì)的思想,這些知識都為我的課程實(shí)踐和進(jìn)一步的學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。在為期近兩周的C+課程設(shè)計(jì)中,我體會(huì)頗多,學(xué)到了很多東西。我加強(qiáng)了對C+程序設(shè)計(jì)這門課程的認(rèn)識,并且復(fù)習(xí)了自己以前學(xué)習(xí)到的知識。這些都使得我對計(jì)算機(jī)語言的學(xué)習(xí)有了更深入的認(rèn)識!總之,通過這次課程設(shè)計(jì),我收獲頗豐,相信
18、會(huì)為自己以后的學(xué)習(xí)和工作帶來很大的好處。像職工信息表這樣的程序設(shè)計(jì),經(jīng)歷了平時(shí)在課堂和考試中不會(huì)出現(xiàn)的問題和考驗(yàn)。而這些問題,這并不是我們平時(shí)只靠課本,就可以輕易解決的。所以,鍛煉了我們挑戰(zhàn)難題,學(xué)會(huì)用已掌握的知識去解決具體問題的能力,進(jìn)一步培養(yǎng)了獨(dú)立思考問題和解決問題的能力。特別是學(xué)會(huì)了在VisualC+中如何調(diào)試程序的方法。當(dāng)然,老師的指導(dǎo)和同學(xué)的幫助也是不可忽視的,他們給了我許多提示和幫助,教會(huì)了我編譯復(fù)雜程序的方法。在老師和同學(xué)的幫助下,通過自己的努力,終于完成了這次職工信息表的簡單課程設(shè)計(jì)。我經(jīng)過這段時(shí)間的編程,對其中的艱辛,我是深有體會(huì)。從剛開始的選擇程序、理解程序到后來的調(diào)試程序
19、以及改進(jìn)程序這個(gè)過程中,我遇到了各種各樣的困難和挫折。但是我堅(jiān)定信念,對自己充滿了信心,想盡一切辦法克服重重困難。通過課程設(shè)計(jì)的訓(xùn)練,我進(jìn)一步學(xué)習(xí)和掌握了對程序的設(shè)計(jì)和編寫,從中體會(huì)到了面向?qū)ο蟪绦蛟O(shè)計(jì)的方便和巧妙。懂得了在進(jìn)行編寫一個(gè)程序之前,要有明確的目標(biāo)和整體的設(shè)計(jì)思想。另外某些具體的細(xì)節(jié)內(nèi)容也是相當(dāng)?shù)闹匾?。這些寶貴的編程思想和從中摸索到的經(jīng)驗(yàn)都是在編程的過程中獲得的寶貴財(cái)富。這些經(jīng)驗(yàn)對我以后的編程會(huì)有很大的幫助的,我要好好利用。雖然這次課程設(shè)計(jì)是在參考程序的基礎(chǔ)之上進(jìn)行的,但是我覺得對自己是一個(gè)挑戰(zhàn)和鍛煉。我很欣慰自己能在程序中加入自己的想法和有關(guān)程序內(nèi)容,也就是對它的程序改進(jìn)了一番改
20、進(jìn),并有創(chuàng)新。但是我感覺自己的創(chuàng)新還不夠典型,總之還不是很滿意。另外由于時(shí)間的緊迫和對知識的了解不夠廣泛,造成了系統(tǒng)中還存在許多不足,功能上還不夠完善。以后我會(huì)繼續(xù)努力,大膽創(chuàng)新,爭取能編寫出透射著自己思想的程序。這次課程設(shè)計(jì)讓我充分認(rèn)識到了自己的不足,認(rèn)識到了動(dòng)手能力的重要性。我會(huì)在以后的學(xué)習(xí)中更加努力鍛煉自己,提高自己,讓自己寫出更好更完善的程序,為以后的編程打好基礎(chǔ)!附 錄用戶使用手冊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) /構(gòu)造函數(shù)int checkout();/驗(yàn)證卡號密碼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) /構(gòu)造函數(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次錯(cuò)誤,該卡已被鎖 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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集中采購招商管理制度
- 郵政夜間值班管理制度
- 項(xiàng)目人員分配管理制度
- 陶瓷車間配料管理制度
- 裝修公司管理制度權(quán)限
- 思政課教學(xué)改革新路徑探索
- 深遠(yuǎn)海養(yǎng)殖產(chǎn)業(yè)未來發(fā)展藍(lán)圖
- 低空經(jīng)濟(jì)推動(dòng)未來城市空中出行革命
- 2025至2030年中國維生素C片市場現(xiàn)狀分析及前景預(yù)測報(bào)告
- 2025至2030年中國純天然牛角公章數(shù)據(jù)監(jiān)測研究報(bào)告
- 工程安全檢查記錄表
- 我與地壇讀書分享
- 車輛維修質(zhì)量保證措施
- 鋁材切割機(jī)操作規(guī)程
- 浙江大學(xué)《普通化學(xué)》(第6版)筆記和課后習(xí)題(含考研真題)詳解
- 電磁學(xué)知到章節(jié)答案智慧樹2023年天津大學(xué)
- EIM Book 1 Unit 10 Don't give up單元知識要點(diǎn)
- 《塑造打勝仗的團(tuán)隊(duì)系列 8冊 》讀書筆記思維導(dǎo)圖
- 新鄉(xiāng)縣恒新熱力有限公司集中供熱項(xiàng)目二期工程變更項(xiàng)目環(huán)境影響報(bào)告
- A3報(bào)告解析課件
- “越……越……”“越來越……”課件
評論
0/150
提交評論