




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
上海電力學院課程設計報告面向對象程序設計2012/2013學年第一學期)課題名稱模仿ATM機存取款管理系統設計院(系)電子與信息工程學院專業通信工程學號姓名時間2013年1月12日至1月18日地點奮進樓4樓5機房指導教師王劍云#/19目錄TOC\o"1-5"\h\z\o"CurrentDocument"一、設計目的與任務21、本課程設計的目的22、本課程設計的任務2\o"CurrentDocument"二、設計方案2\o"CurrentDocument"1.總體設計2\o"CurrentDocument"2.系統功能2\o"CurrentDocument"3.系統截圖4\o"CurrentDocument"4.核心代碼設計7\o"CurrentDocument"三.心得體會11一、設計目的與任務1、本課程設計的目的(1)課程設計是實踐教學環節。設置課程設計的目的是加強學生對本課程及相關課程知識的理解,培養學生綜合運用理論知識分析和解決實際問題的方法與能力。有助于提高學生的創新能力和創新意識。搞好課程設計教學工作,對實現專業培養目標,提高學生全面素質有重要作用。(2)通過課程設計更進一步理解C++的基礎知識。(3)訓練用系統的觀點及軟件開發的一般規范進行軟件開發,并在此過程中培養嚴謹的科學態度和良好的工作作風。初步掌握軟件開發過程中的問題分析、系統設計、程序編碼、調試、測試等方面的基本方法和技能。(4)熟練掌握C++知識在程序中的應用,了解書本知識在解決實際問題中的用途。2、本課程設計的任務模擬銀行的自動取款機使用過程中的界面和用戶交互過程。實現查詢銀行卡余額、取款、修改密碼、退出系統等功能。功能要求:(1)卡號、密碼輸入最多三次,否則直接退出系統。(2)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。(3)查詢功能:實現查詢余額功能。(4)更改密碼:實現密碼更改功能,對于密碼要有2次驗證。(5)鎖卡功能:實現卡被鎖的功能。(6)退卡功能:實現退出系統功能。二、設計方案1.總體設計設計的這個程序是模擬ATM取款機的使用過程,該程序功能包括:1)卡號、密碼輸入最多三次,否則直接退出系統。2)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。3)查詢功能:實現查詢余額功能。4)更改密碼:實現密碼更改功能,對于密碼要有2次驗證。5)鎖卡功能:實現卡被鎖的功能。6)退卡功能:實現退出系統功2.系統功能首先編寫一個classconsumer(用戶類)、classATM(ATM取款機類)和一個main()函數,程序開始運行時調用main函數里設置好的用戶信息,通過main函數來調用classATM(ATM取款機類)和classconsumer(用戶類)中的相關函數和數據來達到程序的要求。classATM(ATM取款機類)內主要有
voidwelcome();boolcheck_passwd(charn[],charpwd[]);voidfetchmoney();voidfunctionshow();voidinformation();voidchange_passwd();voidlock();voidexitATM();classconsumer(用戶類)內主要有//登陸界面//核對密碼//取款功能//功能界面//查詢功能//更改密碼//鎖卡功能//退卡功能char*get_name();char*get_num();char*get_passwd();floatget_money();voidset_passwd(charpwd[]);voidset_money(floatm);//獲取姓名//獲取卡號//獲取密碼//獲取余額//設置密碼//取款通過在主界面的輸入指令來實現各個函數的調用,以達到模仿ATM取款機的功能。系統功能圖與流程圖3.系統截圖1)主界面\■D:\5K5raC+t\Debug\zhang.exe★宓★靈★右■★賈★窓夭丸★續★宓★珂★宓★靈★右■★賈★窓夭丸★續★宓★珂*巾國農業銀廳*
次迎使用白TH它功柜員機☆★空:*蠱*€r*W=*F*程*蠱*€蠱*寸丈*☆“本<1可沓玉爲
本<1可沓玉爲
和>>>>理以下業瓠請你輸入相應的操作序號迸行操作:辦詢款r.■…D帖K麗.■…D帖K麗€--\DetiLig\zhang_eM&"★條★宓★去*★宓*☆★僉★茂*45G25S呻國衣土銀行X啟回S.升行自訪柜員磯本機可外理以下業瓠請你輸入相應的操作序號進行操作:<1>杳詢<2>里款<3>更改擁<4>適匕&劉不起,本機元止聞揉件,諳揃入王萌的凜作序號?(2)卡號、密碼輸入最多三次,否則直接退出系統。r,l~'D:\?t超1C-t\IDebug\zhang.exe'★池*黃必■黃-A■★說*itSA±§:2011ZZ1B嘯鰭卡韻黑有誤,請重新輸入諳Ajr-^-:20112218請輸入密^.222222[爾繼入的卡號或密碼有誤,請重新輸入請請你麵人主號:泅代和疏端入的卡號或密^有誤Pressanijkeytocontinue請重覇輸入3)取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制。|回|回★英?★>i■★:幺*工7^壬★:?★??★>L★匚弋*耳豆機呻同欣迎使血豆機呻同欣迎使血i^Jjj).A.4r^:20112218請輸入密碼=456258密辦詢款骰出^>>>>軋1234<<<<舞以下'嚀,詰竹編“相噪作尺尋址苻噪件=!<uZn>您要取多少錢:密辦詢款骰出^>>>>軋1234<<<<舞以下'嚀,詰竹編“相噪作尺尋址苻噪件=!<uZn>您要取多少錢:GOBOy您雯書爭少袖;30B鎳歸圖gw4)查詢功能:實現查詢余額功能。木機可也理卩下業務.請你輸人相直的握咋序號進苻握F<1>杏詢您,當苗所剩會瓢黃,4咖^56258123456123456理以下業務.請懈&入相應的操作序號進行操作:^56258123456123456理以下業務.請懈&入相應的操作序號進行操作:5)更改密碼:實現密碼更改功能,對于密碼要有2次驗證。-JT月〈旦即百狼^>>>>fell234力<<SZ€3rdTrdTrzTT力舊斯新改入人譏修碼請請工畧6)鎖卡功能:實現卡被鎖的功能理次下業実肩你輸入相應的操牛序號酉二操匸nTp理次下業実肩你輸入相應的操牛序號酉二操匸nTpi?-&黑改二可瑩取一還機>>>->E;:1234<K:f£3請輸A.H密訝:linn-一q一『?-^-?-入人認青青青-一q一『?-^-?-入人認青青青333333444444444444疋環起,由于你加操作頁誤,您的卡片已被^請于柜廿打浬相天業敘Pressan5?keytocontinue7)退卡功能:實現退出系統功能。本機可汗淫以下業虧-詩味輸入杓應射操仁序弓進彳一操乍;7)退卡功能:實現退出系統功能。本機可汗淫以下業虧-詩味輸入杓應射操仁序弓進彳一操乍;<1>查訶<2>取款<3>更取留碼<4>很”感轆支叭綢鋼Pressan^Fkey七ocoirtiriLic.4.核心代碼設計(1)類編寫通過定乂兩個類,classconsumer(用戶類)和classATM(ATM取款機類),對于classATMpublic有登陸界面,核對密碼,取款功能,功能界面,查詢功能,更改密碼,鎖卡功能,退卡功能。Private有記錄密碼輸入次數。對于classconsumer,public有獲取姓名,獲取卡號,獲取密碼,獲取余額,設置密碼,取款。Private有用戶密碼,用戶姓名。(2)類的成員函數classATM//ATM取款機類{public://登陸界面//登陸界面//核對密碼//取款功能voidwelcome();boolcheck_passwd(charn[],charpwd[]);voidfetchmoney();
voidfunctionshow();voidinformation();voidchange_passwd();voidlock();voidexitATM();private:inttimes;//記錄密碼輸入次數//功能界面//功能界面//查詢功能//更改密碼//鎖卡功能//退卡功能};classconsumer//用戶類{public:friendclassATM;consumer(charName[],charNum[],floatMoney,charPassword[]);protected:char*get_name();//獲取姓名char*get_num();//獲取卡號char*get_passwd();//獲取密碼floatget_money();//獲取余額voidset_passwd(charpwd[]);//設置密碼voidset_money(floatm);//取款private:charpasswd[8];//用戶密碼charname[20];//用戶姓名charnum[20];floatmoney;};3)各個功能的實現卡號、密碼輸入最多三次,否則直接退出系統。voidATM::exitATM()//退卡{cout<<endl<<"感謝您支持,歡迎下次光臨!"<<endl;cout<<"請取回你的卡片"<<endl;exit(0);}//后面的退卡需要調用此函數voidATM::welcome(){times=0;coutvv"*"vvendl;cout<<"=================================================="<<endl;coutvv"*中國農業銀行*"vvendl;coutvv"歡迎使用ATM自動柜員機"vvendl;cout<<"=================================================="<<endl;coutvv"*"vvendl;charpwd[8],num[20],ch;inti=0;do{i=0;coutvvendlvv"請輸入卡號:";do{cin.get(ch);//對于鍵盤字符串的接收!num[i++]=ch;}while(ch!='\n');num[i-1]='\0';i=0;coutvv"請輸入密碼:";do{cin.get(ch);pwd[i++]=ch;}while(ch!='\n');pwd[i-1]='\0';if(!check_passwd(num,pwd)){coutvv"你輸入的卡號或密碼有誤,請重新輸入"vvendl;times++;}else{functionshow();}}while(timesv3);exitATM();}取款功能:取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制voidATM::fetchmoney()//取款{floatm;charch;docoutvvendlvv"您要取多少錢:"vvendl;//兩種情況cin>>m;while(mv=0){coutvv"請輸入您的取款金額!"vvendl;cin>>m;}if(cnsm.get_money()-mv0){coutvv"對不起,你的余額不足!"vvendl;}else{coutvvendlvv'操作成功!請于30秒內取走您的鈔票!"vvendl;cnsm.set_money(m);}coutvv"是否要繼續該項操作:(y/n)"vvendl;cin>>ch;}while(ch=='y'||ch=='Y');}查詢功能:實現查詢余額功能。voidATM::information()//查詢{coutvv"=================================================="vvendl;coutvv"您當前所剩余額為:"vvcnsm.get_money()vvendl;〃必須聲明友元才能用cnsm調用其成員函數coutvv"=================================================="vvendl;}更改密碼:實現密碼更改功能,對于密碼要有2次驗證。voidATM::change_passwd()//更改密碼{charpwd[8],repwd[8];times=0;do{coutvvendlvv"請輸入舊密碼:";cin>>pwd;if(!check_passwd(cnsm.get_num(),pwd))times++;elsebreak;}while(timesv3);intt=1;do{coutvv"請輸入新密碼:";cin>>pwd;coutvv"請確認新密碼:”;cin>>repwd;t=strcmp(pwd,repwd);//相同返回0;if(t!=0)coutvv'對不起,您輸入的兩次密碼不一樣,請重新輸入!"vvendl;}while(t!=0);cnsm.set_passwd(pwd);coutvv"密碼修改成功!"vvendl;}鎖卡功能:實現卡被鎖的功能。voidATM::lock()//鎖卡{coutvvendlvv"對不起,由于你的操作有誤,你的卡片已被沒收!"vvendl;exit(1);//系統非正常退出}if(times==3)lock();//當密碼輸入三次錯誤后,進行鎖卡退卡功能:實現退出系統功能。voidATM::exitATM()//退卡{coutvvendlvv"感謝您支持,歡迎下次光臨!"vvendl;coutvv"請取回你的卡片"vvendl;exit(0);}(4)主函數voidmain(){consumerc("張麗",”20112218",5000,"456258");〃先構造一個用戶ATMatm(c);atm.welcome();}心得體會本次面向對象程序設計實踐中,我完成了一個模仿ATM機存取款管理系統設計,剛開始時,對于這個課題的設計我首先是先進行功能的分析,針對其功能再設計其函數,在實現各個功能的時候,遇到了許多的問題,比如說取款金額受卡余額、機單筆最大取款金額及機當前剩余金額的限制,在進行設計時,就沒有實現機單筆最大取款金額限制這一要求功能,在實驗中,有一些問題難以解決,但是通過查詢資料,上網搜索,也得到一定程度的解決。在設計過程中還有其他的各種問題,有請教老師的,老師都對我進行耐心的指導,解決了一些問題,還有問同學的,做相同課題同學們間的互相交流也使我受益匪淺。經過一個星期的上機實驗,對于面向程序設計這一門課我從課本上的例題教學,上機實驗到現在的設計操作,明顯有不同的感受,也許在書本上的例題能夠看明白看懂,但是在自己進行設計并且運行的時候會出現許多的問題,檢驗自己許多方面的能力,細心程度,耐心此次課程設計,我對面向對象程序設計的認識得到了一定的提高,其實許多課程也是如此,我們不能單獨停留在書本所交給我們的知識里,有時候的很多問題當你通過上機親自操作,你會發現親自實踐比看書來得直觀明了,這次的課程設計的目的也在于此,讓我們通過實踐來對所學知識進行檢驗以及深入的理解。源代碼#include<iostream>usingnamespacestd;classconsumer;classATM//ATM取款機類{public:ATM(consumer&cn):cnsm(cn){}voidwelcome();//登陸界面boolcheck_passwd(charn[],charpwd[]);//核對密碼voidfetchmoney();//取款功能voidfunctionshow();//功能界面voidinformation();//查詢功能voidchange_passwd();//更改密碼voidlock();//鎖卡功能voidexitATM();//退卡功能private:inttimes;//記錄密碼輸入次數consumer&cnsm;};classconsumer//用戶類{public:friendclassATM;consumer(charName[],charNum[],floatMoney,charPassword[]);protected:char*get_name();//獲取姓名char*get_num();//獲取卡號char*get_passwd();//獲取密碼floatget_money();//獲取余額voidset_passwd(charpwd[]);//設置密碼voidset_money(floatm);//取款private:charpasswd[8];//用戶密碼charname[20];//用戶姓名charnum[20];floatmoney;};consumer::consumer(charName[],charNum[],floatMoney,charPassword[]){strcpy(name,Name);strcpy(num,Num);money=Money;strcpy(passwd,Password);}floatconsumer::get_money(){returnmoney;}char*consumer::get_name()//對于數組的返回操作返回指針{returnname;}char*consumer::get_num(){returnnum;}char*consumer::get_passwd(){returnpasswd;}voidconsumer::set_money(floatm){money-=m;}voidconsumer::set_passwd(charpwd[]){strcpy(passwd,pwd);}voidATM::welcome(){times=0;cout<<"=================================================="<<endl;coutvv"*中國農業銀行*"vvendl;coutvv"歡迎使用ATM自動柜員機"vvendl;coutvv"=================================================="vvendl;^^^"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"vvendl;charpwd[8],num[20],ch;inti=0;do{i=0;coutvvendlvv"請輸入卡號:";do{cin.get(ch);num[i++]=ch;}while(ch!='\n');num[i-1]='\0';i=0;coutvv"請輸入密碼:";do{cin.get(ch);pwd[i++]=ch;}while(ch!='\n');pwd[i-1]='\0';if(!check_passwd(num,pwd)){coutvv"你輸入的卡號或密碼有誤,請重新輸入"vvendl;times++;}else{functionshow();}}while(timesv3);exitATM();}boolATM::check_passwd(charnum[],charpwd[]){if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0)returntrue;elsereturnfalse;}voidATM::functionshow(){intn;do{coutvv""vvendl;coutvv"本機可辦理以下業務,請你輸入相應的操作序號進行操作:"vvendl;coutvv"v1>查詢"vvendlvv"v2>取款"vvendlvv"v3>更改密碼"vvendlvv"v4>退出"vvendl;cin>>n;while(nv1||n>4){cout<<"對不起,本機無此項操作,請輸入正確的操作序號!"vvendl;cin>>n;}switch(n){case1:information();break;case2:fetchmoney();break;case3:change_passwd();break;case4:exitATM();break;}}while(true);}voidATM::information()//查詢{cout<<"=================================================="<<endl;cnsmcout<<"您當前所剩余額為:"<<cnsm.get_money()<<endl;//必須聲明友元才能用cnsm調用其成員函數cout<<"===============================================
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 快遞員派送件合同范本
- 勞務合同夫妻代簽協議書
- 廠房土地轉讓合同范本
- 徐匯橋下土方外運協議書
- 兒童校園事故賠償協議書
- 崗位安全聯保互保協議書
- 勞務公司工程掛靠協議書
- 工地集成房屋租賃協議書
- 煤礦掘進工程承包協議書
- 暑期實踐活動安全協議書
- 傳染病法律法規培訓課件
- 高中地理學業水平合格性考試必修二知識點總結(會考)
- 職業升學就業協議書
- 旅行導游協議書
- 2024年新牛津譯林版三年級上冊英語 Unit 1 Hello!第三課時
- 慢性胃炎考試試題及答案
- 浙江首考2025年1月普通高等學校招生全國統考政治試題及答案
- 2023年高考物理試卷(廣東)含答案解析
- 《傳媒翻譯》教學大綱
- 新工科的建設和發展思考ppt培訓課件
- [北京]大型房地產開發項目成本測算實例及表格(全套)
評論
0/150
提交評論