C課程設(shè)計(jì)論文模擬ATM柜員機(jī)程序_第1頁(yè)
C課程設(shè)計(jì)論文模擬ATM柜員機(jī)程序_第2頁(yè)
C課程設(shè)計(jì)論文模擬ATM柜員機(jī)程序_第3頁(yè)
C課程設(shè)計(jì)論文模擬ATM柜員機(jī)程序_第4頁(yè)
C課程設(shè)計(jì)論文模擬ATM柜員機(jī)程序_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、北京理工大學(xué)珠海學(xué)院課程設(shè)計(jì)任務(wù)書一、課程設(shè)計(jì)題目模擬atm柜員機(jī)程序二、課程設(shè)計(jì)內(nèi)容(含技術(shù)指標(biāo))1使用文本命令行界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)和密碼為123456)時(shí),系統(tǒng)能登錄atm柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:查詢余額:初始余額為10000元atm取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。atm存款:不能出現(xiàn)負(fù)存款。修改密碼:新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。2.建立銀行賬戶類、文件讀寫類、界面顯示類等以及各相關(guān)接口類。三、進(jìn)度安排1.1-4學(xué)時(shí)

2、,分析需求、理解需求;2.5-8學(xué)時(shí), 程序設(shè)計(jì),定義類、數(shù)據(jù)處理方式;3.9-12學(xué)時(shí),編寫程序、調(diào)試、測(cè)試;4.12-16學(xué)時(shí),編寫設(shè)計(jì)報(bào)告學(xué)時(shí),答辯;四、基本要求1只能使用c+語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨專绦蛉菀组喿x2.至少采用文本菜單界面(如果能采用圖形菜單界面更好)3.學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)4.用文件保存信息5.寫出課程設(shè)計(jì)報(bào)告,具體要求見(jiàn)相關(guān)說(shuō)明文檔 課程負(fù)責(zé)人簽名: 年 月 日課程設(shè)計(jì)分工安排姓名課程設(shè)計(jì)負(fù)責(zé)工作備注atm功能類用戶類摘 要演示程序時(shí),初始卡號(hào)和密碼為123456,系統(tǒng)能登錄atm柜員機(jī)系統(tǒng),進(jìn)入功能界面,根據(jù)功能界面的提示,然后由用戶進(jìn)行相

3、應(yīng)的功能操作。本程序使用c+語(yǔ)言,操作時(shí),使用文本命令行界面。該程序還需要一些改進(jìn),就是沒(méi)有采用圖形菜單界面。關(guān)鍵詞:登陸界面 修改密碼 取款 查詢信息 功能界面 目錄摘 要i目錄ii第一章 需求分析11.1功能:11.2操作:1第二章總體設(shè)計(jì)22.1 模擬atm柜員機(jī)程序功能圖22.2 整個(gè)程序的流程圖3第三章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)43.1 類的設(shè)計(jì)43.2 atm柜員機(jī)的登陸53.3 atm柜員機(jī)修改密碼功能53.4 atm柜員機(jī)取款存款功能63.5 atm柜員機(jī)查詢余額功能7第四章測(cè)試84.1程序開(kāi)始運(yùn)行的界面84.2 正確輸入帳號(hào)密碼后的界面94.3 取錢成功后的界面94.4 程序結(jié)束時(shí)的界面

4、10參考文獻(xiàn)11心得體會(huì)12第一章 需求分析1.1功能:(1)模擬atm柜員機(jī)程序;(2)修改密碼。當(dāng)用戶需要修改密碼時(shí),可以用這個(gè)功能,新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。(3)取款。用戶根據(jù)自己需要取多少錢,輸入要取的金額,每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。(4)查詢余額。用戶需要知道自己帳戶還剩多少錢時(shí),可以查詢自己帳戶的余額。(5)存款。用戶可以存款,不能出現(xiàn)負(fù)存款。(6)鎖機(jī)。當(dāng)用戶3次輸入密碼錯(cuò)誤時(shí),會(huì)自動(dòng)吞卡。1.2操作:本程序通過(guò)鍵盤操作。在運(yùn)行過(guò)程中,

5、當(dāng)用戶輸入正確的賬號(hào)和密碼時(shí),會(huì)出現(xiàn)一個(gè)功能界面,按照功能界面操作。1.修改密碼;2. 取款;3. 存款;4. 查詢余額;5. 退出系統(tǒng),按相應(yīng)的序列號(hào)后再按enter鍵,執(zhí)行相應(yīng)的操作。第二章總體設(shè)計(jì)2.1 模擬atm柜員機(jī)程序功能圖模擬atm柜員機(jī)程序 atm功能類(登陸界面)(核對(duì)密碼)(修改密碼)(取款)(存款)(查詢信息)(退出系統(tǒng))(鎖機(jī))consumer用戶類(獲得姓名)(獲得卡號(hào))(獲得密碼)(獲得余額)(設(shè)置密碼) 圖 2.2 功能圖2.2 整個(gè)程序的流程圖登錄界面輸入帳號(hào)和密碼選擇一項(xiàng)功能執(zhí)行功能界面1. 修改密碼2. 取款3. 存款4. 查詢余額5. 退出系統(tǒng)卡號(hào)密碼正確

