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

下載本文檔

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

文檔簡介

1、<p>  VC++課程設(shè)計(jì)報告</p><p><b>  ——猜單詞游戲</b></p><p>  VC++課程設(shè)計(jì)報告</p><p><b>  功能:</b></p><p>  課程設(shè)計(jì)題目的功能:</p><p>  一個猜單詞游戲。兩人游戲時,由一

2、個玩家給出一個單詞,在人與計(jì)算機(jī)游戲時,由計(jì)算機(jī)給出一個單詞,另一個玩家根據(jù)組成單詞的字母個數(shù)猜出單詞,猜的次數(shù)可以指定,若猜不中,顯示一個上吊的人形。</p><p>  將猜單詞的函數(shù)與相應(yīng)的數(shù)據(jù)封裝到類中,并改寫主程序,使程序簡化。</p><p>  根據(jù)所猜單詞的字母個數(shù),給出指定幾率的提示字母,顯示于單詞中的正確位置。</p><p>  在進(jìn)入猜單詞的

3、過程后,首先顯示菜單詢問是開始猜單詞還是修改設(shè)置,默認(rèn)的修改次數(shù)為4,默認(rèn)顯示字符的幾率為20%,若要修改這個設(shè)置,在顯示菜單中選擇設(shè)置選項(xiàng)進(jìn)行修改。</p><p>  在人人對抗時,一個玩家給出單詞時,單詞不顯示在屏幕上,字符用“*”顯示。</p><p>  猜單詞時,輸入一個單詞,判斷函數(shù)改為判斷輸入單詞的字符是否與所猜單詞一一對應(yīng),將猜中的字符顯示出來。</p>&

4、lt;p>  在人機(jī)對抗時,可以隨機(jī)讀取單詞,也可以選擇向單詞庫輸入單詞,同時,將單詞庫中單詞的個數(shù)顯示出來,并根據(jù)單詞庫中單詞個數(shù)的多少決定隨機(jī)選取的范圍。</p><p>  程序設(shè)計(jì)的思想和方法</p><p><b>  類的封裝</b></p><p>  畫上吊人形的類已經(jīng)封裝起來,這部分程序基本不用改了,主要是對人人對抗和人

