2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  電子信息學院</b></p><p><b>  軟件工程系</b></p><p>  課 程 設 計 報 告</p><p> ?。?013 -2014 第 2學期)</p><p>  課程設計類型:面向對象程序設計</p><p&g

2、t;  題目:ATM自動粗取款系統</p><p><b>  目錄</b></p><p><b>  目錄1</b></p><p><b>  1. 問題分析2</b></p><p>  1.1 問題描述2</p><p>  1.2 要求

3、分析2</p><p><b>  2. 總體設計2</b></p><p>  2.1 功能分析2</p><p>  2.2 數據抽象2</p><p>  2.3 類的定義3</p><p>  2.4 總體結構3</p><p><b>  

4、3.詳細設計3</b></p><p>  3.1 系統的停頓4</p><p><b>  3.2 主頁面4</b></p><p><b>  3.3 登陸4</b></p><p>  3.4 功能界面5</p><p><b>  3.

5、5 存款6</b></p><p><b>  3.6 取款6</b></p><p><b>  3.7 查詢7</b></p><p><b>  3.8 退出7</b></p><p><b>  4. 功能測試7</b><

6、;/p><p>  4.1 本系統的主界面7</p><p><b>  4.2 界面8</b></p><p>  5.遇到的問題12</p><p>  6. 課設小結12</p><p>  參 考 文 獻13</p><p><b>  1. 問題

7、分析</b></p><p><b>  1.1 問題描述</b></p><p>  本次C++課程設計題目是“ATM取款機程序”。</p><p>  (1)軟件用途:ATM取款</p><p>  (2)功能概述:模擬ATM取款機 登陸、取款、查詢。</p><p>&l

8、t;b>  1.2 要求分析</b></p><p>  根據題目要求,做出如下的具體分析:</p><p>  從需求可以發現軟件只需要一個ATM類,可以主要分為主頁,主頁面zhuyemian();</p><p>  登陸denglu();功能界面djmian();查詢chaxun();取款qukuan();存款cunkuan();退出tuic

9、hu();幾個主要的公有類和一個存款數數目私有類zong()。</p><p>  其中,主頁面zhuyemian()和操作界面djmian()兩個函數用于接受輸入用戶的操作項目編號,用戶輸入編號后跳轉到相對應的存款,查詢,取款,退出4個函數模塊。另外還有有一個輸入流存儲用戶數據在文本文檔。</p><p><b>  2. 總體設計</b></p>&

10、lt;p><b>  2.1 功能分析</b></p><p>  1. 要求分析如下:</p><p>  主頁面zhuyemian()和功能界面djmian()兩個函數用于接受輸入用戶的操作項目編號,用戶輸入編號后跳轉到相對應的登陸,選擇操作界面,存款,取款,查詢,退出函數模塊。另外還有一個輸入流存儲用戶數據在文本文檔。除此加入了一個time()函數用于操作

11、之間停頓,是用戶可以看清自己的操作免得跳轉過快。其中,主頁面的功能包括登陸和退出,并且要求對輸入不符合要求的數做出提示,其次登陸的賬號密碼輸入錯誤也要提示并且要可以重新輸入。操作界面也要實現對輸入不符的情況做出提示。存款選項需要把用戶輸入的數據加上原本的金額并輸出顯示。取款選項需要把用戶輸入的數據用余額減去后輸出顯示。退出選項只需要做出輸出感謝的話就行了。</p><p><b>  2.2 數據抽象

