《C自動取款機(jī)ATM課程設(shè)計報告.doc》由會員分享,可在線閱讀,更多相關(guān)《C自動取款機(jī)ATM課程設(shè)計報告.doc(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
洛陽師范學(xué)院
2013-2014學(xué)期
《c++語言程序設(shè)計》
課程設(shè)計報告
設(shè)計名稱:模擬自動取款機(jī)ATM
姓 名:黃雙雙 學(xué) 號:131124001
專業(yè)班級:網(wǎng)絡(luò)工程 學(xué) 院:信息技術(shù)學(xué)院
設(shè)計時間:2014年6月
設(shè)計地點:宿舍
成績:
指導(dǎo)教師評語:
指導(dǎo)教師簽字:
年 月 日
目 錄
1.課程設(shè)計目的 3
2.課程設(shè)計任務(wù)與要求 3
3.課程設(shè)計說明書 4
4.課程設(shè)計成果 6
5.程序調(diào)試過程 18
6.設(shè)計問題的不足和改進(jìn)方案 18
7.課程設(shè)計心得 19
8.參考文獻(xiàn) 20
1.課程設(shè)計目的
《c++語言程序設(shè)計》課程設(shè)計是這門課程的實踐性教學(xué)環(huán)節(jié)之一,本次設(shè)計結(jié)合實際應(yīng)用的要求,使課程設(shè)計既覆蓋C++的知識點,又接近工程實際需要。目的是通過課程設(shè)計的綜合訓(xùn)練,培養(yǎng)學(xué)生實際分析問題、解決問題的能力,以及編程和動手能力,最終目標(biāo)是通過課程設(shè)計這種形式,幫助學(xué)生系統(tǒng)掌握C++這門課程的主要內(nèi)容,養(yǎng)成良好的編程習(xí)慣,更好的完成教學(xué)任務(wù)。
2.課程設(shè)計任務(wù)與要求:
要求:
本次課程設(shè)計利用《c++語言程序設(shè)計》課程中所學(xué)到的編程知識和編程技巧,完成具有一定難度和工作量的程序設(shè)計題目,幫助學(xué)生掌握編程、調(diào)試的基本技能,獨立完成所布置的任務(wù)。
要求:
1、對系統(tǒng)進(jìn)行功能需求分析
2、設(shè)計合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架
3、編程簡練,程序功能齊全,能正確運行
4、說明書、流程圖要清楚
5、課題完成后必須按要求提交課程設(shè)計報告
(1)分析系統(tǒng)中的各個實體之間的關(guān)系及其屬性和行為;
(2)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;
(3)完成類層次中各個類的描述(包括屬性和方法);
(4)完成類中各個成員函數(shù)的定義;
(5)完成系統(tǒng)的模塊組裝、調(diào)試;
任務(wù):
(1)ATM機(jī)類:有“單筆取款最高限制”、“每日取款總金額限制”、“金額”等基本屬性。需要實現(xiàn):“核對密碼”、“修改密碼”、“取款”、“查詢信息”、“退出系統(tǒng)”、“鎖機(jī)吞卡”等功能??梢詫⑦@些操作定義為ATM機(jī)類的成員函數(shù)。(2)銀行卡類:具有“用戶姓名”、“用戶密碼”、“存款額”等特征。需要實現(xiàn)“身份驗證”、“查詢余額”、“修改密碼”、“交易成功更改余額”等操作。將這些操作定義為銀行卡類的成員函數(shù)。
(1) 模擬自動取款機(jī)(ATM)的流程,實現(xiàn)查詢銀行卡余額、取款、修改密碼、退出系統(tǒng)等功能;
(2) 卡號、密碼錯誤時最多輸入3次,否則直接退出系統(tǒng)。
(3) 取款金額受信用卡余額、ATM機(jī)單筆最大取款金額及ATM機(jī)當(dāng)前剩余金額的限制。
3.課程設(shè)計說明書
⑴概要設(shè)計
本案例涉及一個銀行卡和ATM機(jī)之間的“對話”。需要處理兩個對象,即:ATM和銀行卡,因此可以考慮定義兩個類來解決這個問題。
(1)ATM機(jī)類:有“單筆取款最高限制”、“每日取款總金額限制”、“金額”等基本屬性。需要實現(xiàn):“核對密碼”、“修改密碼”、“取款”、“查詢信息”、“退出系統(tǒng)”、“鎖機(jī)吞卡”等功能??梢詫⑦@些操作定義為ATM機(jī)類的成員函數(shù)。
(2)銀行卡類:具有“用戶姓名”、“用戶密碼”、“存款額”等特征。需要實現(xiàn)“身份驗證”、“查詢余額”、“修改密碼”、“交易成功更改余額”等操作。將這些操作定義為銀行卡類的成員函數(shù)。
模塊說明:
在我設(shè)計的程序中一共包括了五個模塊,分別是: 核對密碼、修改密碼、取款、查詢信息、退出系統(tǒng)模塊。這六個模塊中新增、查找和修改都是獨立分開作為子函數(shù)的,另外三個則是作為switch語句中的一部分,通過switch語句,把五個大模塊聯(lián)系了起來,同時,為了實現(xiàn)多次使用這五大模塊,就在switch語句外加了while循環(huán)。
模塊結(jié)構(gòu)圖:
⑵詳細(xì)設(shè)計
總體流程圖:
各功能模塊流程圖:
4.課程設(shè)計成果
程序源代碼,運行結(jié)果(可用屏幕抓圖的方法說明)(五號,宋體)(多頁)
#include
#include
#include
#include
class consumer;
class ATM
{
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_kahao(); //取得卡號
char* get_passwd(); //取得密碼
float get_money(); //取得余額
void set_passwd(char pwd[]); //設(shè)置密碼
void set_money(float m); //取錢
private:
char passwd[10]; //用戶密碼
char name[20]; //用戶姓名
char kahao[20]; //用戶卡號
float money; //用戶余額
};
consumer::consumer(char Name[],char Kahao[], float Money,char Password[]) //構(gòu)造函數(shù),建立賬戶
{
strcpy(name,Name);
strcpy(kahao,Kahao);
money=Money;
strcpy(passwd,Password);
}
float consumer::get_money() //取得余額
{
return money;
}
char*consumer::get_name() //取得姓名
{
return name;
}
char*consumer::get_kahao() //取得卡號
{
return kahao;
}
char*consumer::get_passwd() //取得密碼
{
return passwd;
}
void consumer::set_passwd(char pwd[])//設(shè)置密碼
{
strcpy(passwd,pwd);
}
void ATM::welcome() //登錄界面
{
times=0;
cout<<"*歡迎使用銀行ATM自動取款機(jī)*"<\\";
cin>>n;
while(n<1||n>4)
{
cout<<"請輸入正確的操作序號!"<\\";
cin>>n;
}
switch(n)
{
case 1: change_passwd();
break;
case 2: fetchmoney();
break;
case 3: information();
break;
case 4: exitATM();
break;
}
}while(true);
}
void ATM::change_passwd()
{
char pwd[10],repwd[10];
times=0;
do
{
cout<>pwd;
if(!check_passwd(cnsm.get_kahao(),pwd))
times++;
else
break;
}while(times<3);
if(times==3)
lock();
int k=0;
int t=0;
do
{
k=0;
cout<<"請輸入新密碼:";
cin>>pwd;
int g=0;
int v=0;
g=strlen(pwd);
if(g<6)
{
k=1;
cout<<"密碼不能小于6位"<6&&v!=g)
{
cout<<"請再輸入一次新密碼:";
cin>>repwd;
if((t=strcmp(pwd,repwd))!=0)
{
cout<<"你輸入的兩次密碼不一樣,請重新輸入!"<\\";
cin>>m;
while(m<=0)
{
cout<<"請輸入正確的數(shù)字!"<\\";
cin>>m;
}
if(m>5000)
{
cout<<"對不起,每次最多取5000元"<\\";
cin>>ch;
while(ch!=n&&ch!=Y&&ch!=y)
{
cout<<"$>\\";
cin>>ch;
}
}while(ch==y||ch==Y);
}
void ATM::information()
{
cout<<"**************************"<
下載提示(請認(rèn)真閱讀)
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
文檔包含非法信息?點此舉報后獲取現(xiàn)金獎勵!
下載文檔到電腦,查找使用更方便
9.9
積分
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
-
自動
取款
ATM
課程設(shè)計
報告
- 溫馨提示:
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. 裝配圖網(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://zhongcaozhi.com.cn/p-9121229.html