5、及對抗操作部分類的封裝。可以定義一個類的兩個對象,也可以定義為一個基本類和一個派生類的對象,成員函數(shù)可根據(jù)對象的不同分別調(diào)用,數(shù)據(jù)結(jié)構(gòu)如下:</p><p>  Class CGuess</p><p><b>  {</b></p><p><b>  private:</b></p><p> 

6、 string Word; //欲猜的單詞</p><p>  double Proba; //顯示字符的概率0—1</p><p>  int GuessNum;//總共可猜的次數(shù)</p><p>  int WrongNum;//猜錯的次數(shù)</p><p>  string DisplayWord;//欲顯示的單詞</p>

7、<p>  string GuessWord;//第二個玩家輸入猜想的單詞</p><p>  int nLen;//輸入單詞的長度</p><p><b>  public:</b></p><p>  CGuess();//構(gòu)造函數(shù)</p><p>  void InitialSet();//修改設(shè)置值&

8、lt;/p><p>  void InputWord();//輸入單詞并初始化成員函數(shù)</p><p>  void InputGuess();//接收用戶所猜的單詞</p><p>  int Judge();//判斷是否猜中,猜中返回0,猜不中返回1或-(death)</p><p>  int ShowDisplay();//顯示單詞及上吊

9、人形,程序結(jié)束返回1</p><p>  int OpenWordFile();//打開單詞庫,隨機(jī)取出一個單詞賦給Word,成功返回1</p><p>  int SaveWordFile();//向單詞庫輸入新單詞,正確返回1</p><p><b>  程序主體結(jié)構(gòu)的設(shè)置</b></p><p>  該設(shè)置基本上全

10、部修改了原程序的結(jié)構(gòu),在main函數(shù)中分別定義人人對抗和人機(jī)對抗的對象。在鍵入對應(yīng)的菜單選項(xiàng)后,進(jìn)入操作函數(shù),操作函數(shù)的參數(shù)即是對應(yīng)對象的引用。同樣,若有下級菜單的函數(shù)一樣用該對象的引用參數(shù),這樣,可保證對象的唯一性。</p><p><b>  主菜單:</b></p><p>  人人對抗(以人人對抗對象的引用作為參數(shù)調(diào)用子程序)</p><p

11、>  人機(jī)對抗(以人機(jī)對抗對象的引用作為參數(shù)調(diào)用子程序)</p><p><b>  人人對抗菜單</b></p><p><b>  開始猜單詞</b></p><p>  設(shè)置系統(tǒng)(即設(shè)置顯示字符的概率和允許猜錯的次數(shù))</p><p><b>  退出</b><

12、;/p><p><b>  人機(jī)對抗</b></p><p><b>  開始猜單詞</b></p><p>  設(shè)置系統(tǒng)(即設(shè)置顯示字符的概率和允許猜錯的次數(shù))</p><p><b>  向單詞庫中添加單詞</b></p><p><b>  

13、退出</b></p><p>  人人對抗時輸入欲猜單詞的隱藏</p><p>  一個玩家給出單詞時,單詞不顯示在屏幕上,字符用“*”號顯示。本程序在基礎(chǔ)上還要有些限制條件,就是接收的字符必須是字母,當(dāng)字幕為大寫時還要轉(zhuǎn)化為小寫。如果輸入的不是字母要提示重新輸入。</p><p>  C++用于處理字符串變量的新的數(shù)據(jù)類型——字符串類型(string類

14、型)</p><p>  在原程序字符串的操作中用了一種新的數(shù)據(jù)類型——String,該類型是一個字符串類,可以定義對象。它在使用方法上和char,int類型一樣,可以用來定義字符串變量,即用一個名字代表一個字符序列。</p><p><b>  程序設(shè)計(jì)的特點(diǎn)</b></p><p>  增設(shè)了單詞庫,并且輸入50個單詞,以便使用。</

15、p><p>  人人對抗和人機(jī)對抗時顯示是否有重復(fù)字母</p><p>  課程設(shè)計(jì)的詳細(xì)設(shè)計(jì):</p><p>  程序主體結(jié)構(gòu)圖如下:</p><p><b>  程序詳細(xì)結(jié)構(gòu):</b></p><p><b>  1.主菜單程序:</b></p><p

16、>  void CGuess::GetChoice(){</p><p>  cout<<endl<<endl<<endl;</p><p>  cout << " 猜單詞游戲 " << endl << endl;</p&

17、gt;<p>  cout <<" 制作者:劉健瑩 " << endl << endl;</p><p>  cout << "***********************************************************&quo

18、t; << endl;</p><p>  cout << endl;</p><p>  cout << " 按1 人人對抗模式" << endl;</p><p>  cout << " 按2 人機(jī)對抗模式"

19、 << endl;</p><p>  cout << " 按3 退出" << endl;</p><p>  cout << endl;</p><p>  cout << "***********************************

20、************************" << endl << endl;</p><p>  cout<<" 請您選擇: ";</p><p>  cin>>Choice;// 得到用戶選擇</p><p>  while (!c

21、in||Choice <1 || Choice >3)// 簡查是否無效</p><p><b>  {</b></p><p>  cout << " 無效輸入" << endl</p><p>  << "

22、 請?jiān)佥斎? ";</p><p>  Flush(cin);</p><p>  cin>>Choice;</p><p>  }// 完成簡查, 得到有效輸入,m_Choice變量的值被修改,清屏</p><p>  system("cls");</p><p