6、?卡號(hào)密碼錯(cuò)超過(guò)3次?結(jié)束否否是圖 2.3 主程序流程圖 程序開(kāi)始運(yùn)行進(jìn)入登陸界面,用戶輸入自己的卡號(hào)和密碼,成功登陸即能進(jìn)入功能界面,如果用戶卡號(hào)密碼錯(cuò)誤超過(guò)3次,系統(tǒng)會(huì)自動(dòng)沒(méi)收卡,根據(jù)功能界面,用戶可以執(zhí)行相應(yīng)的操作,操作完畢,退出系統(tǒng)。第三章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)3.1 類的設(shè)計(jì)設(shè)計(jì)了兩個(gè)類,atm類 和consumer類。atm類完成自動(dòng)柜員機(jī)的模擬,包括:顯示登陸界面、驗(yàn)證卡號(hào)密碼、修改密碼、取款、存款、顯示所插卡信息、退出系統(tǒng)等功能。consumer類完成銀行卡的模擬,包括設(shè)置姓名、卡號(hào)、密碼、余額等信息。類的定義和實(shí)現(xiàn)均保存在頭文件atm.h文件中。atm類的設(shè)計(jì)class atm /

7、atm功能類 public: atm(consumer& cn):cnsm(cn) void welcome(); / 登陸界面 bool check_passwd(char n,char pwd);/ 核對(duì)密碼 void change_passwd(); / 修改密碼 void fetchmoney(); / 取款 void getmoney();/存款 void information(); / 查詢信息 void exitatm(); / 退出系統(tǒng) void functionshow();/ 功能界面 void lock(); / 鎖機(jī) private: int times; /

8、 記錄密碼輸入次數(shù) consumer& cnsm;consumer用戶類的設(shè)計(jì)class consumer/ 用戶類public: friend class atm; /聲明類atm為consumer的友元類 consumer(char name,char num,float money,char password);/*構(gòu)造函數(shù),建立賬戶*/protected: char* get_name(); / 獲得姓名 char* get_kahao(); / 獲得卡號(hào) char* get_passwd();/ 獲得密碼 float get_money(); / 獲得余額 float get

9、money(float gm);/存款 void set_passwd(char pwd);/ 設(shè)置密碼 void set_money(float m);/ 取錢private: char passwd10;/ 用戶密碼 char name20; / 用戶姓名 char kahao20; /用戶卡號(hào) float money;/用戶余額;3.2 atm柜員機(jī)的登陸在main主函數(shù)中實(shí)例化一個(gè)consumer類的對(duì)象,構(gòu)造用戶名是何志群,賬號(hào)和密碼都為123456,默認(rèn)余額為10000。在程序運(yùn)行中輸入賬號(hào)密碼正確即可登陸主界面,選擇atm柜員機(jī)的功能。程序運(yùn)行首先要求用戶輸入賬號(hào)密碼,帳號(hào)密碼首

10、先由main主函數(shù)構(gòu)造默認(rèn),用strcmp函數(shù)判斷賬號(hào)密碼是否一致,一致允許登陸,如果輸入錯(cuò)誤則再給予3次登陸機(jī)會(huì),如果3次都輸入錯(cuò)誤,則用lock()函數(shù)鎖定賬號(hào)密碼。相關(guān)代碼: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;3.3 atm柜員機(jī)修改密碼功能新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的

11、情況下才可以成功修改密碼。輸入正確賬戶密碼后,或者實(shí)現(xiàn)其他功能退回主界面后都可以選擇柜員機(jī)的修改密碼功能,該功能首先定義了一個(gè)chenk_passwsd函數(shù)提取用戶默認(rèn)賬號(hào)密碼,在運(yùn)行過(guò)程中現(xiàn)要求用戶輸入舊密碼,用strcmp函數(shù)判斷用戶輸入的舊密碼是否和默認(rèn)密碼相同,若相同則繼續(xù)運(yùn)行,若不同則再給予兩次輸入機(jī)會(huì),3次都輸入錯(cuò)的時(shí)候調(diào)用lock函數(shù)鎖定帳戶密碼。輸入舊密碼爭(zhēng)取后系統(tǒng)會(huì)要求用戶定義新密碼,新密碼要重復(fù)輸入兩次,要求兩次必須重復(fù)正確且新秘密大于等于6位數(shù)才能修改成功,用了do-while循環(huán)處理改項(xiàng)功能。修改密碼流程圖:輸入舊密碼密碼正確?輸入新密碼重新輸入舊密碼新密碼符合要求?密