12、</b></p><p>  1.ATM類的信息:</p><p>  public={ A,id,pd,x,y,z,B,cun,qu}</p><p>  A={整型,接收用戶輸入主頁面操作編號 }</p><p>  id={整型,接收用戶輸入賬戶 }</p><p>  pd={整型,接收用戶輸入密碼

13、</p><p>  x={整型,讀取文本里的賬戶 }</p><p>  y={整型,讀取文本里的密碼} </p><p>  z={整型,讀取文本里的余額 }</p><p>  B={整型,接收用戶輸入功能頁面操作編號 }</p><p>  cun={整型,接收用戶輸入的存款金額}</p><

14、;p>  qu={整型,接收用戶輸入的取款金額}</p><p><b>  2.3 類的定義</b></p><p><b>  ATM類</b></p><p><b>  2.4 總體結構</b></p><p><b>  3.詳細設計</b>

15、;</p><p><b>  3.1 系統的停頓</b></p><p>  因為這個操作比較簡單,所以跳轉比較快,因此我設計了一個系統的停頓時間。</p><p>  void ATM::time()</p><p><b>  {</b></p><p>  cout&

16、lt;<"\n請稍等幾秒鐘! 系統正在處理中...\n"<<endl;//每次操作之后便會顯示這幾個字</p><p><b>  }</b></p><p>  系統進入跳轉后便調用函數time()執行停頓,即</p><p>  time();Sleep(3000);</p><p&

17、gt;<b>  3.2 主頁面</b></p><p>  主頁面主要是執行接收用戶的操作輸入并跳轉的登陸界面</p><p><b>  cin>>A;</b></p><p>  if(A>0&&A<3)//用戶的輸入是否是1或者2</p><p>&l

18、t;b>  {</b></p><p><b>  switch(A)</b></p><p><b>  {</b></p><p>  case 1:denglu();break;//輸入為1就跳轉登陸界面</p><p>  case 2:tuichu();break;//輸

19、入為2就退出</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<&quo

20、t;\t--------------------------------------------------------------\n";</p><p>  cout<<"\t 請輸入正確的選項!按回車鍵繼續操作... \n";</p><p>  cout<<"\t-----------------------

21、---------------------------------------\n";</p><p>  cin.get();</p><p>  cin.get();</p><p><b>  3.3 登陸</b></p><p>  登陸界面要先打開一個txt文本,里面存放了用戶數據。</p>

22、;<p>  int id,pd,x,y,z;</p><p>  ifstream shuju("ATM.txt",ios::in);//打開文本,并且只做讀取操作</p><p>  if(! shuju)//判斷是否打開成功</p><p>  {cerr<<"讀取錯誤"<<endl

23、;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  shuju>>x>>y>>z;//依次賦值給xyz</p><p>  zong=z;//z賦值給余額zong</p><p&

24、gt;  然后判斷用戶輸入的數據是否與文本里對應的數據吻合,是就繼續操作,否就重新輸入。</p><p>  cout<<"\n ☆☆☆☆☆請輸入卡號:";</p><p><b>  cin>>id;</b></p><p><b>  if(id==x)</b&g

25、t;</p><p><b>  {</b></p><p>  cout<<" ☆☆☆☆☆請輸入密碼:";</p><p><b>  cin>>pd;</b></p><p>  time();Sleep(3000);</p&g

26、t;<p><b>  if(pd!=y)</b></p><p><b>  {</b></p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>

27、;  cout<<"\t☆☆您輸入的密碼不正確,請按回車鍵重新選擇!☆☆\n";</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cin.get();</p><p

28、>  cin.get();//密碼錯誤則重新輸入</p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t-------------------------------------------------------------

29、-\n";</p><p>  cout<<"\t☆☆密碼正確,請按回車鍵繼續操作!☆☆ \n";</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>

30、;  system("cls");</p><p><b>  djmian();</b></p><p>  }//密碼正確則跳轉到功能界面</p><p><b>  }</b></p><p><b>  else</b></p><

31、;p><b>  {</b></p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cout<<"\t您輸入的卡號不存在,請按回車鍵后重新選擇!"<<

32、endl;</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cin.get();</p><p>  cin.get();//卡號錯誤重新輸入</p><p><

33、b>  3.4 功能界面</b></p><p>  功能界面主要是接收用戶的數據輸入后跳轉到相應的操作模塊,一共有1到4個選項,分別執行跳轉到存款,取款,查詢和退出模塊。</p><p><b>  cin>>B;</b></p><p>  if(B>0&&B<5)//判斷用戶輸入是

34、否為1到4</p><p><b>  {</b></p><p><b>  switch(B)</b></p><p><b>  {</b></p><p>  case 1:cunkuan();break;</p><p>  case 2:qu

35、kuan();break;</p><p>  case 3:chaxun();break;</p><p>  case 4:tuichu();break;</p><p>  }//跳轉到相應的模塊</p><p><b>  }</b></p><p><b>  else<

36、/b></p><p><b>  {</b></p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cout<<"\t 請輸入正確的選項! 按

37、回車鍵繼續操作! \n";</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cin.get();</p><p>  cin.get();</p>

38、;<p>  system("cls");</p><p>  djmian();//如果不是的話就繼續輸入</p><p><b>  }</b></p><p><b>  3.5 存款</b></p><p>  簡單的把用戶的輸入數據加到從文本讀取的數據并返

39、回結果并輸出到屏幕</p><p><b>  int cun;</b></p><p>  cout<<endl<<"\n☆☆請輸入您要存入的金額:";</p><p><b>  cin>>cun;</b></p><p>  time()

40、;Sleep(3000);</p><p>  zong=zong+cun;</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cout<<"\t

41、 您目前賬戶的余額為:"<<zong<<"元 \n";</p><p>  cout<<"\t 繼續操作請按回車鍵... \n";</p><p>  cout<<"\t---

42、-----------------------------------------------------------\n";</p><p>  cin.get();</p><p>  cin.get();</p><p><b>  3.6 取款</b></p><p>  取款也是簡單的用余額減去用戶輸

43、入的數據后顯示</p><p><b>  int qu;</b></p><p>  cout<<endl<<"\n☆☆請輸入取款金額:";</p><p><b>  cin>>qu;</b></p><p>  time();Sleep(

44、3000);</p><p>  if(qu>zong)</p><p><b>  {</b></p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>

45、;  cout<<"\t 對不起!您的余額不足,請按回車鍵后重新輸入... \n";</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p><b>

46、  qukuan();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  zong=zong-qu;</p><p>  cout<

47、<"\t--------------------------------------------------------------\n";</p><p>  cout<<"\t 您目前賬戶的余額為:"<<zong<<"元 \n";</p>

48、<p>  cout<<"\t 繼續操作請按回車鍵... \n";</p><p>  cout<<"\t--------------------------------------------------------------\n";</p>&

49、lt;p>  cin.get();</p><p>  cin.get();</p><p><b>  3.7 查詢</b></p><p>  這個是最簡單的部分,就是用cout輸出余額即可。</p><p>  cout<<"\t-----------------------------

50、---------------------------------\n";</p><p>  cout<<"\t 您目前賬戶的余額為:"<<zong<<"元 \n";</p><p>  cout<<"\t

51、 繼續操作請按回車鍵... \n";</p><p>  cout<<"\t--------------------------------------------------------------\n";</p><p>  cin.get();</p><p>

52、  cin.get();</p><p><b>  3.8 退出</b></p><p>  這個沒什么,退出即可。</p><p>  time();Sleep(3000);</p><p>  cout<<endl;</p><p>  cout<<"☆☆☆

53、☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n";</p><p>  cout<<"☆☆☆☆☆☆ ☆☆☆☆☆☆\n";</p><p>  cout<<"☆☆☆☆☆☆ 溫馨提示:請記得收好您的

54、銀行卡和錢!歡迎再次使用 ☆☆☆☆☆☆\n";</p><p>  cout<<"☆☆☆☆☆☆ ☆☆☆☆☆☆\n";</p><p>  cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

55、☆☆\n";</p><p><b>  4. 功能測試</b></p><p>  4.1 本系統的主界面</p><p>  1. 高校工資管理系統。本系統的主要功能有:</p><p><b>  1. 用戶登陸</b></p><p><b>  

56、2. 退出系統</b></p><p>  2. 用戶可根據系統提示和用戶需要輸入1—2的操作數字。</p><p>  3.當用戶輸入的選項不符合要求時,系統將驗證并報錯</p><p>  4.選擇登陸輸入賬號如果不正確</p><p>  5.輸入密碼不正確則提示重新輸入</p><p><b&

57、gt;  4.2 界面</b></p><p>  1.輸入正確的密碼后進入功能選擇界面</p><p>  2.如果輸入的不是1或者2則提示重新輸入</p><p>  2.輸入選項1選擇存款功能,并輸入存款金額后顯示余額</p><p>  3.輸入選項2選擇取款金額, </p><p>  此處如果

58、輸入的取款金額小于余額的話,系統將提示重新輸入</p><p>  4.輸入選項3選擇查詢功能</p><p>  5.輸入選項4選擇退出</p><p><b>  5.遇到的問題</b></p><p>  這次設計遇到最大的問題就是輸入流的讀取和賦值問題,讀取只有要怎么一次賦值3個數研究了好久,讀取數據后后要驗證是

59、否與用戶輸入的數據相同也由于自己經驗不足老是在小問題上卡住??偟膩碚f問題是很少的,因為程序本來就很簡單的緣故也沒多少復雜的要求就簡單的處理了。</p><p><b>  6. 課設小結</b></p><p>  這次的設計因為也沒要求是復雜的功能,所以設計相對簡單,整體的都只有一個類,用不同函數構成不同的模塊來實現各項功能,設計中用的最多的就是if和swith語句

60、,嘴復雜的也就是個輸入流函數。而且我意識到這個系統不會返回數據給文本,也就是說只可以單純的用一次,數據無法保存,這讓我覺得不足。</p><p>  經過一個學期的學習和上機實踐,使我對C++語言有了更認識和和了解,要想學好它要重在實踐,要通過不斷的上機操作才能更好的學習它。這次課程設計讓我更加了解C++。課設題目要求不僅要求對課本知識有較深刻的了解,同時要求程序設計者有較強的思維和動手能力和更加了解編程思想和編

61、程技巧。 </p><p>  這次課程設計讓我有一個深刻的體會,那就是細節決定成敗,編程最需要的是嚴謹,如何的嚴謹都不過分,往往檢查了半天發現錯誤發生在某個括號,分號,引號,或者數據類型上。就像我在寫ATM類時,寫完后,忘了在大括號后加個分號,這一點小小的錯誤也耽誤了我幾十分鐘,所以說細節很重要。 </p><p>  程序設計時,也不要怕遇到錯誤,在實際操作過程中犯

62、的一些錯誤還會有意</p><p>  外的收獲,感覺課程設計很有意思。在具體操作中對這學期所學的C++語言的理論知識得到鞏固,達到課程設計的基本目的,也發現自己的不足之出,在以后的上機中應更加注意,同時體會到C++語言具有的語句簡潔,使用靈活,執行效率高等特點。發現上機的重要作用,特別是對數組和循環有了深刻的理解。      </p>&

63、lt;p>  這個程序是我看了書之后遇到問題請教了同學和老師完成的,同時我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發揚團結協作的精神。某個人的離群都可能導致整項工作的失敗。實習中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導致整個工作失敗。團結協作是我們成功的一項非常重要的保證。而這次課程設計也正好鍛煉我們這一點,這也是非常寶貴的 </p>&l

溫馨提示

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

評論

0/150

提交評論