23、><b>  }</b></p><p><b>  2.子菜單程序:</b></p><p>  int CGuess::InitialSet()</p><p><b>  {</b></p><p>  int exit=0;</p><p>

24、;  if(Choice==1)</p><p><b>  {</b></p><p>  cout<<" 人人對抗"<<endl;</p><p>  cout << "**************************

25、*********************************" << endl;</p><p>  cout<<"按1開始玩游戲"<<endl;</p><p>  cout<<"按2修改設(shè)置值"<<endl;</p><p>  cout<&

26、lt;"按3退出"<<endl;</p><p>  cout<<endl;</p><p>  cout<<"*************************************************************"<<endl;</p><p>  cout

27、<<" 你的選擇:"<<endl<<endl;</p><p>  cin>>Choice2;}</p><p><b>  else</b></p><p><b>  {</b></p><p&

28、gt;  cout<<" 人機(jī)對抗"<<endl;</p><p>  cout << "***********************************************************" << endl;</p><p> 

29、 cout<<"按1開始玩游戲"<<endl;</p><p>  cout<<"按2修改設(shè)置值"<<endl;</p><p>  cout<<"按3向單詞庫輸入單詞"<<endl;</p><p>  cout<<&qu

30、ot;按4退出"<<endl;</p><p>  cout<<endl;</p><p>  cout << "***********************************************************" << endl;</p><p>  cout<

31、<" 你的選擇:"<<endl<<endl;</p><p>  cin>>Choice2;</p><p><b>  }</b></p><p>  while(!cin||Choice2 < 1 || Choice2 > 4)&l

32、t;/p><p><b>  {</b></p><p>  cout<< " 無效輸入" << endl</p><p>  << " 請?jiān)佥斎? ";</p><p>  Flush(

33、cin);</p><p>  cin>>Choice2;</p><p><b>  }</b></p><p>  system("cls");</p><p>  if(Choice2==1) cout<<GuessNum<<endl;</p>

34、<p>  if(Choice2==2){</p><p>  cout<<" 你要幾次猜詞機(jī)會(4 - 10): ";</p><p>  cin>>GuessNum;//輸入猜詞次數(shù)</p><p>  while (!cin||G

35、uessNum < 4 || GuessNum > 10)</p><p><b>  {</b></p><p>  cout << " 無效輸入" << endl</p><p>  << "

36、 請?jiān)佥斎? 你要幾次猜詞機(jī)會(4 - 10): ";</p><p>  Flush(cin);</p><p>  cin >>GuessNum;</p><p><b>  }</b></p><p><b>  }</b></p><p

37、>  while(!cin||Choice2 < 1 || Choice2 > 4)</p><p><b>  {</b></p><p>  cout<< " 無效輸入" << endl</p><p>  << "

38、 請?jiān)佥斎? ";</p><p>  Flush(cin);</p><p>  cin>>Choice2;</p><p><b>  }</b></p><p>  system("cls");</p><p>  if(Choi

39、ce2==1) cout<<Proba<<endl;</p><p>  if(Choice2==2){</p><p>  cout<<" 你要百分之幾的字母顯示出來(10 - 80): ";</p><p>  cin>>Proba;

40、//輸入顯示字母百分?jǐn)?shù)</p><p>  while (!cin||Proba < 10 || Proba > 80)</p><p><b>  {</b></p><p>  cout << " 無效輸入" << endl</p

41、><p>  << " 請?jiān)佥斎? 你要百分之幾的字母顯示出來(10 - 80): ";</p><p>  Flush(cin);</p><p>  cin >>Proba;</p><p><b>  }</b></p><p&g

42、t;<b>  }</b></p><p>  if(Choice2==3)</p><p><b>  {</b></p><p>  if(Choice==1)</p><p><b>  {</b></p><p><b>  exit=

43、1;</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  SaveWordFile();</p><p>  InitialSet();&

44、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  if(Choice2==4)</p><p><b>  {</b></p><p><b>  exit=1;</b></p

45、><p><b>  }</b></p><p>  return exit;</p><p>  }3.修改默認(rèn)設(shè)置程序:</p><p>  if(Choice2==1) cout<<GuessNum<<endl;</p><p>  if(Choice2==2){<

46、;/p><p>  cout<<" 你要幾次猜詞機(jī)會(4 - 10): ";</p><p>  cin>>GuessNum;//輸入猜詞次數(shù)</p><p>  while (!cin||GuessNum < 4 || GuessNum &g

47、t; 10)</p><p><b>  {</b></p><p>  cout << " 無效輸入" << endl</p><p>  << " 請?jiān)佥斎? 你要幾次猜詞機(jī)會(4 - 10

48、): ";</p><p>  Flush(cin);</p><p>  cin >>GuessNum;</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(!cin||Choice2 <

49、; 1 || Choice2 > 4)</p><p><b>  {</b></p><p>  cout<< " 無效輸入" << endl</p><p>  << " 請?jiān)佥斎? ";</

50、p><p>  Flush(cin);</p><p>  cin>>Choice2;</p><p><b>  }</b></p><p>  system("cls");</p><p>  if(Choice2==1) cout<<Proba<

