atm機畢業(yè)論文(c++)--模擬atm柜員機程序_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計任務(wù)書</b></p><p><b>  一、課程設(shè)計題目</b></p><p>  《模擬ATM柜員機程序》</p><p>  二、課程設(shè)計內(nèi)容(含技術(shù)指標(biāo))</p><p>  1.使用文本命令行界面。當(dāng)輸入給定的卡號和密碼(初始卡號和密碼為12345

2、6)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:</p><p>  查詢余額:初始余額為10000元</p><p>  ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。</p><p>  ATM存款:不能出現(xiàn)負存款。</p><p>  修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相

3、同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。</p><p>  2.建立銀行賬戶類、文件讀寫類、界面顯示類等以及各相關(guān)接口類。</p><p><b>  三、進度安排</b></p><p>  1.1-4學(xué)時,分析需求、理解需求;</p><p>  2.5-8學(xué)時, 程序設(shè)

4、計,定義類、數(shù)據(jù)處理方式;</p><p>  3.9-12學(xué)時,編寫程序、調(diào)試、測試;</p><p>  4.12-16學(xué)時,編寫設(shè)計報告學(xué)時,答辯;</p><p><b>  四、基本要求</b></p><p>  1.只能使用C++語言,源程序要有適當(dāng)?shù)淖⑨專绦蛉菀组喿x</p><p&g

5、t;  2.至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p>  3.學(xué)生可自動增加新功能模塊(視情況可另外加分)</p><p><b>  4.用文件保存信息</b></p><p>  5.寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔</p><p>  課程負責(zé)人簽名: <

6、/p><p>  年 月 日</p><p><b>  課程設(shè)計分工安排</b></p><p><b>  摘 要</b></p><p>  演示程序時,初始卡號和密碼為123456,系統(tǒng)能登錄ATM柜員機系統(tǒng),進入功能界面,根據(jù)功能界面的提示,然后由用戶進行相應(yīng)的功能操作。本程序

7、使用C++語言,操作時,使用文本命令行界面。該程序還需要一些改進,就是沒有采用圖形菜單界面。</p><p>  關(guān)鍵詞:登陸界面 修改密碼 取款 查詢信息 功能界面 </p><p><b>  目錄</b></p><p><b>  摘 要I</b></p><p><b>  

8、目錄II</b></p><p>  第一章 需求分析1</p><p><b>  1.1功能:1</b></p><p><b>  1.2操作:1</b></p><p>  第二章總體設(shè)計2</p><p>  2.1 模擬ATM柜員機程序功

9、能圖2</p><p>  2.2 整個程序的流程圖3</p><p>  第三章詳細設(shè)計與實現(xiàn)4</p><p>  3.1 類的設(shè)計4</p><p>  3.2 ATM柜員機的登陸5</p><p>  3.3 ATM柜員機修改密碼功能5</p><p>  3.4 ATM柜

10、員機取款存款功能6</p><p>  3.5 ATM柜員機查詢余額功能7</p><p><b>  第四章測試8</b></p><p>  4.1程序開始運行的界面8</p><p>  4.2 正確輸入帳號密碼后的界面9</p><p>  4.3 取錢成功后的界面9<

11、/p><p>  4.4 程序結(jié)束時的界面10</p><p><b>  參考文獻11</b></p><p><b>  心得體會12</b></p><p><b>  第一章 需求分析</b></p><p><b>  1.1功能

12、:</b></p><p> ?。?)模擬ATM柜員機程序;</p><p> ?。?)修改密碼。當(dāng)用戶需要修改密碼時,可以用這個功能,新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。</p><p>  (3)取款。用戶根據(jù)自己需要取多少錢,輸入要取的金額,每次取款金額為10