12、碼正確?再次輸入新密碼密碼修改不成功否超過(guò)3次?密碼修改成功是是是否是否否2次輸入一樣?是否3.4 atm柜員機(jī)取款存款功能輸入正確賬號(hào)密碼后,即可登陸柜員機(jī)主界面,其中可以選擇取款和存款功能。取款功能要求用戶輸入取錢金額,取錢功能用了兩個(gè)if語(yǔ)句判斷用戶輸入金額是否100的倍數(shù)(只允許取100的整數(shù)倍),判斷輸入金額是否小于等于5000(最多允許取5000元),如果判斷都為真,則順利運(yùn)行,用fecthmony函數(shù)實(shí)現(xiàn)更新用戶余額,余額為默認(rèn)賬戶余額減去取錢金額,單次取錢功能順利實(shí)現(xiàn)時(shí),會(huì)提示用戶時(shí)候繼續(xù)實(shí)現(xiàn)取錢功能,若輸入“y/y”則繼續(xù)進(jìn)行,若輸入“n/n”則退回程序主見(jiàn)面。存款功能要求用

13、戶輸入不能為負(fù)值的金額,用if語(yǔ)句判斷,符合條件,即可成功存款。存款功能實(shí)現(xiàn)代碼:void atm:getmoney()/存款 float gm;/存入的金額 char ch; do cout<<endl<<"你要存多少錢:" <<"n$>"<<endl ; cin>>gm; if(gm<=0) cout<<"不能出現(xiàn)負(fù)存款,請(qǐng)輸入正確的數(shù)字!"<<endl; cout<<"$ > " cin>&

14、gt;gm; else cout<<endl<<"存款成功"<<endl; cnsm.getmoney(gm); cout<<"是否要繼續(xù)該項(xiàng)操作:(y/n) " <<endl; cout<<"$ > " cin>>ch; while(ch!='n'&&ch!='n'&&ch!='y'&&ch!='y') cout<<&qu

15、ot;$ >" cin>>ch; while(ch='y'|ch='y');3.5 atm柜員機(jī)查詢余額功能輸入正確賬號(hào)密碼后,即可登陸柜員機(jī)主界面,其中可以選擇查詢余額功能功能。用戶姓名主要是調(diào)用用戶類的cnsm.get_name()函數(shù),卡號(hào)主要調(diào)用用戶類的cnsm.get_kahao()函數(shù),余額主要調(diào)用用戶類的cnsm.get_money()函數(shù)。代碼如下:void atm:information()/ 查詢信息cout<<"*"<<endl; cout<<"*

16、"<<endl; cout<<"* 用戶姓名:"<<cnsm.get_name()<<endl; cout<<"* 卡號(hào): "<<cnsm.get_kahao()<<endl; cout<<"* 余額: "<<cnsm.get_money()<<endl; cout<<"*"<<endl;第四章測(cè)試4.1程序開(kāi)始運(yùn)行的界面圖 5.1 程序開(kāi)始時(shí)的界面4.2 正確輸

17、入帳號(hào)密碼后的界面圖5.2 正確輸入帳號(hào)密碼后的界面4.3 取錢成功后的界面5.3 去錢成功后的界面4.4 程序結(jié)束時(shí)的界面參考文獻(xiàn)1 陳維興,林小茶:c+面向?qū)ο蟪绦蛟O(shè)計(jì)教程m,清華大學(xué)出版社2 丁峻嶺: c語(yǔ)言程序設(shè)計(jì)m,中國(guó)鐵道出版社心得體會(huì)這次課程設(shè)計(jì)讓我更加了解大一學(xué)到的c和c+。課設(shè)題目要求不僅要求對(duì)課本知識(shí)有較深刻的了解,同時(shí)要求程序設(shè)計(jì)者有較強(qiáng)的思維和動(dòng)手能力和更加了解編程思想和編程技巧。這次課程設(shè)計(jì)讓我有一個(gè)深刻的體會(huì),那就是細(xì)節(jié)決定成敗,編程最需要的是嚴(yán)謹(jǐn),如何的嚴(yán)謹(jǐn)都不過(guò)分,往往檢查了半天發(fā)現(xiàn)錯(cuò)誤發(fā)生在某個(gè)括號(hào),分號(hào),引號(hào),或者數(shù)據(jù)類型上。就像我在寫atm類時(shí),寫完后,忘了在大括號(hào)后加個(gè)分號(hào),這一點(diǎn)小小的錯(cuò)誤也耽誤了我?guī)资昼姡哉f(shuō)細(xì)節(jié)很重要。  程序設(shè)計(jì)時(shí),也不要怕遇到錯(cuò)誤,在實(shí)際操作過(guò)程中犯的一些錯(cuò)誤還會(huì)有意外的收獲,感覺(jué)課程設(shè)計(jì)很有意思。在具體操作中對(duì)這學(xué)期所學(xué)的c+語(yǔ)言的理論知識(shí)得到鞏固,達(dá)到課程設(shè)計(jì)的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機(jī)中應(yīng)更加注意,同

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論