51、<endl;</p><p>  if(Choice2==2){</p><p>  cout<<" 你要百分之幾的字母顯示出來(10 - 80): ";</p><p>  cin>>Proba;//輸入顯示字母百分?jǐn)?shù)</p><

52、;p>  while (!cin||Proba < 10 || Proba > 80)</p><p><b>  {</b></p><p>  cout << " 無效輸入" << endl</p><p>  << &qu

53、ot; 請?jiān)佥斎? 你要百分之幾的字母顯示出來(10 - 80): ";</p><p>  Flush(cin);</p><p>  cin >>Proba;</p><p><b>  }</b></p><p>  4.默認(rèn)的游戲設(shè)置程序:</p>

54、<p>  Proba=20;//顯示單詞字母個數(shù)百分比</p><p>  GuessNum=4;//玩家猜詞的機(jī)會</p><p>  5.將單詞輸入進(jìn)單詞庫中的函數(shù):</p><p>  void GuessGame::saveWordFile()</p><p><b>  {</b></

55、p><p>  int n=50,i,j;</p><p>  ofstream out;</p><p>  out.open("words.txt");</p><p><b>  if(!out) </b></p><p><b>  {</b><

56、;/p><p>  cout<<"不能打開單詞庫"<<endl;</p><p><b>  }</b></p><p>  cout<<"單詞庫中有50個單詞"<<endl;</p><p>  cout<<"向單

57、詞庫中輸入多少個單詞"<<endl;</p><p><b>  cin>>j;</b></p><p>  cout<<"請向單詞庫中輸入"<<j<<"個單詞"<<endl;</p><p>  for ( i = 0;

58、i < j; i++)</p><p>  {string word; // 輸入單詞</p><p>  getline(cin,word);</p><p><b>  n=n+1; </b></p><p>  out<< word;</p><p>  cout&

59、lt;<"單詞庫中有"<<n<<"個單詞"<<endl;</p><p><b>  }</b></p><p>  out.close();</p><p><b>  }</b></p><p>  6.顯示猜對的

60、單詞:</p><p>  void GuessGame::test(string word, char letter, int& numwrong, string& temp)</p><p><b>  {</b></p><p>  static int m;</p><p>  int check

61、2 = 0;// 判斷輸入的字符是否為組成單詞的字符,正確為1</p><p>  if (letter == word.at(m)) //若單詞中有這一個字符</p><p><b>  {</b></p><p>  temp.replace(m, 1, 1, letter);</p><p>  check2

62、 = 1;</p><p><b>  }</b></p><p>  if (check2 == 0) //若單詞中沒有這一個字符</p><p><b>  {</b></p><p>  cout << endl;</p><p>  c

63、out << "Wrong letter" << endl;</p><p>  system("pause");</p><p>  numwrong++;</p><p><b>  }</b></p><p>  if(m<(word.lengt

64、h()-1)){m++;}</p><p><b>  else m=0;</b></p><p><b>  }</b></p><p>  7.輸出給定幾率的字母:</p><p>  for (i = word.length() * Proba; i < word.length();

65、i++)</p><p><b>  {</b></p><p>  temp.replace(i, 1, 1,'*'); </p><p><b>  }</b></p><p>  8.游戲程序主體運(yùn)行:</p><p>  int CGuess::Run