13、0的倍數(shù),總額不超過5000元,支取金額不允許透支。</p><p> ?。?)查詢余額。用戶需要知道自己帳戶還剩多少錢時,可以查詢自己帳戶的余額。</p><p>  (5)存款。用戶可以存款,不能出現(xiàn)負存款。</p><p> ?。?)鎖機。當(dāng)用戶3次輸入密碼錯誤時,會自動吞卡。</p><p><b>  1.2操作:<

14、/b></p><p>  本程序通過鍵盤操作。在運行過程中,當(dāng)用戶輸入正確的賬號和密碼時,會出現(xiàn)一個功能界面,按照功能界面操作。1.修改密碼;2. 取款;3. 存款;4. 查詢余額;5. 退出系統(tǒng),按相應(yīng)的序列號后再按enter鍵,執(zhí)行相應(yīng)的操作。</p><p><b>  第二章總體設(shè)計</b></p><p>  2.1 模擬A

15、TM柜員機程序功能圖</p><p><b>  圖 2.2 功能圖</b></p><p>  2.2 整個程序的流程圖</p><p>  的等5][ps[t1].co[3]+p.j - 1] == 0</p><p>  圖 2.3 主程序流程圖</p><p>  程序開始運行進入登陸界

16、面,用戶輸入自己的卡號和密碼,成功登陸即能進入功能界面,如果用戶卡號密碼錯誤超過3次,系統(tǒng)會自動沒收卡,根據(jù)功能界面,用戶可以執(zhí)行相應(yīng)的操作,操作完畢,退出系統(tǒng)。</p><p>  第三章詳細設(shè)計與實現(xiàn)</p><p><b>  3.1 類的設(shè)計</b></p><p>  設(shè)計了兩個類,ATM類 和consumer類。ATM類完成自動柜

17、員機的模擬,包括:顯示登陸界面、驗證卡號密碼、修改密碼、取款、存款、顯示所插卡信息、退出系統(tǒng)等功能。Consumer類完成銀行卡的模擬,包括設(shè)置姓名、卡號、密碼、余額等信息。類的定義和實現(xiàn)均保存在頭文件atm.h文件中。</p><p><b>  ATM類的設(shè)計</b></p><p>  class ATM // ATM功能類 </p><

18、p><b>  {</b></p><p><b>  public:</b></p><p>  ATM(consumer& cn):cnsm(cn)</p><p><b>  {</b></p><p><b>  }</b></

19、p><p>  void welcome(); // 登陸界面</p><p>  bool check_passwd(char n[],char pwd[]);// 核對密碼</p><p>  void change_passwd(); // 修改密碼</p><p>  void fetchmoney(); // 取款 </p>

20、;<p>  void getmoney();//存款</p><p>  void information(); // 查詢信息 </p><p>  void exitATM(); // 退出系統(tǒng) </p><p>  void functionshow();// 功能界面</p><p>  void lock();

21、 // 鎖機 </p><p><b>  private:</b></p><p>  int times; // 記錄密碼輸入次數(shù) </p><p>  consumer& cnsm;</p><p><b>  };</b></p><p>  consu

22、mer用戶類的設(shè)計</p><p>  class consumer// 用戶類</p><p><b>  {</b></p><p><b>  public:</b></p><p>  friend class ATM; //聲明類ATM為consumer的友元類</p>&l

23、t;p>  consumer(char Name[],char Num[],float Money,char Password[]);/*構(gòu)造函數(shù),建立賬戶*/</p><p>  protected:</p><p>  char* get_name(); // 獲得姓名</p><p>  char* get_kahao(); // 獲得卡號</p&

24、gt;<p>  char* get_passwd();// 獲得密碼</p><p>  float get_money(); // 獲得余額</p><p>  float getmoney(float gm);//存款</p><p>  void set_passwd(char pwd[]);// 設(shè)置密碼</p><p&g

25、t;  void set_money(float m);// 取錢</p><p>  private: </p><p>  char passwd[10];// 用戶密碼</p><p>  char name[20]; // 用戶姓名</p><p>  char kahao[20]; //用戶卡號 </p>

26、<p>  float money;//用戶余額</p><p><b>  };</b></p><p>  3.2 ATM柜員機的登陸</p><p>  在main主函數(shù)中實例化一個consumer類的對象,構(gòu)造用戶名是何志群,賬號和密碼都為123456,默認余額為10000。在程序運行中輸入賬號密碼正確即可登陸主界面,選擇AT

27、M柜員機的功能。</p><p>  程序運行首先要求用戶輸入賬號密碼,帳號密碼首先由main主函數(shù)構(gòu)造默認,用strcmp函數(shù)判斷賬號密碼是否一致,一致允許登陸,如果輸入錯誤則再給予3次登陸機會,如果3次都輸入錯誤,則用lock()函數(shù)鎖定賬號密碼。</p><p><b>  相關(guān)代碼:</b></p><p>  bool ATM::ch

28、eck_passwd(char num[],char pwd[])</p><p><b>  {</b></p><p>  if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0) </p><p>  return true;</p>

29、<p><b>  else </b></p><p>  return false;</p><p><b>  }</b></p><p>  3.3 ATM柜員機修改密碼功能</p><p>  新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,

