c++剪刀石頭布游戲課程設計_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  計算機科學與技術學院</p><p>  《C++高級語言程序設計課程設計》報告</p><p> ?。?016/2017學年 第一學期)</p><p>  學生姓名: </p><p>  學生班級: 軟件工程 </p><p>  學生學

2、號: </p><p>  指導教師: </p><p>  2016年12月20日</p><p><b>  課程設計任務書</b></p><p><b>  目 錄</b></p><p>  設計問題描述與需求分析待定&l

3、t;/p><p>  數據結構與算法設計4</p><p>  程序設計編碼與測試5</p><p> ?。?)設計過程總結與體會13</p><p><b>  程序源代碼:</b></p><p>  #include<iostream></p>

4、;<p>  using namespace std;</p><p>  enum c_h_s{cloth,hammer,scissors,game,help,instructions,quit};</p><p>  class Game //構造類</p><p><b>  {</b></p>&l

5、t;p><b>  public:</b></p><p><b>  Game();</b></p><p>  enum c_h_s select();</p><p>  enum c_h_s mach();</p><p>  void instruct();</p>&

6、lt;p>  int won(enum c_h_s,enum c_h_s);</p><p>  void gamee(int,int,int);</p><p>  void helpp(); </p><p>  void solution();</p><p><b>  private:</b><

7、/p><p><b>  int win;</b></p><p>  int lose;</p><p><b>  int tie;</b></p><p>  enum c_h_s player;</p><p>  enum c_h_s machine;</p

8、><p><b>  };</b></p><p>  *****************成員函數定義模塊define.cpp************************</p><p>  #include<iostream></p><p>  using namespace std;</p>

9、<p>  Game::Game() //初始化數據成員</p><p><b>  {</b></p><p><b>  win=0;</b></p><p><b>  lose=0;</b></p><p><b>  tie=0;</b

10、></p><p><b>  }</b></p><p>  void Game::instruct()</p><p><b>  {</b></p><p>  cout<<endl;</p><p>  cout<<"&q

11、uot;<<"**** 剪刀 錘子 布 **** "<<endl;</p><p>  cout<<"在這個游戲中"<<endl;</p><p>  cout<<"c 表示布"<<endl;</p><p>  cout&

12、lt;<"h 表示錘子"<<endl;</p><p>  cout<<"s 表示剪刀."<<endl;</p><p>  cout<<"游戲者和機器都只選擇 c,h,s中的一個.如果二者的選擇相同"<<endl;</p><p>  co

13、ut<<"那么這一局就是平局.此外:"<<endl;</p><p>  cout<<"\"布包錘子\"(布獲勝)."<<endl;</p><p>  cout<<"\"錘子打爛剪刀\"(錘子獲勝)."<<endl;&

14、lt;/p><p>  cout<<"\"剪刀剪布\"(剪刀獲勝)."<<endl;</p><p>  cout<<endl;</p><p>  cout<<"還有其它的選擇是:"<<endl;</p><p>  cout

15、<<"g 表示游戲的結果(至今獲勝的次數)"<<endl;</p><p>  cout<<"p 可獲得幫助"<<endl;</p><p>  cout<<"i 可獲得游戲方法的指導信息"<<endl;</p><p>  cout&

16、lt;<"q 表示退出游戲."<<endl;</p><p>  cout<<"這個游戲一直重復到游戲者選擇 q 為止."<<endl;</p><p>  cout<<"祝你好運!"<<endl; //游戲結束</p><p><

17、b>  }</b></p><p>  enum c_h_s Game::select()</p><p><b>  {</b></p><p><b>  char c;</b></p><p>  enum c_h_s p;</p><p>  co

18、ut<<endl;</p><p>  cout<<"請選擇 c,h,或s:";//提示用戶輸入字符</p><p>  while((c=getchar())==' '||c=='\n'||c=='\t');</p><p>  switch(c) {</p>

19、<p><b>  case 'c':</b></p><p><b>  p=cloth;</b></p><p><b>  break;</b></p><p>  case 'h': p=hammer;</p><p>&l

20、t;b>  break;</b></p><p>  case 's': p=scissors;</p><p><b>  break;</b></p><p>  case 'g': p=game;</p><p><b>  break;</b>

21、;</p><p>  case 'i': p=instructions;</p><p><b>  break;</b></p><p>  case 'q': p=quit;</p><p><b>  break;</b></p><p&g

22、t;  default: p=help;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  return(p);</p><p><b>  }</b></p><p>  enum c_h_

23、s Game::mach()</p><p><b>  {</b></p><p>  static int i;</p><p><b>  i=++i%3;</b></p><p>  return((i==0)?cloth:((i==1)?hammer:scissors));</p&

24、gt;<p><b>  }</b></p><p>  void Game::gamee(int win,int lose,int tie)</p><p><b>  {</b></p><p>  cout<<endl;</p><p>  cout<<&

25、quot;游戲結果如下:";</p><p>  cout<<endl;</p><p>  cout.width(7);</p><p>  cout<<"你獲勝的次數是:"<<win<<endl;</p><p>  cout.width(7);<

26、/p><p>  cout<<"我獲勝的次數是:"<<lose<<endl;</p><p>  cout.width(7);</p><p>  cout<<"平局的次數為: "<<tie<<endl;</p><p>  

27、cout.width(7);</p><p>  cout<<"游戲的總次數是:"<<win+lose+tie<<endl;</p><p><b>  }</b></p><p>  void Game::helpp()</p><p><b>  

