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

下載本文檔

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

文檔簡介

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

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

3、t;/p><p>  數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計4</p><p>  程序設(shè)計編碼與測試5</p><p> ?。?)設(shè)計過程總結(jié)與體會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 //構(gòu)造類</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>  *****************成員函數(shù)定義模塊define.cpp************************</p><p>  #include<iostream></p><p>  using namespace std;</p>

9、<p>  Game::Game() //初始化數(shù)據(jù)成員</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<<"游戲者和機(jī)器都只選擇 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 表示游戲的結(jié)果(至今獲勝的次數(shù))"<<endl;</p><p>  cout<<"p 可獲得幫助"<<endl;</p><p>  cout<<"i 可獲得游戲方法的指導(dǎo)信息"<<endl;</p><p>  cout&

16、lt;<"q 表示退出游戲."<<endl;</p><p>  cout<<"這個游戲一直重復(fù)到游戲者選擇 q 為止."<<endl;</p><p>  cout<<"祝你好運!"<<endl; //游戲結(jié)束</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;游戲結(jié)果如下:";</p><p>  cout<<endl;</p><p>  cout.width(7);</p><p>  cout<<"你獲勝的次數(shù)是:"<<win<<endl;</p><p>  cout.width(7);<

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

27、cout.width(7);</p><p>  cout<<"游戲的總次數(shù)是:"<<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 查看游戲結(jié)果"<<endl;</p><p>  cout<<"

30、p 打印出這些信息"<<endl;</p><p>  cout<<"i 重新打印出游戲指導(dǎo)信息"<<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>  ********************主函數(shù)定義模塊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>  運行結(jié)果:</b></p><p><b>  1、未輸入任何命令</b></p><p><b>  輸入命令 c</b></p><p&

44、gt;<b>  3、輸入命令s</b></p><p>  4、輸入命令q,結(jié)束游戲。</p><p><b>  設(shè)計過程</b></p><p>  本次設(shè)計主要參考了網(wǎng)上搜索的資料,但搜索的資料并不符合課程設(shè)計要求,所以就要求我們運用我們所學(xué)知識按照課程設(shè)計要求改進(jìn),生成C++面向?qū)ο蟮某绦蛭募?lt;/p>

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

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

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論