第一篇:ATM自動取款機(jī)C++課程設(shè)計
C++課程設(shè)計
學(xué)校: 惠州學(xué)院
題目: 設(shè)計ATM自動取款機(jī)系統(tǒng) 系別: 電子科學(xué)系 班級: 11電信2班 學(xué)號: 110703229 姓名: 王志勇
2014年4月21日
一、課程設(shè)計目的及要求
1.1設(shè)計目的
1.提高和加強(qiáng)學(xué)生的計算機(jī)應(yīng)用與軟件開發(fā)能力,使學(xué)生由初學(xué)者向?qū)I(yè)的程序員過渡。
2.培養(yǎng)學(xué)生獨立分析問題、解決問題、查閱資料以及自學(xué)能力,以適應(yīng)計算機(jī)產(chǎn)業(yè)日新月異發(fā)展的形勢。
3.學(xué)習(xí)和掌握礎(chǔ)。C++程序設(shè)計方法以及上機(jī)調(diào)試技巧,為今后學(xué)習(xí)其它專業(yè)課程打好基
1.2 ATM自動取款機(jī)設(shè)計要求
1.實現(xiàn)ATM取款機(jī)的基本功能,如給用戶提供開戶、查詢余額、取款、修改密碼、吃卡、退出系統(tǒng)等服務(wù),可根據(jù)實際情況添加(如繳費、轉(zhuǎn)賬等服務(wù))。
2.對于用戶要求輸入相應(yīng)的帳號和密碼,如果三次出錯則將卡吃掉并打印出相應(yīng)憑條。
若輸入的取款金額超出賬戶余額,則提示用戶輸入有誤并提供更正功能
二、課程設(shè)計具體實現(xiàn)
2.1.1總體設(shè)計
根據(jù)C++類的基本知識和類的基本性質(zhì)去實現(xiàn)ATM自動取款機(jī)基本功能;
ATM自動取款系統(tǒng)開戶用戶登錄退出存款取款查詢余額修改密碼轉(zhuǎn)賬退出系統(tǒng)
2.1.2詳細(xì)設(shè)計
1.登陸模塊
主要完成功能為:當(dāng)用戶開始使用本系統(tǒng),進(jìn)入登陸模塊。屏幕顯示菜單提示,用戶可根據(jù)需要選擇相應(yīng)功能。具體如下:開戶、用戶登錄、退出系統(tǒng);用戶登錄里面還有存款、取款、查詢余額、修改密碼、轉(zhuǎn)賬等功能
主要適用技術(shù):登陸函數(shù)主要是使用了循環(huán)函數(shù)和do while函數(shù),還有許多的成員函OpenAccount()、SaveMoney()、TakeMoney()、Inquiry()、Changepsw()、Transfer();Menus();關(guān)鍵代碼如下: void main();主函數(shù);
do{} while(1);//循環(huán)結(jié)構(gòu)語句 switch(i);case 1: default: UserLogin();//用戶登錄界面函數(shù) Menus();//用戶操作函數(shù) bank k;//默認(rèn)構(gòu)造函數(shù) OpenAccount();break;//開戶
SaveMoney();break;//存款 TakeMoney();break;//取款 Inquiry();break;//查詢余額 Changepsw();break;//修改密碼 Transfer();break;//轉(zhuǎn)賬
2.開戶模塊
主要完成功能為:進(jìn)入開戶模塊。屏幕顯示菜單提示,可根據(jù)要求依次輸入姓名、身份證號、卡號、密碼和預(yù)存款金額,完成以上操作之后,屏幕上顯示恭喜您,開戶成功;主要適用技術(shù):開戶函數(shù)使用了基本函數(shù);
主要代碼如下:void OpenAccount()//開戶函數(shù)
3.存款模塊
主要完成功能為:當(dāng)開始使用本系統(tǒng),進(jìn)入存款模塊。屏幕顯示菜單提示,根據(jù)要求依 主要使用技術(shù):存款函數(shù)使用了循環(huán)語句函數(shù)、判斷函數(shù)和選擇函數(shù) 主要代碼如下:
void SaveMoney()//存款函數(shù)
4.取款模塊
主要完成功能為:進(jìn)入取款模塊。如果全款金額小于或者等于卡上余額,則取款進(jìn)行,否則重新輸入取款金額。取款成功后顯示卡上余額
主要適用技術(shù):存款函數(shù)使用了循環(huán)語句函數(shù)、判斷函數(shù)和選擇函數(shù) 主要代碼如下:
void TakeMoney()//取款函數(shù)
5.查詢余額
主要完成功能為:進(jìn)入查詢余額模塊。屏幕顯示菜單提示,屏幕上將顯示你的余額,然后進(jìn)入修改密碼模塊;
主要適用技術(shù):存款函數(shù)使用了循環(huán)語句函數(shù)、判斷函數(shù)和選擇函數(shù) 主要代碼如下:
voidInquiry()//查詢余額函數(shù)
6.修改密碼
主要完成功能為:進(jìn)入修改密碼模塊。屏幕顯示菜單提示,根據(jù)要求依次輸卡號和密碼,如果卡號和原始密碼正確,則將進(jìn)行修改密碼的步驟,先輸入原始密碼,然后再輸入新密碼,之后確認(rèn)新密碼,確認(rèn)正確之后,密碼修改成功,接下來進(jìn)入轉(zhuǎn)賬模塊; 主要適用技術(shù):存款函數(shù)使用了循環(huán)語句函數(shù)、判斷函數(shù)和選擇函數(shù) 主要代碼如下:
void Changepsw()//修改密碼函數(shù)
for(int i=1;i<=N;i++)else //循環(huán)結(jié)果語句 exit(1);//結(jié)束函數(shù)
7.轉(zhuǎn)賬模塊
主要完成功能為:進(jìn)入轉(zhuǎn)賬模塊。輸入所要轉(zhuǎn)賬的賬號并輸入轉(zhuǎn)賬金額,如果轉(zhuǎn)賬金額小于余額,轉(zhuǎn)賬成功輸出卡上余額,主要適用技術(shù):存款函數(shù)使用了循環(huán)語句函數(shù)、判斷函數(shù)和選擇函數(shù) 主要代碼如下:
voidTransfer()//轉(zhuǎn)賬函數(shù)
8.退出系統(tǒng)模塊
主要完成功能為:退出ATM自動取款系統(tǒng),用條件if(i==7)break;或exist(1)實現(xiàn)。
三、源程序代碼
#include
//默認(rèn)構(gòu)造函數(shù),并初始化
void UserLogin();
//用戶登錄聲明
void OpenAccount();
//開戶函數(shù)聲明
void Menus();
//用戶操作函數(shù)聲明
void SaveMoney();
//存款函數(shù)聲明
void TakeMoney();
//取款函數(shù)聲明
void Inquiry();
//查詢函數(shù)聲明
void Transfer();
//轉(zhuǎn)賬函數(shù)聲明
void Changepsw();
//修改密碼函數(shù)聲明 private:
char name[20];
long cardID;
double SFZ;
long psw;
int money;};void Bank::UserLogin()
//用戶登錄函數(shù)定義 { long ID;long psw1;cout< //用戶操作函數(shù)定義 { int a;do{ cout<<“1.存款n”;cout<<“2.取款n”;cout<<“3.查詢余額n”;cout<<“4.修改密碼n”;cout<<“5.轉(zhuǎn)賬n”;cout<<“6.退出系統(tǒng)n”;cout<<“請輸入您要辦理業(yè)務(wù)的序號:”;cin>>a;switch(a){ case 1: SaveMoney();break; case 2: TakeMoney();break; case 3: Inquiry();break; case 4: Changepsw();break; case 5: Transfer();break; case 6: exit(0);break; default:{cout<<“你的輸入有誤,請輸入1-7之間的整數(shù)!n”;} } for(int j=0;j<=20;j++)cout<<“**”;cout< { cout<<“歡迎開戶:”< cout<<“請輸入您的姓名:”< cin>>name;cout<<“請輸入身份證號碼:”< 號:“< //存款 //取款 //查詢余額 //修改密碼 //轉(zhuǎn)賬 //退出 //開戶函數(shù)定義 //cout<<”請輸入您的卡 cin>>money;cout<<“恭喜您,開戶成功!”< //存款函數(shù)定義 {int money1;cout<<“歡迎您使用取款業(yè)務(wù)”< void Bank::TakeMoney() { int money1;cout<<“歡迎您使用取款業(yè)務(wù)n”;cout<<“每次取款不能超過5000元”< cout<<“取款金額超出賬戶余額,請重新輸入取款金額:”;cin>>money1;money=money-money1;cout<<“取款成功,您卡上余額為:”< 義 { cout<<“歡迎進(jìn)行查詢余額業(yè)務(wù)n”;cout<<“卡上余額為:”< //取款函數(shù)定義 //查詢余額函數(shù)定 void Bank::Transfer() //轉(zhuǎn)賬函數(shù)定義 { long ID2;int money1;cout<<“歡迎使用轉(zhuǎn)賬業(yè)務(wù)n”< cout<<“金額超出賬戶余額,請重新輸入取款金額:”;cin>>money1;money=money-money1;cout<<“轉(zhuǎn)賬成功,您卡上余額為:”< 修改密碼函數(shù)定義 { long ID;long psw1;long psw2;cout<<“歡迎使用修改密碼業(yè)務(wù)n”< // cin>>psw1;cout<<“請輸入您的新密碼:”< ICBC ”< case 2: k.UserLogin();break; default:{cout<<“你的輸入有誤,請輸入1-3之間的整數(shù)!n”;} } for(int j=0;j<=20;j++)cout<<“**”;cout< //開戶函數(shù)調(diào)用//用戶登錄 四、總結(jié) 在為期二周的課程設(shè)計中,我體會頗多,學(xué)到很多東西,通過完成C++程序設(shè)計的任務(wù),使我熟練和掌握了這學(xué)期所學(xué)的有關(guān)visual c++6.0中的一些主要知識點和應(yīng)用點,比如面向?qū)ο笾械念惖亩x、類的實現(xiàn)、對象的定義、類的繼承、類的多態(tài)性等等;還有面向過程的許多基礎(chǔ)知識,結(jié)構(gòu)體的基本類型,基本應(yīng)用、結(jié)構(gòu)體的堆棧基礎(chǔ)知識等等。應(yīng)用程序的設(shè)計和創(chuàng)建,經(jīng)歷了平時在課堂中和考試中,決不會有的重重難題和問題,這些問題,并不是我們平時只靠課本,就可以輕易解決的。所以,鍛煉了我們面對難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問題、解決問題的獨斷能力。 時間總是過得很快,轉(zhuǎn)眼間C++課程設(shè)計就要結(jié)束了,通過這次課程設(shè)計,我們學(xué)會了很多,也懂得了很多,知道自己的C++只是哈有很大的提高空間。感謝老師,是您讓我們知道了這些,是您一次次的幫助我們那些被我們收拾的面目全非的程序,讓我們的程序起死回生;感謝老師,是您讓我們看到自己的差距,看到了自己的基礎(chǔ)知識還很薄弱,還有許多的只是我們還不懂,我們需要再接再厲去提高自己;感謝老師,是您讓我們懂得了原來C++的許多程序原來是很深奧很深奧的,原來C++的許多程序是可以那樣完成的,還有調(diào)試還可以是以那種形式去調(diào)試的;總之感謝您老師,是我們的C++有了進(jìn)一步的提高,謝謝您老師,你們辛苦了。 “實踐是檢驗真理的唯一標(biāo)準(zhǔn)”。沒有實踐,就不會發(fā)現(xiàn)和深刻體會它的真實所在。只有通過檢驗的真理,在自己的心里,才會認(rèn)可它的真實性。C++程序設(shè)計的完成,使我們懂得了真理的重要性,理論和實際的相結(jié)合,才能真正把握所學(xué)和所掌握的知識。理論的擁有并不能代表我們的實力和能力,一切的事件和其成功都是理論和實踐的結(jié)合。總之,我們學(xué)習(xí)和掌握的知識,只有通過實際應(yīng)用,才能真正的理解和掌握,才能更好的去應(yīng)用理論的擁有并不能代表我們的實力和能力,一切的事件和其成功都是理論和實踐的結(jié)合。我們學(xué)習(xí)和掌握的知識,只有通過實際應(yīng)用,才能真正的理解和掌握,才能更好的去應(yīng)用。 // ************************************ // * * // * function.h * // * * // ************************************ #include class consumer;class ATM // ATM取款機(jī) { public: ATM(consumer& cn):cnsm(cn){ } void welcome();// 登陸界面 bool check_passwd(char n[],char pwd[]);// 核對密碼 void change_passwd();// 修改密碼 void fetchmoney();// 取款 void information();// 查詢信息 void exitATM();// 退出系統(tǒng) void functionshow();// 功能界面 void lock();// 鎖機(jī) private: int times;// 記錄密碼輸入次數(shù) consumer& cnsm;};class consumer // 用戶 { public: friend class ATM;consumer(char Name[],char Num[], float Money,char Password[]);protected: char* get_name();// 取得姓名 char* get_num();// 取得卡號 char* get_passwd();// 取得密碼 float get_money();// 取得余額 void set_passwd(char pwd[]);// 設(shè)置密碼 void set_money(float m);// 取錢 private: char passwd[8];// 用戶密碼 char name[20];// 用戶姓名 char num[20];float money;}; // ************************************ // * * // * consumer類的成員&&函數(shù) * // * * // ************************************ #include“function.h” #include consumer::consumer(char Name[], char Num[],float Money,char Password[]){ strcpy(name,Name); strcpy(num,Num);money=Money;strcpy(passwd,Password);} float consumer::get_money(){ return money;} char* consumer::get_name(){ return name;} char* consumer::get_num(){ return num;} char* consumer::get_passwd(){ return passwd;} void consumer::set_money(float m){ money-=m;} void consumer::set_passwd(char pwd[]){ strcpy(passwd,pwd);} // ************************************ // * * // * ATM類的成員&&函數(shù) * // * * // ************************************ #include “function.h” #include 第二篇:C++編寫的ATM自動取款機(jī)模擬程序分析