機(jī)課程設(shè)計(jì)ATM自動(dòng)粗取款系統(tǒng)_第1頁(yè)
機(jī)課程設(shè)計(jì)ATM自動(dòng)粗取款系統(tǒng)_第2頁(yè)
機(jī)課程設(shè)計(jì)ATM自動(dòng)粗取款系統(tǒng)_第3頁(yè)
機(jī)課程設(shè)計(jì)ATM自動(dòng)粗取款系統(tǒng)_第4頁(yè)
機(jī)課程設(shè)計(jì)ATM自動(dòng)粗取款系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電子信息學(xué)院軟件工程系課 程 設(shè) 計(jì) 報(bào) 告(2013 -2014 第 2學(xué)期)課程設(shè)計(jì)類(lèi)型:面向?qū)ο蟪绦蛟O(shè)計(jì)題目:ATM自動(dòng)粗取款系統(tǒng)電子信息學(xué)院 制目錄目錄11. 問(wèn)題分析21.1 問(wèn)題描述21.2 要求分析22. 總體設(shè)計(jì)22.1 功能分析22.2 數(shù)據(jù)抽象22.3 類(lèi)的定義32.4 總體結(jié)構(gòu)33.詳細(xì)設(shè)計(jì)33.1 系統(tǒng)的停頓43.2 主頁(yè)面43.3 登陸43.4 功能界面53.5 存款63.6 取款63.7 查詢(xún)73.8 退出74. 功能測(cè)試74.1 本系統(tǒng)的主界面74.2 界面85.遇到的問(wèn)題126. 課設(shè)小結(jié)12參考文獻(xiàn)131. 問(wèn)題分析1.1 問(wèn)題描述本次C+課程設(shè)計(jì)題目是“AT

2、M取款機(jī)程序”。(1)軟件用途:ATM取款(2)功能概述:模擬ATM取款機(jī) 登陸、取款、查詢(xún)。1.2 要求分析根據(jù)題目要求,做出如下的具體分析:從需求可以發(fā)現(xiàn)軟件只需要一個(gè)ATM類(lèi),可以主要分為主頁(yè),主頁(yè)面zhuyemian();登陸denglu();功能界面djmian();查詢(xún)chaxun();取款qukuan();存款cunkuan();退出tuichu();幾個(gè)主要的公有類(lèi)和一個(gè)存款數(shù)數(shù)目私有類(lèi)zong()。其中,主頁(yè)面zhuyemian()和操作界面djmian()兩個(gè)函數(shù)用于接受輸入用戶(hù)的操作項(xiàng)目編號(hào),用戶(hù)輸入編號(hào)后跳轉(zhuǎn)到相對(duì)應(yīng)的存款,查詢(xún),取款,退出4個(gè)函數(shù)模塊。另外還有有一個(gè)輸

3、入流存儲(chǔ)用戶(hù)數(shù)據(jù)在文本文檔。2. 總體設(shè)計(jì)2.1 功能分析1. 要求分析如下:主頁(yè)面zhuyemian()和功能界面djmian()兩個(gè)函數(shù)用于接受輸入用戶(hù)的操作項(xiàng)目編號(hào),用戶(hù)輸入編號(hào)后跳轉(zhuǎn)到相對(duì)應(yīng)的登陸,選擇操作界面,存款,取款,查詢(xún),退出函數(shù)模塊。另外還有一個(gè)輸入流存儲(chǔ)用戶(hù)數(shù)據(jù)在文本文檔。除此加入了一個(gè)time()函數(shù)用于操作之間停頓,是用戶(hù)可以看清自己的操作免得跳轉(zhuǎn)過(guò)快。其中,主頁(yè)面的功能包括登陸和退出,并且要求對(duì)輸入不符合要求的數(shù)做出提示,其次登陸的賬號(hào)密碼輸入錯(cuò)誤也要提示并且要可以重新輸入。操作界面也要實(shí)現(xiàn)對(duì)輸入不符的情況做出提示。存款選項(xiàng)需要把用戶(hù)輸入的數(shù)據(jù)加上原本的金額并輸出顯示

4、。取款選項(xiàng)需要把用戶(hù)輸入的數(shù)據(jù)用余額減去后輸出顯示。退出選項(xiàng)只需要做出輸出感謝的話就行了。2.2 數(shù)據(jù)抽象1ATM類(lèi)的信息:public= A,id,pd,x,y,z,B,cun,quA=整型,接收用戶(hù)輸入主頁(yè)面操作編號(hào)id=整型,接收用戶(hù)輸入賬戶(hù) pd=整型,接收用戶(hù)輸入密碼x=整型,讀取文本里的賬戶(hù) y=整型,讀取文本里的密碼z=整型,讀取文本里的余額 B=整型,接收用戶(hù)輸入功能頁(yè)面操作編號(hào) cun=整型,接收用戶(hù)輸入的存款金額qu=整型,接收用戶(hù)輸入的取款金額2.3 類(lèi)的定義1 ATM類(lèi)l ATMl IntAl int idl int pdl int xl int yl int zl i