66、(){</p><p>  int exit = 0;//主循環(huán)是否退出的變量,1時退出</p><p>  do {//主循環(huán)</p><p>  system("cls");// 執(zhí)行系統(tǒng)命令清屏</p><p>  GetChoice();// 給出說明并得到選擇</p>

67、;<p>  switch(Choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  Game();// 與人對戰(zhàn)</p><p><b>  break;</b></p>&

68、lt;p><b>  case 2: </b></p><p>  Game();// 與電腦對戰(zhàn)</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  cout << "

69、 再見" << endl<<endl;// 退出</p><p><b>  exit = 1;</b></p><p><b>  break;</b></p><p><b>  default:</b></p><

70、;p>  cout << " 無效輸入 - 請?jiān)佥斎?quot; << endl; // 無效輸入</p><p><b>  }</b></p><p>  } while (exit != 1);//退出主循環(huán)</p><p>  system("pau

71、se");// 執(zhí)行系統(tǒng)命令:暫停</p><p><b>  return 0;</b></p><p>  }9.在人人對抗時,一個玩家給出單詞時,單詞不顯示在屏幕上,字符用“*”號顯示。</p><p>  #define N 13 //為任意一個字符(包括空白字符)的ASC||碼值</p><p

72、>  void CGuess::password()</p><p><b>  { </b></p><p>  char str[20];</p><p><b>  char ch;</b></p><p>  int i=0,a=0,j=0;</p><p

73、>  string word,Word,worD;</p><p>  cout<<"請第二位玩家輸入單詞: "<<endl;</p><p>  cout.flush(); //請輸出緩沖區(qū)</p><p>  ch=getch();</p><p>  while(ch!=

74、13)</p><p><b>  {</b></p><p>  str[i]=ch;</p><p>  if(str[i]>=97&&str[i]<=122)</p><p><b>  {</b></p><p>  cout<<

75、;'*';j++;</p><p>  cout.flush();</p><p>  ch=getch();</p><p><b>  }</b></p><p>  else if(str[i]>=65&&str[i]<=90)</p><p>&

76、lt;b>  {</b></p><p>  str[i]=str[i]+32;j++;</p><p>  cout<<'*';</p><p>  cout.flush();</p><p>  ch=getch();</p><p><b>  }</

77、b></p><p>  else if(str[i]<=65||(str[i]>=90&&str[i]<=97)||str[i]>=112)</p><p><b>  {</b></p><p>  cout<<"*";</p><p> 

78、 cout.flush();</p><p>  ch=getch();</p><p><b>  }</b></p><p><b>  i++;</b></p><p>  }a=j;for(i=0;i<a;i++)</p><p><b>  {<

79、;/b></p><p>  word.replace(i, 1, 1, str[i]);</p><p><b>  }</b></p><p>  Word=word;word=worD;</p><p>  int wordcheck;</p><p>  do {// 檢查用

80、戶輸入單詞是否有誤</p><p>  wordcheck = 0;</p><p>  for (int i = 0; i <Word.length(); i++)</p><p>  if (!isalpha(Word.at(i)))//isalpha();word.at();</p><p><b>  {&

81、lt;/b></p><p>  wordcheck = 1;</p><p><b>  }</b></p><p>  if (wordcheck == 1){</p><p>  cout << " 無效 - 請第二位玩家重新輸入: "

82、;</p><p>  password();Word=word;word=worD;</p><p><b>  }</b></p><p>  } while (wordcheck == 1);</p><p><b>  w=ch;</b></p><p><b&

83、gt;  }</b></p><p>  int CGuess::UserWord()</p><p><b>  { </b></p><p>  cout<<" 人人對戰(zhàn)"<<endl;</p>&l

84、t;p>  cout<< " ---------------------------------------" << endl << endl;</p><p>  cout<<" 猜詞機(jī)會:"<<GuessNum<<

85、endl;</p><p>  cout<<" 顯示字母:"<<Proba<<'%'<<endl;</p><p>  password();</p><p>  Length=Word.length();</p><

86、p><b>  return 1;</b></p><p><b>  }</b></p><p>  10.主體的類的定義</p><p>  class CGuess{</p><p><b>  private:</b></p><p>  

87、string Word,word,worD;//要猜的單詞</p><p>  string DisplayWord;//用戶所見的單詞</p><p>  char*pWord1;</p><p>  char*pWord2;</p><p>  int Proba;//顯示單詞字母個數(shù)百分比</p>&l

88、t;p>  int GuessNum;//玩家猜詞的機(jī)會</p><p>  int WrongNum;//玩家猜錯的次數(shù)</p><p>  intChosenCounter;//玩家猜過的字母個數(shù)</p><p>  stringLetterChosen;//玩家已經(jīng)猜過的字母</p><p>  intChoi

89、ce;//玩家的選擇</p><p>  intShowNum;//顯示字母個數(shù)</p><p>  int Length;//所猜單詞的長度</p><p>  intLetterNum;//單詞中的字母個數(shù)</p><p>  inti;//循環(huán)的記數(shù)變量,使每次游戲都不一樣</p><p&g

90、t;  intCheck;//用戶輸入字母是否正確</p><p>  int Choice2;</p><p><b>  int w;</b></p><p><b>  public:</b></p><p><b>  CGuess();</b></p>

91、;<p>  intInitialSet();</p><p>  intSaveWordFile();</p><p>  intUserWord();//玩家出詞</p><p>  intRndWord();//電腦出詞</p><p>  voidReplaceWord();</p&g

92、t;<p>  voidisChosen(char);</p><p>  voidJudge(char);</p><p>  intRun();//運(yùn)行</p><p>  voidGetChoice();//得到選擇</p><p>  voidGame();//游戲主要函數(shù)<

93、;/p><p>  void Set(); //設(shè)置</p><p>  void password();</p><p><b>  };</b></p><p><b>  調(diào)試程序的過程:</b></p><p>  主函數(shù)若

94、出現(xiàn)在前面,應(yīng)將其他函數(shù)先定義,或?qū)⒅骱瘮?shù)后置。</p><p>  在程序開頭須將所用函數(shù)的文件包含,否則函數(shù)不得使用。</p><p>  人人對抗時,輸入單詞未顯示*,應(yīng)先設(shè)置顯示部分,然后輸入單詞。</p><p>  當(dāng)使用getch()時,應(yīng)先加頭文件conic.h,否則無法使用。</p><p>  人機(jī)對抗程序會出現(xiàn)不出現(xiàn)單詞

