




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上上 海 電 力 學 院課程設計報告面向對象程序設計(2012 /2013學年第一學期)課題名稱 模仿ATM機存取款管理系統設計院(系) 電子與信息工程學院 專 業 通信工程 學 號 姓 名 時 間 2013年1月12日至1月18日地 點 奮進樓4樓5機房 指導教師 王劍云 目錄一、設計目的與任務1、本課程設計的目的 (1)課程設計是實踐教學環節。設置課程設計的目的是加強學生對本課程及相關課程知識的理解,培養學生綜合運用理論知識分析和解決實際問題的方法與能力。有助于提高學生的創新能力和創新意識。搞好課程設計教學工作,對實現專業培養目標,提高學生全面素質有重要作用。(2)
2、通過課程設計更進一步理解 C+的基礎知識。(3)訓練用系統的觀點及軟件開發的一般規范進行軟件開發,并在此過程中培養嚴謹的科學態度和良好的工作作風。初步掌握軟件開發過程中的問題分析、系統設計、程序編碼、調試、測試等方面的基本方法和技能。(4)熟練掌握 C+知識在程序中的應用,了解書本知識在解決實際問題中的用途。2、本課程設計的任務 模擬銀行的自動取款機使用過程中的界面和用戶交互過程。實現查詢銀行卡余額、取款、修改密碼、退出系統等功能。功能要求:(1)卡號、密碼輸入最多三次,否則直接退出系統。(2)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。(3)查詢功能:實現查詢余額功
3、能。(4)更改密碼:實現密碼更改功能,對于密碼要有2次驗證。(5)鎖卡功能:實現卡被鎖的功能。(6)退卡功能:實現退出系統功能。二、設計方案 1. 總體設計 設計的這個程序是模擬ATM取款機的使用過程,該程序功能包括:1)卡號、密碼輸入最多三次,否則直接退出系統。2)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。3)查詢功能:實現查詢余額功能。4)更改密碼:實現密碼更改功能,對于密碼要有2次驗證。5)鎖卡功能:實現卡被鎖的功能。6)退卡功能:實現退出系統功能。2. 系統功能首先編寫一個class consumer(用戶類)、class ATM(ATM取款機類)和一個ma
4、in()函數,程序開始運行時調用main函數里設置好的用戶信息,通過main函數來調用class ATM(ATM取款機類)和class consumer(用戶類)中的相關函數和數據來達到程序的要求。class ATM(ATM取款機類)內主要有 void welcome(); / 登陸界面 bool check_passwd(char n,char pwd); / 核對密碼 void fetchmoney(); / 取款功能 void functionshow(); / 功能界面 void information(); / 查詢功能 void change_passwd(); / 更改密碼 vo
5、id lock(); / 鎖卡功能 void exitATM(); / 退卡功能class consumer(用戶類)內主要有char* get_name(); / 獲取姓名 char* get_num(); / 獲取卡號 char* get_passwd(); / 獲取密碼 float get_money(); / 獲取余額 void set_passwd(char pwd); / 設置密碼 void set_money(float m); / 取款通過在主界面的輸入指令來實現各個函數的調用,以達到模仿ATM取款機的功能。系統功能圖與流程圖輸入與功能對應的的數字判斷有否開始執行相應功能結束是
6、否ATM取款機Class ATM登陸Get name用戶姓名Get num用戶卡號Class consumer 用戶類Main 主函數Welcome 登陸界面Check_passwd 核對密碼Fetchmoney 取款Functionshow 功能Information查詢Change_pssswd 改密改密Lock鎖卡Exit退卡Get passwd密碼Get money余額Get passwd密碼設置Set money取款存儲用戶信息3 系統截圖(1) 主界面 (2) 卡號、密碼輸入最多三次,否則直接退出系統。(3)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。(4
7、) 查詢功能:實現查詢余額功能。(5) 更改密碼:實現密碼更改功能,對于密碼要有2次驗證。(6) 鎖卡功能:實現卡被鎖的功能(7) 退卡功能:實現退出系統功能。4. 核心代碼設計(1)類編寫通過定義兩個類,class consumer(用戶類)和class ATM(ATM取款機類),對于class ATM,public有登陸界面,核對密碼,取款功能,功能界面,查詢功能,更改密碼,鎖卡功能,退卡功能。Private有記錄密碼輸入次數。對于class consumer,public有獲取姓名,獲取卡號,獲取密碼 ,獲取余額,設置密碼,取款。Private有用戶密碼,用戶姓名。(2) 類的成員函數
8、class ATM / ATM取款機類public: ATM(consumer& cn):cnsm(cn) void welcome(); / 登陸界面 bool check_passwd(char n,char pwd); / 核對密碼 void fetchmoney(); / 取款功能 void functionshow(); / 功能界面 void information(); / 查詢功能 void change_passwd(); / 更改密碼 void lock(); / 鎖卡功能 void exitATM(); / 退卡功能private:int times; / 記錄密
9、碼輸入次數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); / 設置密碼 void set_money(float m); / 取款
10、private:char passwd8;/ 用戶密碼char name20; / 用戶姓名char num20;float money;(3) 各個功能的實現(1) 卡號、密碼輸入最多三次,否則直接退出系統。void ATM:exitATM() /退卡cout<<endl<<" 感謝您支持,歡迎下次光臨! "<<endl;cout<<" 請取回你的卡片 "<<endl;exit(0);/后面的退卡需要調用此函數void ATM:welcome()times=0;cout<<&quo
11、t;"<<endl; cout<<"="<<endl;cout<<" *中國農業銀行* "<<endl;cout<<" 歡迎使用ATM自動柜員機 "<<endl; cout<<"="<<endl; cout<<""<<endl;char pwd8,num20,ch;int i=0;doi=0;cout<<endl<<"請輸
12、入卡號:"docin.get(ch); /對于鍵盤字符串的接收!numi+=ch;while(ch!='n');numi-1='0'i=0;cout<<"請輸入密碼:"docin.get(ch);pwdi+=ch;while(ch!='n');pwdi-1='0'if(!check_passwd(num,pwd)cout<<"你輸入的卡號或密碼有誤,請重新輸入"<<endl;times+;elsefunctionshow();while(time
13、s<3);exitATM(); (2) 取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。void ATM:fetchmoney() /取款float m;char ch;docout<<endl<<"您要取多少錢:"<<endl; / 兩種情況cin>>m;while(m<=0)cout<<"請輸入您的取款金額!"<<endl;cin>>m;if(cnsm.get_money()-m<0)cout<<"對不起,
14、你的余額不足!"<<endl;elsecout<<endl<<"操作成功!請于30秒內取走您的鈔票!"<<endl;cnsm.set_money(m);cout<<"是否要繼續該項操作:(y/n) "<<endl;cin>>ch;while(ch='y'|ch='Y');(3) 查詢功能:實現查詢余額功能。void ATM:information() /查詢cout<<"="<<endl
15、;cout<<"您當前所剩余額為: "<<cnsm.get_money()<<endl; /必須聲明友元才能用cnsm調用其成員函數cout<<"="<<endl;(4)更改密碼:實現密碼更改功能,對于密碼要有2次驗證。void ATM:change_passwd() /更改密碼char pwd8,repwd8;times=0;docout<<endl<<"請輸入舊密碼:"cin>>pwd;if(!check_passwd(cnsm.get
16、_num(),pwd) times+;elsebreak;while(times<3); int t=1;docout<<"請輸入新密碼:"cin>>pwd;cout<<"請確認新密碼:"cin>>repwd;t=strcmp(pwd,repwd); / 相同返回0;if(t!=0)cout<<"對不起,您輸入的兩次密碼不一樣,請重新輸入!"<<endl;while(t!=0);cnsm.set_passwd(pwd);cout<<"密
17、碼修改成功!"<<endl;(5) 鎖卡功能:實現卡被鎖的功能。void ATM:lock() /鎖卡cout<<endl<<"對不起,由于你的操作有誤,你的卡片已被沒收! "<<endl;exit(1); / 系統非正常退出if(times=3)lock(); /當密碼輸入三次錯誤后,進行鎖卡(6)退卡功能:實現退出系統功能。void ATM:exitATM() /退卡cout<<endl<<" 感謝您支持,歡迎下次光臨! "<<endl;cout<&l
18、t;" 請取回你的卡片 "<<endl;exit(0);(4) 主函數void main()consumer c("張麗","",5000,"");/ 先構造一個用戶ATM atm(c);atm.welcome();三.心得體會本次面向對象程序設計實踐中,我完成了一個模仿ATM機存取款管理系統設計,剛開始時,對于這個課題的設計我首先是先進行功能的分析,針對其功能再設計其函數,在實現各個功能的時候,遇到了許多的問題,比如說取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制,在進行設計時,就沒有實現
19、機單筆最大取款金額限制這一要求功能,在實驗中,有一些問題難以解決,但是通過查詢資料,上網搜索,也得到一定程度的解決。在設計過程中還有其他的各種問題,有請教老師的,老師都對我進行耐心的指導,解決了一些問題,還有問同學的,做相同課題同學們間的互相交流也使我受益匪淺。經過一個星期的上機實驗,對于面向程序設計這一門課我從課本上的例題教學,上機實驗到現在的設計操作,明顯有不同的感受,也許在書本上的例題能夠看明白看懂,但是在自己進行設計并且運行的時候會出現許多的問題,檢驗自己許多方面的能力,細心程度,耐心程度等等。此次課程設計,我對面向對象程序設計的認識得到了一定的提高,其實許多課程也是如此,我們不能單獨
20、停留在書本所交給我們的知識里,有時候的很多問題當你通過上機親自操作,你會發現親自實踐比看書來得直觀明了,這次的課程設計的目的也在于此,讓我們通過實踐來對所學知識進行檢驗以及深入的理解。源代碼#include<iostream>using namespace std;class consumer;class ATM / ATM取款機類public: ATM(consumer& cn):cnsm(cn) void welcome(); / 登陸界面 bool check_passwd(char n,char pwd); / 核對密碼 void fetchmoney(); / 取
21、款功能 void functionshow(); / 功能界面 void information(); / 查詢功能 void change_passwd(); / 更改密碼 void lock(); / 鎖卡功能 void exitATM(); / 退卡功能private:int times; / 記錄密碼輸入次數consumer& cnsm;class consumer/ 用戶類public: friend class ATM; consumer(char Name,char Num,float Money,char Password);protected: char* get_n
22、ame(); / 獲取姓名 char* get_num(); / 獲取卡號 char* get_passwd(); / 獲取密碼 float get_money(); / 獲取余額 void set_passwd(char pwd); / 設置密碼 void set_money(float m); / 取款private:char passwd8;/ 用戶密碼char name20; / 用戶姓名char num20;float money;consumer:consumer(char Name,char Num,float Money,char Password)strcpy(name,Na
23、me); 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
24、)strcpy(passwd,pwd);void ATM:welcome()times=0;cout<<""<<endl; cout<<"="<<endl;cout<<" *中國農業銀行* "<<endl;cout<<" 歡迎使用ATM自動柜員機 "<<endl; cout<<"="<<endl; cout<<""<<endl;cha
25、r pwd8,num20,ch;int i=0;doi=0;cout<<endl<<"請輸入卡號:"docin.get(ch); numi+=ch;while(ch!='n');numi-1='0'i=0;cout<<"請輸入密碼:"docin.get(ch);pwdi+=ch;while(ch!='n');pwdi-1='0'if(!check_passwd(num,pwd)cout<<"你輸入的卡號或密碼有誤,請重新輸入"
26、;<<endl;times+;elsefunctionshow();while(times<3);exitATM(); bool ATM:check_passwd(char num,char pwd)if(strcmp(num,cnsm.get_num()=0&&strcmp(pwd,cnsm.get_passwd()=0)return true;else return false;void ATM:functionshow()int n;do cout<<" "<<endl; cout<<"本
27、機可辦理以下業務,請你輸入相應的操作序號進行操作:"<<endl; cout<<"<1> 查詢 "<<endl<<"<2> 取款 "<<endl<<"<3> 更改密碼 "<<endl<<"<4> 退出 "<<endl;cin>>n;while(n<1|n>4)cout<<"對不起,本機無此項操作,請輸入正確
28、的操作序號!"<<endl;cin>>n;switch(n)case 1:information(); break;case 2:fetchmoney();break;case 3:change_passwd(); break;case 4:exitATM(); break; while(true);void ATM:information() /查詢cout<<"="<<endl;cout<<"您當前所剩余額為: "<<cnsm.get_money()<<en
29、dl; /必須聲明友元才能用cnsm調用其成員函數cout<<"="<<endl;void ATM:fetchmoney() /取款float m;char ch;docout<<endl<<"您要取多少錢:"<<endl; / 兩種情況cin>>m;while(m<=0)cout<<"請輸入您的取款金額!"<<endl;cin>>m;if(cnsm.get_money()-m<0)cout<<"對不起,你的余額不足!"<<endl;elsecout<<endl<<"操作成功!請于30秒內取走您的鈔票!"<<endl;cnsm.set_mone
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業園區電力設施規劃與管理
- 工業廢棄地到綠色公園的改造案例
- 工業機器人技術與應用發展研究
- 工業機器人技術及其自動化應用
- 工業機器人技術的選型與應用案例
- 工業物聯網驅動產業升級的關鍵技術
- 工業自動化系統設計與優化
- 工業污染防治的技術創新與實施效果評價
- 工業物聯網IIoT技術及應用前景
- 工業環保與清潔生產實踐
- 2024-2025學年初中英語七年級下冊期末考試綜合測試卷及參考答案
- 2025年山東省濟南市長清區中考二模道德與法治試題(含答案)
- 未來中國檢測市場發展趨勢簡析(精)
- 2025年AI+賦能中小企業:出海營銷的創新與發展
- 四川電網新建電源并網服務指南(2025年)
- 事故隱患內部報告獎勵制度
- JBT 11699-2013 高處作業吊籃安裝、拆卸、使用技術規程
- KTV工程預算表模板
- 新能源汽車私人領域購車補貼確認表
- 外墻、屋面節能保溫旁站監理記錄表(共3頁)
- 園林綠化單位(子單位)工程質量竣工驗收報告
評論
0/150
提交評論