30、且兩次輸入相同的情況下才可以成功修改密碼。</p><p>  輸入正確賬戶密碼后,或者實現(xiàn)其他功能退回主界面后都可以選擇柜員機的修改密碼功能,該功能首先定義了一個chenk_passwsd函數(shù)提取用戶默認賬號密碼,在運行過程中現(xiàn)要求用戶輸入舊密碼,用strcmp函數(shù)判斷用戶輸入的舊密碼是否和默認密碼相同,若相同則繼續(xù)運行,若不同則再給予兩次輸入機會,3次都輸入錯的時候調(diào)用lock函數(shù)鎖定帳戶密碼。輸入舊密碼爭取

31、后系統(tǒng)會要求用戶定義新密碼,新密碼要重復(fù)輸入兩次,要求兩次必須重復(fù)正確且新秘密大于等于6位數(shù)才能修改成功,用了do-while循環(huán)處理改項功能。</p><p><b>  修改密碼流程圖:</b></p><p>  3.4 ATM柜員機取款存款功能</p><p>  輸入正確賬號密碼后,即可登陸柜員機主界面,其中可以選擇取款和存款功能。&

32、lt;/p><p>  取款功能要求用戶輸入取錢金額,取錢功能用了兩個if語句判斷用戶輸入金額是否100的倍數(shù)(只允許取100的整數(shù)倍),判斷輸入金額是否小于等于5000(最多允許取5000元),如果判斷都為真,則順利運行,用fecthmony函數(shù)實現(xiàn)更新用戶余額,余額為默認賬戶余額減去取錢金額,單次取錢功能順利實現(xiàn)時,會提示用戶時候繼續(xù)實現(xiàn)取錢功能,若輸入“Y/y”則繼續(xù)進行,若輸入“N/n”則退回程序主見面。&l

33、t;/p><p>  存款功能要求用戶輸入不能為負值的金額,用if語句判斷,符合條件,即可成功存款。</p><p><b>  存款功能實現(xiàn)代碼:</b></p><p>  void ATM::getmoney()//存款</p><p><b>  {</b></p><p&g

34、t;  float gm;//存入的金額</p><p><b>  char ch;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  cout<<endl<<"你要存多少錢:&qu

35、ot; <<"\n$>\\"<<endl ;</p><p><b>  cin>>gm;</b></p><p><b>  if(gm<=0)</b></p><p><b>  {</b></p><p&g

36、t;  cout<<"不能出現(xiàn)負存款,請輸入正確的數(shù)字!"<<endl;</p><p>  cout<<"$ >\\ ";</p><p><b>  cin>>gm;</b></p><p><b>  }</b></p