95、,直接顯示猜詞正確,隨機(jī)函數(shù)rand()應(yīng)除50求余。</p><p>  保密部分無法識別大小寫,用ASCII碼將大寫字母轉(zhuǎn)化為小寫字母。</p><p>  人人對抗過程中輸入單詞,輸出*,但是無論退格還是回車都輸出*,在保密函數(shù)中沒有設(shè)置輸入回車或空格就跳出函數(shù)的部分。</p><p>  運(yùn)用保密函數(shù)時出現(xiàn)輸出無效輸入。</p><p&g

96、t;  人人對抗中輸入單詞后顯示*,但是單詞沒有返回原程序,造成沒有猜單詞的過程,只有最后結(jié)果“恭喜你,猜對了!”</p><p>  人機(jī)對抗無法找到words..txt文件,需要先將words文檔轉(zhuǎn)化為文件格式,才能應(yīng)用。</p><p><b>  輸入輸出數(shù)據(jù):</b></p><p>  以人人對抗模式輸入love為例:</p&

97、gt;<p>  1.運(yùn)行程序,出現(xiàn)主菜單,輸入1</p><p>  2,.出現(xiàn)人人對抗模式菜單欄,輸入2</p><p><b>  3.修改默認(rèn)設(shè)置</b></p><p>  4.第二個玩家輸入單詞love</p><p><b>  5.出現(xiàn)猜單詞程序</b></p&g

98、t;<p><b>  6.輸出上吊人形</b></p><p><b>  7.出現(xiàn)正確答案</b></p><p><b>  附:猜單詞過程:</b></p><p><b>  正確輸入</b></p><p><b>  

99、錯誤輸入</b></p><p>  向單詞庫中輸入單詞:</p><p><b>  課程設(shè)計(jì)總結(jié):</b></p><p>  通過這次課程設(shè)計(jì),我懂得了如何將所學(xué)的知識運(yùn)用起來,與實(shí)際相結(jié)合,也讓我能夠在以后的學(xué)習(xí)中能夠想有所學(xué),學(xué)有所用,多多聯(lián)系實(shí)際,用知識幫助他人。課程設(shè)計(jì)中,我掌握了類的定義和調(diào)用,數(shù)組的運(yùn)用,菜單欄的設(shè)

100、置等等,同時,程序設(shè)計(jì)過程中,懂得了如何將不會的知識學(xué)會,如何將會的知識靈活熟練地應(yīng)用,也懂得了以后的學(xué)習(xí)也要勤動腦思考,把知識轉(zhuǎn)化為自己的,提高了自己的創(chuàng)新能力,動手能力,思考能力,為我今后的學(xué)習(xí)打下良好的基礎(chǔ)。</p><p>  6. 程序源代碼附錄</p><p>  #include <iostream>// 標(biāo)準(zhǔn)輸入輸出[cin;cout]</p&g

