《C自動取款機ATM課程設(shè)計報告.doc》由會員分享,可在線閱讀,更多相關(guān)《C自動取款機ATM課程設(shè)計報告.doc(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
洛陽師范學院
2013-2014學期
《c++語言程序設(shè)計》
課程設(shè)計報告
設(shè)計名稱:模擬自動取款機ATM
姓 名:黃雙雙 學 號:131124001
專業(yè)班級:網(wǎng)絡(luò)工程 學 院:信息技術(shù)學院
設(shè)計時間:2014年6月
設(shè)計地點:宿舍
成績:
指導教師評語:
指導教師簽字:
年 月 日
目 錄
1.課程設(shè)計目的 3
2.課程設(shè)計任務與要求 3
3.課程設(shè)計說明書 4
4.課程設(shè)計成果 6
5.程序調(diào)試過程 18
6.設(shè)計問題的不足和改進方案 18
7.課程設(shè)計心得 19
8.參考文獻 20
1.課程設(shè)計目的
《c++語言程序設(shè)計》課程設(shè)計是這門課程的實踐性教學環(huán)節(jié)之一,本次設(shè)計結(jié)合實際應用的要求,使課程設(shè)計既覆蓋C++的知識點,又接近工程實際需要。目的是通過課程設(shè)計的綜合訓練,培養(yǎng)學生實際分析問題、解決問題的能力,以及編程和動手能力,最終目標是通過課程設(shè)計這種形式,幫助學生系統(tǒng)掌握C++這門課程的主要內(nèi)容,養(yǎng)成良好的編程習慣,更好的完成教學任務。
2.課程設(shè)計任務與要求:
要求:
本次課程設(shè)計利用《c++語言程序設(shè)計》課程中所學到的編程知識和編程技巧,完成具有一定難度和工作量的程序設(shè)計題目,幫助學生掌握編程、調(diào)試的基本技能,獨立完成所布置的任務。
要求:
1、對系統(tǒng)進行功能需求分析
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)試;
任務:
(1)ATM機類:有“單筆取款最高限制”、“每日取款總金額限制”、“金額”等基本屬性。需要實現(xiàn):“核對密碼”、“修改密碼”、“取款”、“查詢信息”、“退出系統(tǒng)”、“鎖機吞卡”等功能??梢詫⑦@些操作定義為ATM機類的成員函數(shù)。(2)銀行卡類:具有“用戶姓名”、“用戶密碼”、“存款額”等特征。需要實現(xiàn)“身份驗證”、“查詢余額”、“修改密碼”、“交易成功更改余額”等操作。將這些操作定義為銀行卡類的成員函數(shù)。
(1) 模擬自動取款機(ATM)的流程,實現(xiàn)查詢銀行卡余額、取款、修改密碼、退出系統(tǒng)等功能;
(2) 卡號、密碼錯誤時最多輸入3次,否則直接退出系統(tǒng)。
(3) 取款金額受信用卡余額、ATM機單筆最大取款金額及ATM機當前剩余金額的限制。
3.課程設(shè)計說明書
⑴概要設(shè)計
本案例涉及一個銀行卡和ATM機之間的“對話”。需要處理兩個對象,即:ATM和銀行卡,因此可以考慮定義兩個類來解決這個問題。
(1)ATM機類:有“單筆取款最高限制”、“每日取款總金額限制”、“金額”等基本屬性。需要實現(xiàn):“核對密碼”、“修改密碼”、“取款”、“查詢信息”、“退出系統(tǒng)”、“鎖機吞卡”等功能??梢詫⑦@些操作定義為ATM機類的成員函數(shù)。
(2)銀行卡類:具有“用戶姓名”、“用戶密碼”、“存款額”等特征。需要實現(xiàn)“身份驗證”、“查詢余額”、“修改密碼”、“交易成功更改余額”等操作。將這些操作定義為銀行卡類的成員函數(shù)。
模塊說明:
在我設(shè)計的程序中一共包括了五個模塊,分別是: 核對密碼、修改密碼、取款、查詢信息、退出系統(tǒng)模塊。這六個模塊中新增、查找和修改都是獨立分開作為子函數(shù)的,另外三個則是作為switch語句中的一部分,通過switch語句,把五個大模塊聯(lián)系了起來,同時,為了實現(xiàn)多次使用這五大模塊,就在switch語句外加了while循環(huán)。
模塊結(jié)構(gòu)圖:
⑵詳細設(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(); //鎖機
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自動取款機*"<\\";
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<<"**************************"<
下載提示(請認真閱讀)
- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
文檔包含非法信息?點此舉報后獲取現(xiàn)金獎勵!
下載文檔到電腦,查找使用更方便
9.9
積分
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-9121229.html