37、><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<endl<<"存款成功"<<endl;</p><p>  cnsm.getmoney(gm);</p><p>

38、;<b>  }</b></p><p>  cout<<"是否要繼續(xù)該項操作:(Y/N) " <<endl;</p><p>  cout<<"$ >\\ ";</p><p><b>  cin>>ch;</b></p

39、><p>  while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')</p><p><b>  {</b></p><p>  cout<<"$ >\\";</p&

40、gt;<p><b>  cin>>ch;</b></p><p><b>  }</b></p><p>  }while(ch=='y'||ch=='Y');</p><p><b>  }</b></p><p>

41、  3.5 ATM柜員機查詢余額功能</p><p>  輸入正確賬號密碼后,即可登陸柜員機主界面,其中可以選擇查詢余額功能功能。用戶姓名主要是調(diào)用用戶類的cnsm.get_name()函數(shù),卡號主要調(diào)用用戶類的cnsm.get_kahao()函數(shù),余額主要調(diào)用用戶類的cnsm.get_money()函數(shù)。</p><p><b>  代碼如下:</b></p&

42、gt;<p>  void ATM::information()// 查詢信息</p><p>  {cout<<"**********************************"<<endl;</p><p>  cout<<"*"<<endl; </p><p

43、>  cout<<"* 用戶姓名:"<<cnsm.get_name()<<endl;</p><p>  cout<<"* 卡號: "<<cnsm.get_kahao()<<endl;</p><p>  cout<<"*

44、 余額: "<<cnsm.get_money()<<endl;</p><p>  cout<<"**********************************"<<endl;</p><p><b> ?。?lt;/b></p><p><b> 

45、 第四章測試</b></p><p>  4.1程序開始運行的界面</p><p>  圖 5.1 程序開始時的界面</p><p>  4.2 正確輸入帳號密碼后的界面</p><p>  圖5.2 正確輸入帳號密碼后的界面</p><p>  4.3 取錢成功后的界面</p><p

46、>  5.3 去錢成功后的界面</p><p>  4.4 程序結(jié)束時的界面</p><p><b>  參考文獻</b></p><p>  [1] 陳維興,林小茶:《C++面向?qū)ο蟪绦蛟O(shè)計教程》[M],清華大學(xué)出版社</p><p>  [2] 丁峻嶺:《 C語言程序設(shè)計》[M],中國鐵道出版社</p

47、><p><b>  心得體會</b></p><p>  這次課程設(shè)計讓我更加了解大一學(xué)到的C和C++。課設(shè)題目要求不僅要求對課本知識有較深刻的了解,同時要求程序設(shè)計者有較強的思維和動手能力和更加了解編程思想和編程技巧。</p><p>  這次課程設(shè)計讓我有一個深刻的體會,那就是細節(jié)決定成敗,編程最需要的是嚴謹,如何的嚴謹都不過分,往往檢查了半

48、天發(fā)現(xiàn)錯誤發(fā)生在某個括號,分號,引號,或者數(shù)據(jù)類型上。就像我在寫ATM類時,寫完后,忘了在大括號后加個分號,這一點小小的錯誤也耽誤了我?guī)资昼?,所以說細節(jié)很重要。</p><p>  程序設(shè)計時,也不要怕遇到錯誤,在實際操作過程中犯的一些錯誤還會有意外的收獲,感覺課程設(shè)計很有意思。在具體操作中對這學(xué)期所學(xué)的C++語言的理論知識得到鞏固,達到課程設(shè)計的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機中應(yīng)更加注意,同時體

49、會到C++語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點。發(fā)現(xiàn)上機的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。</p><p>  這個程序是我們2個人完成的,同時我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結(jié)協(xié)作的精神。某個人的離群都可能導(dǎo)致整項工作的失敗。實習(xí)中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導(dǎo)致整個工作失敗。團結(jié)協(xié)作是我們成功的

溫馨提示

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

評論

0/150

提交評論