101、t;<p>  #include <string>// 字符串處理[string.length();at();]</p><p>  #include <cctype>// 字符處理和檢測</p><p>  #include <fstream>// 文件流</p><p>  #includ

102、e <cstdlib>// 使用隨機(jī)函數(shù)用</p><p>  #include <time.h>// 得到更好的隨機(jī)數(shù)用</p><p>  #include <conio.h></p><p>  // draw類定義</p><p>  #ifndef DRAW_H// 檢測是否已

103、經(jīng)包含</p><p>  #define DRAW_H</p><p>  class draw</p><p><b>  {</b></p><p><b>  public:</b></p><p>  draw();// 構(gòu)造函數(shù)</p><

104、p><b>  // 成員函數(shù) </b></p><p>  void rope(); // 繩子</p><p>  void head();// 頭</p><p>  void neck();// 頸</p><p>  void leftarm();// 左臂 </p><

105、;p>  void rightarm();// 右臂</p><p>  void waisttop();// 腰</p><p>  void leftleg(); // 左腿</p><p>  void rightleg();// 右腿</p><p><b>  }; </b><

106、/p><p><b>  #endif</b></p><p>  #ifndef GUESS_H</p><p>  #defineGUESS_H</p><p>  using namespace std;</p><p><b>  //程序類定義</b></p&g

107、t;<p>  class CGuess{</p><p><b>  private:</b></p><p>  string Word,word,worD;//要猜的單詞</p><p>  string DisplayWord;//用戶所見的單詞</p><p>  char*pWord

108、1;</p><p>  char*pWord2;</p><p>  int Proba;//顯示單詞字母個數(shù)百分比</p><p>  int GuessNum;//玩家猜詞的機(jī)會</p><p>  int WrongNum;//玩家猜錯的次數(shù)</p><p>  intChosenCoun

109、ter;//玩家猜過的字母個數(shù)</p><p>  stringLetterChosen;//玩家已經(jīng)猜過的字母</p><p>  intChoice;//玩家的選擇</p><p>  intShowNum;//顯示字母個數(shù)</p><p>  int Length;//所猜單詞的長度</p><p

110、>  intLetterNum;//單詞中的字母個數(shù)</p><p>  inti;//循環(huán)的記數(shù)變量,使每次游戲都不一樣</p><p>  intCheck;//用戶輸入字母是否正確</p><p>  int Choice2;</p><p><b>  public:</b></p

111、><p><b>  CGuess();</b></p><p>  voidInitialSet();</p><p>  intSaveWordFile();</p><p>  intUserWord();//玩家出詞</p><p>  intRndWord();/

112、/電腦出詞</p><p>  voidReplaceWord();</p><p>  voidisChosen(char);</p><p>  voidJudge(char);</p><p>  intRun();//運(yùn)行</p><p>  voidGetChoice();//

113、得到選擇</p><p>  voidGame();//游戲主要函數(shù)</p><p>  void Set(); //設(shè)置</p><p>  void password();</p><p><b>  };</b></p><p>&

114、lt;b>  #endif</b></p><p>  using namespace std; // 用名字空間std </p><p><b>  //構(gòu)造函數(shù)</b></p><p>  draw::draw(){}</p><p>  void draw::rope()

115、// 輸出上吊繩</p><p>  {cout << " |"; }</p><p>  void draw::head() //頭</p><p>  {cout << " O";}</p><p>  void draw::neck()//頸<

116、/p><p>  {cout << " |"; }</p><p>  void draw::leftarm()//左臂</p><p>  {cout << "//"; }</p><p>  void draw::rightarm()//右臂</p>

117、<p>  {cout << " \\"; }</p><p>  void draw::waisttop()//腰</p><p>  {cout << " { }"; }</p><p>  void draw::leftleg()//左腿</p>&l

118、t;p>  {cout << "//"; }</p><p>  void draw::rightleg()//右腿</p><p>  {cout << " \\"; }</p><p>  //---------------------------------------

119、----------------------------------------</p><p><b>  //清理輸入流</b></p><p>  inline istream& Flush(istream& stream)</p><p><b>  {</b></p><p&g

120、t;  stream.clear();</p><p>  int chars_to_skip = stream.rdbuf()->in_avail();</p><p>  return stream.ignore(chars_to_skip);</p><p><b>  }</b></p><p>  //根