28、{</b></p><p>  cout<<endl;</p><p>  cout<<"你可以輸入下列的字符:"<<endl;</p><p>  cout<<"c 表示布"<<endl;</p><p>  cout&l

29、t;<"h 表示錘子"<<endl;</p><p>  cout<<"s 表示剪刀"<<endl;</p><p>  cout<<"g 查看游戲結果"<<endl;</p><p>  cout<<"

30、p 打印出這些信息"<<endl;</p><p>  cout<<"i 重新打印出游戲指導信息"<<endl;</p><p>  cout<<"q 退出游戲"<<endl;</p><p><b>  }</b></p

31、><p>  int Game::won(enum c_h_s player,enum c_h_s machine)</p><p><b>  {</b></p><p>  int victory;</p><p>  if(player==cloth)</p><p>  victory=mac

32、hine==hammer;</p><p>  else if(player==hammer)</p><p>  victory=machine==scissors;</p><p>  else victory=machine==cloth;</p><p>  return(victory);</p><p>&

33、lt;b>  }</b></p><p>  void Game::solution()</p><p><b>  {</b></p><p>  instruct();</p><p>  while((player=select())!=quit)</p><p>  sw

34、itch(player)</p><p><b>  {</b></p><p>  case cloth:</p><p>  case hammer:</p><p>  case scissors:</p><p>  machine=mach();</p><p>

35、  if(player==machine) </p><p><b>  {</b></p><p><b>  ++tie;</b></p><p>  cout<<endl;</p><p>  cout<<"平局";</p><p

36、><b>  }</b></p><p>  else if(won(player,machine))</p><p><b>  {</b></p><p><b>  ++win;</b></p><p>  cout<<endl;</p>

37、<p>  cout<<"你獲勝";</p><p><b>  }</b></p><p><b>  else {</b></p><p><b>  ++lose;</b></p><p>  cout<<endl;&

38、lt;/p><p>  cout<<"我獲勝";</p><p><b>  }</b></p><p>  case game:</p><p>  gamee(win,lose,tie);</p><p><b>  break;</b><

39、;/p><p>  case instructions:</p><p>  instruct();</p><p><b>  break;</b></p><p>  case help:</p><p><b>  helpp();</b></p><p

40、><b>  break;</b></p><p><b>  }</b></p><p>  gamee(win,lose,tie);</p><p>  cout<<endl;</p><p>  cout<<endl;</p><p>  

41、cout<<"BYE!"<<endl;</p><p><b>  }</b></p><p>  ********************主函數定義模塊main.cpp**************************</p><p>  #include<iostream><

42、/p><p>  using namespace std;</p><p>  int main()</p><p><b>  {</b></p><p><b>  Game g;</b></p><p>  g.solution();</p><p>

43、;  return 0;</p><p><b>  }</b></p><p><b>  運行結果:</b></p><p><b>  1、未輸入任何命令</b></p><p><b>  輸入命令 c</b></p><p&

44、gt;<b>  3、輸入命令s</b></p><p>  4、輸入命令q,結束游戲。</p><p><b>  設計過程</b></p><p>  本次設計主要參考了網上搜索的資料,但搜索的資料并不符合課程設計要求,所以就要求我們運用我們所學知識按照課程設計要求改進,生成C++面向對象的程序文件。</p>

45、;<p>  首先,我根據網上的資料,把程序的流程圖畫出來。把程序分成若干的功能塊。每個功能塊能實現不通的功能,各功能塊之間能夠相互的調用。功能塊之間的合理組合實現了整個游戲的功能。然后再定義各個功能塊的作用,再根據作用用C++語言實現其功能。并編譯與鏈接各功能塊,各功能塊編譯與鏈接正確后再把它們鏈接成一個工程。</p><p>  本次設計中構造了一個Game類,將實現游戲的一些過程函數封裝成類的

46、函數,將在游戲里面需要的變量變成C++程序里面的數據成員。然后分塊將各個功能實現。</p><p>  本次設計的評價與收獲</p><p>  三周的課程設計結束了,在這次的課程設計中不僅檢驗了我所學習的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設計過程中,與同學分工設計,和同學們相互探討,相互學習,相互監(jiān)督。學會了合作,學會了運籌帷幄,學會了寬容,學會

47、了理解,也學會了做人與處世。</p><p>  課程設計是我們專業(yè)課程知識綜合應用的實踐訓練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程.”千里之行始于足下”,通過這次課程設計,我深深體會到這句千古名言的真正含義.我今天認真的進行課程設計,學會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎.</p><p>  提高了計算能力,,熟悉了規(guī)范和標準,同時各科相關

溫馨提示

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

評論

0/150

提交評論