5、nt Bl int cunl int qu輸入數(shù)據(jù)賬號(hào)密碼讀取賬號(hào)讀取密碼讀取余額輸入數(shù)據(jù)輸入存款輸入取款l void zhuyemian();l void denglu();l void djmian();l int chaxun();l int qukuan();l int cunkuan();l void tuichu();l void get();l void time();l int zong;接收用戶(hù)輸入的操作代號(hào)核對(duì)登陸信息接收用戶(hù)輸入的操作代號(hào)查詢(xún)余額取款存款退出登陸接收用戶(hù)重新輸入停頓總的金額2.4 總體結(jié)構(gòu)zhuyemianTuichuCunkuanQukuanChaxun

6、denglu3.詳細(xì)設(shè)計(jì)3.1系統(tǒng)的停頓因?yàn)檫@個(gè)操作比較簡(jiǎn)單,所以跳轉(zhuǎn)比較快,因此我設(shè)計(jì)了一個(gè)系統(tǒng)的停頓時(shí)間。void ATM:time() cout<<"n請(qǐng)稍等幾秒鐘! 系統(tǒng)正在處理中.n"<<endl;/每次操作之后便會(huì)顯示這幾個(gè)字系統(tǒng)進(jìn)入跳轉(zhuǎn)后便調(diào)用函數(shù)time()執(zhí)行停頓,即time();Sleep(3000);3.2 主頁(yè)面主頁(yè)面主要是執(zhí)行接收用戶(hù)的操作輸入并跳轉(zhuǎn)的登陸界面cin>>A; if(A>0&&A<3)/用戶(hù)的輸入是否是1或者2 switch(A) case 1:denglu();brea

7、k;/輸入為1就跳轉(zhuǎn)登陸界面 case 2:tuichu();break;/輸入為2就退出 else cout<<"t-n" cout<<"t請(qǐng)輸入正確的選項(xiàng)!按回車(chē)鍵繼續(xù)操作. n" cout<<"t-n"cin.get(); cin.get();3.3 登陸登陸界面要先打開(kāi)一個(gè)txt文本,里面存放了用戶(hù)數(shù)據(jù)。int id,pd,x,y,z;ifstream shuju("ATM.txt",ios:in);/打開(kāi)文本,并且只做讀取操作if(! shuju)/判斷是否打開(kāi)成功ce

8、rr<<"讀取錯(cuò)誤"<<endl;exit(1); shuju>>x>>y>>z;/依次賦值給xyz zong=z;/z賦值給余額zong然后判斷用戶(hù)輸入的數(shù)據(jù)是否與文本里對(duì)應(yīng)的數(shù)據(jù)吻合,是就繼續(xù)操作,否就重新輸入。cout<<"n 請(qǐng)輸入卡號(hào):" cin>>id; if(id=x) cout<<" 請(qǐng)輸入密碼:" cin>>pd; time();Sleep(3000); if(pd!=y) cout<<"

9、t-n" cout<<"t您輸入的密碼不正確,請(qǐng)按回車(chē)鍵重新選擇!n" cout<<"t-n" cin.get();cin.get();/密碼錯(cuò)誤則重新輸入else cout<<"t-n" cout<<"t密碼正確,請(qǐng)按回車(chē)鍵繼續(xù)操作! n" cout<<"t-n" system("cls"); djmian(); /密碼正確則跳轉(zhuǎn)到功能界面 else cout<<"t-n"

10、 cout<<"t您輸入的卡號(hào)不存在,請(qǐng)按回車(chē)鍵后重新選擇!"<<endl; cout<<"t-n" cin.get(); cin.get();/卡號(hào)錯(cuò)誤重新輸入3.4 功能界面功能界面主要是接收用戶(hù)的數(shù)據(jù)輸入后跳轉(zhuǎn)到相應(yīng)的操作模塊,一共有1到4個(gè)選項(xiàng),分別執(zhí)行跳轉(zhuǎn)到存款,取款,查詢(xún)和退出模塊。cin>>B; if(B>0&&B<5)/判斷用戶(hù)輸入是否為1到4 switch(B) case 1:cunkuan();break; case 2:qukuan();break; cas

11、e 3:chaxun();break; case 4:tuichu();break; /跳轉(zhuǎn)到相應(yīng)的模塊 else cout<<"t-n" cout<<"t 請(qǐng)輸入正確的選項(xiàng)! 按回車(chē)鍵繼續(xù)操作! n" cout<<"t-n" cin.get(); cin.get(); system("cls"); djmian();/如果不是的話就繼續(xù)輸入 3.5 存款簡(jiǎn)單的把用戶(hù)的輸入數(shù)據(jù)加到從文本讀取的數(shù)據(jù)并返回結(jié)果并輸出到屏幕int cun; cout<<endl<&l

12、t;"n請(qǐng)輸入您要存入的金額:" cin>>cun; time();Sleep(3000); zong=zong+cun; cout<<"t-n" cout<<"t 您目前賬戶(hù)的余額為:"<<zong<<"元 n" cout<<"t 繼續(xù)操作請(qǐng)按回車(chē)鍵. n" cout<<"t-n" cin.get(); cin.get();3.6 取款取款也是簡(jiǎn)單的用余額減去用戶(hù)輸入的數(shù)據(jù)后顯示int qu