121、據(jù)設(shè)置的次數(shù)和實(shí)際猜錯的次數(shù)畫上吊人形</p><p>  void drawman(int numguess, int numwrong, int i)</p><p><b>  {</b></p><p><b>  draw d;</b></p><p>  for (i = 0; i

122、<= numwrong; i++)</p><p><b>  {</b></p><p>  if (numguess == 4)</p><p><b>  {</b></p><p><b>  switch(i)</b></p><p>

123、<b>  {</b></p><p>  case 1: d.rope();cout << endl;d.head();</p><p>  cout << endl;d.neck(); break;</p><p>  case 2:cout << endl;d.leftarm();</

124、p><p>  d.rightarm();break;</p><p>  case 3: cout << endl; d.waisttop();break;</p><p>  case 4: cout << endl;d.leftleg();d.rightleg();</p><p>  cout <&l

125、t; endl << endl << "死翹翹了!" << endl;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if (numguess == 5)</p><

126、p><b>  {</b></p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:d.rope();break;</p><p>  case 2:cout << endl;d

127、.head();cout << endl;d.neck();break;</p><p>  case 3:cout << endl;d.leftarm(); d.rightarm(); break;</p><p>  case 4:cout << endl;d.waisttop();break;</p><p&g

128、t;  case 5:cout << endl;d.leftleg();d.rightleg();</p><p>  cout << endl << endl << "死翹翹了!" << endl;break;</p><p><b>  }</b></p><

129、;p><b>  }</b></p><p>  else if (numguess == 6)</p><p><b>  {</b></p><p><b>  switch(i)</b></p><p><b>  {</b></p>

130、;<p>  case 1:d.rope();break;</p><p>  case 2: cout << endl;d.head(); cout << endl;d.neck(); break;</p><p>  case 3:cout << endl;d.leftarm();d.rightarm();brea

131、k;</p><p>  case 4:cout << endl;d.waisttop();break;</p><p>  case 5:cout << endl;d.leftleg();break;</p><p>  case 6:d.rightleg();cout << endl << &quo

132、t;死翹翹了!" << endl;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if (numguess == 7)</p><p><b>  {</b></p>

133、<p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:d.rope();break;</p><p>  case 2:cout << endl;d.head();cout << endl;d.neck(

134、);break;</p><p>  case 3:cout << endl;d.leftarm();break;</p><p>  case 4:d.rightarm();break;</p><p>  case 5:cout << endl;d.waisttop();break;</p><p&g

135、t;  case 6:cout << endl;d.leftleg();break;</p><p>  case 7:d.rightleg();cout << endl << "死翹翹了!" << endl;break;</p><p><b>  }</b></p>&l

136、t;p><b>  }</b></p><p>  else if (numguess == 8)</p><p><b>  {</b></p><p><b>  switch(i)</b></p><p><b>  {</b></p&g

137、t;<p>  case 1:d.rope();break;</p><p>  case 2:cout << endl;d.head(); break;</p><p>  case 3:cout << endl;d.neck();break;</p><p>  case 4:cout <<

138、endl;d.leftarm();break;</p><p>  case 5:d.rightarm(); break;</p><p>  case 6:cout << endl;d.waisttop();break;</p><p>  case 7:cout << endl;d.leftleg();break;&l

139、t;/p><p>  case 8:d.rightleg();cout << endl << "死翹翹了!" << endl;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  

140、else if (numguess == 9)</p><p><b>  {</b></p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:d.rope();break;</p>&

141、lt;p>  case 2:cout << endl;d.head();break;</p><p>  case 3:cout << endl;d.neck();break;</p><p>  case 4:cout << endl;d.leftarm();break;</p><p>  case

142、 5:d.rightarm();break;</p><p>  case 6:cout << endl; d.waisttop();break;</p><p>  case 7: break;</p><p>  case 8:cout << endl;d.leftleg();break;</p><

143、;p>  case 9:d.rightleg(); cout << endl << "死翹翹了!" << endl;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if (nu

144、mguess == 10)</p><p><b>  {</b></p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:d.rope();break;</p><p> 

溫馨提示

  • 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

提交評論