13、; cout<<endl<<"n請(qǐng)輸入取款金額:" cin>>qu; time();Sleep(3000); if(qu>zong) cout<<"t-n" cout<<"t 對(duì)不起!您的余額不足,請(qǐng)按回車(chē)鍵后重新輸入. n" cout<<"t-n" qukuan(); else zong=zong-qu; cout<<"t-n" cout<<"t 您目前賬戶(hù)的余額為:"&l

14、t;<zong<<"元 n" cout<<"t 繼續(xù)操作請(qǐng)按回車(chē)鍵. n" cout<<"t-n" cin.get(); cin.get();3.7 查詢(xún)這個(gè)是最簡(jiǎn)單的部分,就是用cout輸出余額即可。cout<<"t-n" cout<<"t 您目前賬戶(hù)的余額為:"<<zong<<"元 n" cout<<"t 繼續(xù)操作請(qǐng)按回車(chē)鍵. n" cout<&

15、lt;"t-n" cin.get(); cin.get();3.8 退出這個(gè)沒(méi)什么,退出即可。time();Sleep(3000); cout<<endl; cout<<"n" cout<<"n" cout<<" 溫馨提示:請(qǐng)記得收好您的銀行卡和錢(qián)!歡迎再次使用 n" cout<<"n" cout<<"n"4. 功能測(cè)試4.1 本系統(tǒng)的主界面1. 高校工資管理系統(tǒng)。本系統(tǒng)的主要功能有:1. 用戶(hù)登陸2.

16、退出系統(tǒng)2. 用戶(hù)可根據(jù)系統(tǒng)提示和用戶(hù)需要輸入12的操作數(shù)字。3.當(dāng)用戶(hù)輸入的選項(xiàng)不符合要求時(shí),系統(tǒng)將驗(yàn)證并報(bào)錯(cuò)4.選擇登陸輸入賬號(hào)如果不正確5.輸入密碼不正確則提示重新輸入4.2 界面1.輸入正確的密碼后進(jìn)入功能選擇界面2.如果輸入的不是1或者2則提示重新輸入2.輸入選項(xiàng)1選擇存款功能,并輸入存款金額后顯示余額3.輸入選項(xiàng)2選擇取款金額,此處如果輸入的取款金額小于余額的話,系統(tǒng)將提示重新輸入4.輸入選項(xiàng)3選擇查詢(xún)功能5.輸入選項(xiàng)4選擇退出5.遇到的問(wèn)題 這次設(shè)計(jì)遇到最大的問(wèn)題就是輸入流的讀取和賦值問(wèn)題,讀取只有要怎么一次賦值3個(gè)數(shù)研究了好久,讀取數(shù)據(jù)后后要驗(yàn)證是否與用戶(hù)輸入的數(shù)據(jù)相同也由于自

17、己經(jīng)驗(yàn)不足老是在小問(wèn)題上卡住??偟膩?lái)說(shuō)問(wèn)題是很少的,因?yàn)槌绦虮緛?lái)就很簡(jiǎn)單的緣故也沒(méi)多少?gòu)?fù)雜的要求就簡(jiǎn)單的處理了。6. 課設(shè)小結(jié)這次的設(shè)計(jì)因?yàn)橐矝](méi)要求是復(fù)雜的功能,所以設(shè)計(jì)相對(duì)簡(jiǎn)單,整體的都只有一個(gè)類(lèi),用不同函數(shù)構(gòu)成不同的模塊來(lái)實(shí)現(xiàn)各項(xiàng)功能,設(shè)計(jì)中用的最多的就是if和swith語(yǔ)句,嘴復(fù)雜的也就是個(gè)輸入流函數(shù)。而且我意識(shí)到這個(gè)系統(tǒng)不會(huì)返回?cái)?shù)據(jù)給文本,也就是說(shuō)只可以單純的用一次,數(shù)據(jù)無(wú)法保存,這讓我覺(jué)得不足。經(jīng)過(guò)一個(gè)學(xué)期的學(xué)習(xí)和上機(jī)實(shí)踐,使我對(duì)C+語(yǔ)言有了更認(rèn)識(shí)和和了解,要想學(xué)好它要重在實(shí)踐,要通過(guò)不斷的上機(jī)操作才能更好的學(xué)習(xí)它。這次課程設(shè)計(jì)讓我更加了解C+。課設(shè)題目要求不僅要求對(duì)課本知識(shí)有較深刻

18、的了解,同時(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ù)類(lèi)型上。就像我在寫(xiě)ATM類(lèi)時(shí),寫(xiě)完后,忘了在大括號(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)更加注意,同時(shí)體會(huì)到C+語(yǔ)言具有的語(yǔ)句簡(jiǎn)潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)的重要作用,特別是對(duì)數(shù)組和循環(huán)有了深刻的理解。  

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論