版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 報 告</p><p> 課程名稱 C語言課程設計 </p><p> 課題名稱 猜數字游戲系統(tǒng) </p><p><b> 2012年9月3日</b></p><p><b> 目 錄</b&
2、gt;</p><p> 第一章 前言............................................................................................</p><p> 第二章 需求分析……………………………………………….....…...</p><p> 2.1系統(tǒng)概述......
3、...................................................</p><p> 2.2功能需求描述..................................................</p><p> 第三章 總體設計………………………………………..……….…..</p><p> 3.1模塊設計
4、........................................................................................</p><p> 3.2程序的模塊組成………………………………………………</p><p> 3.3各個函數的主要功能…………………………….………...…..</p><p> 第
5、四章 詳細設計…………………………………………………....</p><p> 4.1 系統(tǒng)的總體框圖…………………………………………..</p><p> 4.2 相關的數據類型.........................................................................</p><p> 4.3 函數
6、間的調用圖.........................................................................</p><p> 4.4 流程圖…………………………………………………… .....…</p><p> 第五章 測試和結果……………………………………………….... </p><p> 5.1 調試
7、分析……………………………………………………..…. 5.2 使用說明......................................................................................</p><p> 5.3 運行結果截屏及說明………………………………………..</p><p> 第六章 源程序……………………
8、……………………………...…...</p><p> 第七章 總結………………………………………………………......</p><p> 附錄 1、計算機應用與通信學院評分標準………………..…………………….....</p><p><b> 第一章</b></p><p><b> 前 言
9、</b></p><p> 《C語言程序設計》課程設計是對學生的一種全面綜合訓練,它包括問題分析,總體結構設計,用戶界面設計,程序設計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓練和科學作風的培養(yǎng)。是與課堂聽講、自學和練習相輔相成的必不可少的一個教學環(huán)節(jié)。通常,課程設計的課題比平時的習題復雜得多,也更接近實際。課程設計著眼于與應用的結合點,使學生學會如何把書上學到的知識用于解決實際問題,培養(yǎng)
10、軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,使學生更好地深化理解和靈活掌握教學內容。為了達到上述目的,本課程設計安排了八個設計課題,訓練重點在于基本的程序設計方法和分析問題的能力,而不強調面面俱到。學生可任選其中一題進行設計,設計完畢寫出課程設計報告,用A4紙打印成冊;并將課程設計報告與源程序存盤。學習委員將課程設計報告與磁盤收齊后交指導老師。</p><p><b> 第二章 &l
11、t;/b></p><p><b> 需求分析</b></p><p> 猜數字游戲是一個運行在Windows平臺下的小型游戲軟件,依據猜數字游戲的基本規(guī)則,給用戶進行成績排行,在排行榜中排出前五名玩家的游戲記錄,并可以隨著玩家的游戲記錄進行更新。1、系統(tǒng)概述 該軟件在Windows系統(tǒng)上為玩家提供猜數字游戲的基本功能,游戲用戶可以
12、選擇開始游、排行榜查看、幫助等主要功能。當用戶選擇開始游戲時,系統(tǒng)會提示用戶排行榜上猜數字成績的最好記錄,并讓用戶逐次猜數字,用戶每次猜數字后系統(tǒng)會給出本次猜數字的結果提示,如位置和數字都正確的數字個數、數字正確介位置不正確的數字個數。如果用戶猜數字的次數超過8次,則提示用戶游戲失敗,如果在8次之內猜出4個數字和正確的順序,則提示用戶猜數字成功,并到排行榜中進行比較,如果排名在前一名,則計入排行榜中,以便其他用戶查看。在排行榜查看功能中
13、,用戶可以查看當前的游戲排行,排行榜中總共顯示5名玩家的排行,如有新的記錄產生,則插入到排行榜中,并把排行榜中位次最末的記錄擠出排行榜。在幫助模塊,用戶可以查看游戲規(guī)則,當熟悉規(guī)則后可以退出幫助模塊。2、功能需求描述 猜數字游戲軟件的總體目標是按照特定游戲規(guī)則為用戶提供一個方便友好的游戲</p><p><b> 第三章 </b></p><p
14、><b> 總體設計</b></p><p> 在前面對猜數字游戲進行需求分析的過程中,已經初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設計的過程中,給出猜數字游戲的模塊結構、流程描述以及界面布局,并使得系統(tǒng)的總體設計符合軟件工程中總體設計的基本原則。開發(fā)與設計的總體思想 猜數字游戲是一種大眾娛樂游戲,開發(fā)與設計的重點在于游戲供玩家進行猜數字
15、游戲的原始數字的產生和用戶每次進行猜數字操作之后的游戲提示,這兩方面的規(guī)則設計往往決定了軟件運行的正確性和質量。1、模塊設計: 1)、游戲區(qū)模塊 該模塊為玩家提供猜數字游戲的主休功能,由系統(tǒng)自動產生4個隨機排列的整數,并給用戶8次機會猜測數字的數值和排列順序。如果用戶在8次之內沒有猜出正確的結果,則提示用戶游戲失敗,否則提示用戶猜數字成功,并調用產生新記錄模塊對玩家游戲成績進行處理
16、。(因精力有限且只能用畫圖來畫個框架,所以就不再有圖了) ①產生原始數字:由系統(tǒng)產生4個隨機數,并按任意順序排列,作為游戲的原始數字供玩家進行猜數字游戲。 ②游提示:提示用戶數值和位置全對的數字個數,和只有數值但位置不對的數字個數?!?③原始數字顯示:當用戶在8次之內仍未能</p><p> 2、程序的模塊組成:</p><p> 主函數: int main()</p&
17、gt;<p> 創(chuàng)立結構體:struct p1()</p><p> 使數字產生循環(huán): int rand1()</p><p> 調用讀取破記錄: goread()</p><p> 輸入數字: void input1();</p><p> 初始化隨機數發(fā)生器:getnumber()</p><
18、p> 清除文本模式窗口:clrscr();</p><p> 讀入字符串的時候,直到回車為止 :gets()</p><p> 3、各個函數的主要功能:</p><p> 隨機產生4個數的函數: 隨機產生4個數字。</p><p> randomize()是c函數庫提供的一個函數,功能給產生隨機數的進行初始化</p>
19、;<p><b> 清除文本模式窗口</b></p><p><b> 第四章 </b></p><p><b> 詳細設計</b></p><p><b> 1、系統(tǒng)的總體框圖</b></p><p><b> 圖 4
20、-1</b></p><p> 2、相關的數據類型:</p><p> #include<stdio.h></p><p> #include<conio.h></p><p> #include<stdlib.h></p><p> #include<s
21、tring.h></p><p> void rand2();</p><p> int rand1();</p><p> void input1();</p><p> void compare1();</p><p> int i,j,k,c,d,b[4];</p><p>
22、; char a[24];</p><p><b> 將數字定義為整型</b></p><p> 3、函數間的調用關系圖如下:</p><p><b> 圖 4-2</b></p><p><b> 4、流程圖</b></p><p><
23、;b> 圖 4-3</b></p><p><b> 第五章 </b></p><p><b> 測試和結果</b></p><p><b> 1、調試分析;</b></p><p> 輸入的游戲玩家人數太多時,屏幕顯示不能控制為一頁一頁顯示,所以
24、為了方便起見,不要輸入太多記錄,十七左右為最佳。</p><p> 剛開始執(zhí)行輸入函數,按數字順序輸入,輸完后執(zhí)行顯示功能,數字、字母的位置顯示不對,試著在其中增加一些語句,希望能把所需結果按正常順序顯示,但暫時沒有成功,最后在老師的幫助下,所需結果能按正常順序輸出了。</p><p> 在前面對猜數字游戲進行需求分析的過程中,已經初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設
25、計的過程中,給出猜數字游戲的模塊結構、流程描述以及界面布局,并使得系統(tǒng)的總體設計符合軟件工程中總體設計的基本原則。開發(fā)與設計的總體思想 猜數字游戲是一種大眾娛樂游戲,開發(fā)與設計的重點在于游戲供玩家進行猜數字游戲的原始數字的產生和用戶每次進行猜數字操作之后的游戲提示,這兩方面的規(guī)則設計往往決定了軟件運行的正確性和質量。同時,要謹記調試失敗的原因,以免下次犯同類錯誤。</p><p>&l
26、t;b> 2、使用說明:</b></p><p><b> 1)、打開程序:</b></p><p> 2)、進入選擇頁面:</p><p> ?。?)選擇1為查看記錄</p><p> (2)選擇2為新游戲</p><p><b> ?。?)選擇0為退出<
27、;/b></p><p><b> 3)、進行游戲</b></p><p><b> 4)、退出</b></p><p> 3、運行結果截屏及說明:</p><p><b> 游戲初始畫面</b></p><p> 選擇一進入游戲系統(tǒng)隨機
28、顯示四個數字提供讓游戲者猜測:</p><p> 如果連續(xù)四次輸入錯誤將出現如下結果,并出現提示:</p><p> 選擇四進入幫助顯示結果</p><p> 如果繼續(xù)則可以輸入姓名并保存記錄如果按任意鍵則返回首頁:</p><p><b> 第六章 </b></p><p><b
29、> 源程序</b></p><p> #include <time.h></p><p> #include <stdlib.h></p><p> #include<stdio.h></p><p> #include <conio.h></p>&l
30、t;p> int a[5],b[5],n1,n2,n3,i,j;/* a,b,只用了從1~4的四個下標. */</p><p> /* n1計算位置數字相同的數字個數 */</p><p> /* n2計算數字相同但位置不相同的數字個數 */</p><p> /* n3計算所猜次數 */</p><p><b>
31、char ch;</b></p><p> StartProgram()</p><p><b> {</b></p><p> ReadRecord(); /*調用讀取破記者函數 */</p><p><b> n1=0;</b></p><p><
32、;b> n3=0;</b></p><p> getnumber();/*調用隨機產生4個數的函數*/</p><p> for(j=i-1;j>=1;j--)</p><p> printf("%d ",a[j]);</p><p> getchar();</p><
33、p> printf("\n\n\n\n\n");</p><p> /* 循環(huán)猜數 */</p><p> while(n1<4&&n3<10)</p><p><b> {</b></p><p><b> ++n3;</b><
34、/p><p><b> n1=0;</b></p><p><b> n2=0;</b></p><p> /* 提示用戶輸入四個要猜的4位整數 */</p><p> for(i=1;i<=4;i++)</p><p><b> {</b>
35、</p><p> printf("\ninput the NO.%d number:",i);</p><p> scanf("%d",&b[i]);</p><p><b> }</b></p><p> for(i=1;i<=4;i++)</p&g
36、t;<p><b> {</b></p><p> if(a[i]==b[i])/* 位置數字都對的 */</p><p><b> {</b></p><p><b> n1++;</b></p><p><b> continue;<
37、/b></p><p><b> }</b></p><p> for(j=1;j<=4;j++)/* 計算數字相同但位置不相同的個數 */</p><p> if(b[i]==a[j]) n2++;</p><p><b> }</b></p><p>
38、 printf("correct value and correct position: %d\n",n1);</p><p> printf("correct value but incorrectness position:%d\n",n2);</p><p> printf("you have guessed %d times\
39、n",n3);</p><p> if(n1==4) break;/* 如果四次都猜對了就結束循環(huán)。 */</p><p> } /* while循環(huán)結束 */</p><p> if(n3>=10)</p><p> printf("You blew it ,the answer is %d,%d,%d&q
40、uot;,a[1],a[2],a[3],a[4]);</p><p><b> else</b></p><p><b> {</b></p><p> printf("Configrafulastions!You finish it by %d times\n",n3);</p>
41、<p> ResetRecord(n3);</p><p><b> }</b></p><p> printf("press any key to continue...\n");</p><p> fflush(stdin);</p><p><b> getch()
42、;</b></p><p><b> }</b></p><p> getnumber()/* 隨機產生四個數的函數 */</p><p><b> {</b></p><p> randomize(); </p><p> /* 產生隨機數的初始化函數
43、 */</p><p> for(i=1;i<=4;i++)</p><p><b> {</b></p><p><b> loop2:</b></p><p><b> {</b></p><p> /* 產生的隨機數處理為1位的整數
44、 */</p><p> a[i]=rand()%10;/* rand函數用于產生隨機數 */</p><p> /* 循環(huán)判斷,隨機數要求不重復,如果重復則重新產生 */</p><p> for(j=i-1;j>=1;j--)</p><p> if(a[i]==a[j]) goto loop2;</p>&l
45、t;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> #ifndef PLAYER</p><p> #define PLAYER</p><p> #include
46、 <stdio.h></p><p> #include <conio.h></p><p> #include <string.h></p><p> #define SIZE 5</p><p> typedef struct</p><p><b> {&l
47、t;/b></p><p> char name[20];/* field of name */</p><p> int score;/* field of score */</p><p><b> }player;</b></p><p><b> #endif#</b><
48、/p><p> /* SortByName按游戲成績排序 */</p><p> #include <stdio.h></p><p> void SortByName()</p><p><b> {</b></p><p> int i,j,k;</p><
49、;p> player TempS;/* 定義進行操作時的臨時結構體變量 */</p><p> player s[5];/* SIZE在score.h頭文件中定義的常量,值為5 */</p><p> int recNumber=0;</p><p> char DataFile[10]="record";</p>&
50、lt;p> FILE *fp=NULL;</p><p><b> clrscr();</b></p><p> /* 以讀的方式打開文件,如文件不存在,提示錯誤 */</p><p> fp=fopen(DataFile,"rb");</p><p> if(fp==NULL)<
51、;/p><p><b> {</b></p><p> printf("\nOpen file %s fial !End with any key.\n",DataFile);</p><p> perror("Open file fail");</p><p> fflush
52、(stdin);</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p> /* 將文件中要排序的信息存入結構體數組 */</p><p> w
53、hile(fread(&s[recNumber],sizeof(player),1,fp)!=(int)NULL)</p><p><b> {</b></p><p> recNumber++;</p><p><b> }</b></p><p> fclose(fp);<
54、/p><p> /* 如果文件中有記錄,則將各記錄按游戲成績值排序 */</p><p> if(recNumber>1)</p><p><b> {</b></p><p> for(i=0;i<recNumber-1;i++)</p><p><b> {<
55、/b></p><p><b> k=i;</b></p><p> for(j=i+1;j<recNumber;j++)</p><p><b> {</b></p><p> if(strcmp(s[k].name,s[j].name)>0) k=j;</p>
56、;<p><b> }</b></p><p><b> if(k!=i)</b></p><p><b> {</b></p><p> strcpy(TempS.name,s[k].name);</p><p> TempS.score=s[k].s
57、core;</p><p> strcpy(s[k].name,s[i].name);</p><p> s[k].score=s[i].score;</p><p> strcpy(s[i].name,TempS.name);</p><p> s[i].score=TempS.score;</p><p>
58、<b> }</b></p><p><b> }</b></p><p> /* 將排序好的記錄寫入文件 */</p><p> fp=fopen(DataFile,"wb+");</p><p> if(fp==NULL)</p><p>&
59、lt;b> {</b></p><p> printf("\nOpen file %s fial!End with any key.\n",DataFile);</p><p> perror("Open file fail");</p><p> fflush(stdin);</p>
60、<p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p> for (i=0;i<recNumber;i++)</p><p><b> {</b
61、></p><p> if(fwrite(&s[i],sizeof(player),1,fp)!=1)</p><p><b> {</b></p><p> printf("\nwrite file %s fail!End with any key.\n",DataFile);</p>&
62、lt;p> perror("write file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</
63、b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> /* 顯示排序后的文件 */</p><p> printf("the player's score
64、 as folow:\n");</p><p> fp=fopen(DataFile,"rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\nOpen file %s fial!End with
65、any key.\n",DataFile);</p><p> perror("Open file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> return;</b>
66、;</p><p><b> }</b></p><p> printf("\nName\t\tscore\n");</p><p> while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b> {<
67、/b></p><p> printf("%s\t\t%d\n",TempS.name,TempS.score);</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("press any key to continu
68、e...");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> }</b></p><p> #include <stdio.h></p><p> /* 顯示幫助信
69、息 */</p><p> PrintHelp()</p><p><b> {</b></p><p><b> clrscr();</b></p><p> printf("\n");</p><p> printf("+-----
70、---------------------------------------------------+\n");</p><p> printf("+ you hava 10 opportunities to guess num +\n");</p><p> printf("+ every time the
71、 system will hint you : +\n");</p><p> printf("+ correct value and correct position count +\n");</p><p> printf("+ correct value but incorrec
72、tness position count +\n");</p><p> printf("+--------------------------------------------------------+\n");</p><p> printf("+ about the score list
73、 +\n");</p><p> printf("+ the score list is store the five player's score on top +\n");</p><p> printf("+-------------------------------------------------
74、-------+\n");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> }</b></p><p> /* SortByName按游戲成績排序 */</p><p> #in
75、clude <stdio.h></p><p> void SortByScore()</p><p><b> {</b></p><p> int i,j,k;</p><p> player TempS;/* 定義進行操作時的臨時結構體變量 */</p><p> pl
76、ayer s[5];/* SIZE在score.h頭文件中定義的常量,值為5 */</p><p> int recNumber=0;</p><p> char DataFile[10]="record";</p><p> FILE *fp=NULL;</p><p><b> clrscr();&l
77、t;/b></p><p> /* 以讀的方式打開文件,如文件不存在,提示錯誤 */</p><p> fp=fopen(DataFile,"rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> prin
78、tf("\nOpen file %s fial !End with any key.\n",DataFile);</p><p> perror("Open file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p>
79、;<p><b> return;</b></p><p><b> }</b></p><p> /* 將文件中要排序的信息存入結構體數組 */</p><p> while(fread(&s[recNumber],sizeof(player),1,fp)!=(int)NULL)</p
80、><p><b> {</b></p><p> recNumber++;</p><p><b> }</b></p><p> fclose(fp);</p><p> /* 如果文件中有記錄,則將各記錄按游戲成績值排序 */</p><p>
81、; if(recNumber>1)</p><p><b> {</b></p><p> for(i=0;i<recNumber-1;i++)</p><p><b> {</b></p><p><b> k=i;</b></p><
82、;p> for(j=i+1;j<recNumber;j++)</p><p><b> {</b></p><p> if(s[k].score>s[j].score) k=j;</p><p><b> }</b></p><p><b> if(k!=i)&
83、lt;/b></p><p><b> {</b></p><p> strcpy(TempS.name,s[k].name);</p><p> TempS.score=s[k].score;</p><p> strcpy(s[k].name,s[i].name);</p><p&g
84、t; s[k].score=s[i].score;</p><p> strcpy(s[i].name,TempS.name);</p><p> s[i].score=TempS.score;</p><p><b> }</b></p><p><b> }</b></p>
85、<p> /* 將排序好的記錄寫入文件 */</p><p> fp=fopen(DataFile,"wb+");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\nOpen file %s fia
86、l!End with any key.\n",DataFile);</p><p> perror("Open file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> retur
87、n;</b></p><p><b> }</b></p><p> for (i=0;i<recNumber;i++)</p><p><b> {</b></p><p> if(fwrite(&s[i],sizeof(player),1,fp)!=1)<
88、/p><p><b> {</b></p><p> printf("\nwrite file %s fail!End with any key.\n",DataFile);</p><p> perror("write file fail");</p><p> fflush
89、(stdin);</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> fclo
90、se(fp);</p><p><b> }</b></p><p> /* 顯示排序后的文件 */</p><p> printf("the player's score as flow:\n");</p><p> fp=fopen(DataFile,"rb")
91、;</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\nOpen file %s fial!End with any key.\n",DataFile);</p><p> perror("Open file fai
92、l");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p> printf(&q
93、uot;\nName\t\tscore\n");</p><p> while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b> {</b></p><p> printf("%s\t\t%d\n",TempS.name,TempS.
94、score);</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("press any key to continue...");</p><p> fflush(stdin);</p><p><b&
95、gt; getch();</b></p><p><b> }</b></p><p> #include <stdio.h></p><p> ResetRecord(int n) /* n所用次數 */</p><p><b> {</b></p>
96、<p><b> int i,j;</b></p><p> int recnum=0;</p><p> int maxscore=0;</p><p> player r[5];</p><p> FILE *fp=NULL;</p><p> player Pro;&
97、lt;/p><p> player TempS;</p><p> fp=fopen("record","rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\nOp
98、en file fail!End with any key\n");</p><p> perror("Open file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> exit
99、(0);</b></p><p><b> }</b></p><p> /* 將文件中的記錄讀入數組中. */</p><p> while((fread(&r[recnum],sizeof(player),1,fp)!=(int)NULL) && (recnum<5))</p>
100、<p><b> {</b></p><p><b> recnum++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p> /* 如果記錄成員沒有5個,則順次入數組中添加記錄 */</p>
101、<p> if(recnum<4)</p><p><b> {</b></p><p> printf("What is your name?"); /* 讓玩家輸入姓名 */</p><p> scanf("%s",r[recnum].name);</p>
102、<p> r[recnum].score=n;</p><p><b> recnum++;</b></p><p><b> }</b></p><p> /* 如果記錄成員已經有5個,則找出猜數字次數最多的記錄,即最差玩家 */</p><p> /* 如果當前記錄比此記錄快
103、,則替換 */</p><p><b> else</b></p><p><b> {</b></p><p> for(i=0;i<5;i++)</p><p><b> {</b></p><p> if(r[i].score>
104、;maxscore)/* maxscor初始值為0 */</p><p><b> {</b></p><p> maxscore=r[i].score;</p><p><b> j=i;</b></p><p><b> }</b></p><p
105、><b> }</b></p><p> /* 如果當前人的記錄比最慢記錄快,或相等則替換,使玩家入榜,最差玩家落榜 */</p><p> if(n<=r[j].score)</p><p><b> {</b></p><p> printf("What is y
106、our name?"); /* 讓玩家輸入姓名 */</p><p> scanf("%s",r[j].name);</p><p> r[j].score=n;</p><p><b> }</b></p><p><b> }</b></p>
107、<p> fp=fopen("record","wb");/* 以寫的方式打開排行榜文件 */</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("Open file fail!end with any key.
108、\n");</p><p> perror("Open file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> exit(0);</b></p><
109、;p><b> }</b></p><p> /* 循環(huán)把更新過的排行情況寫入排行榜 */</p><p> for(i=0;i<recnum;i++)</p><p><b> {</b></p><p> if(fwrite(&r[i],sizeof(player)
110、,1,fp)!=1)</p><p><b> {</b></p><p> printf("\nWrite file fail!End with any key.\n");</p><p> perror("Write file fail");</p><p><b&
111、gt; getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p><p> /* 顯
112、示更新排行過的排行榜 */</p><p> fp=fopen("record","rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("Open file fail!end with an
113、y key.\n");</p><p> perror("Open file fail");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> exit(0);</b></p>
114、;<p><b> }</b></p><p> printf("the record is:\n");</p><p> printf("\nName\tscore\n");</p><p> while(fread(&TempS,sizeof(player),1,fp)!
115、=(int)NULL)</p><p><b> {</b></p><p> printf("\n%s\t%d\n",TempS.name,TempS.score);</p><p><b> }</b></p><p> fclose(fp);</p>
116、<p><b> }</b></p><p> #include <stdio.h></p><p> ClearSort()</p><p><b> {</b></p><p> player TempS;/* 定義進行操作時的臨時結構體變量,用于存放系統(tǒng)默認記錄
117、 */</p><p> char DataFile[10]="record";/* 存放排行榜文件名 */</p><p> FILE * fp=NULL;</p><p> strcpy(TempS.name,"player");/* 初始化系統(tǒng)默認記錄的玩家姓名 */</p><p> T
118、empS.score=10;/* 初始化系統(tǒng)默認記錄的玩家成績 */</p><p> fp=fopen(DataFile,"wb+");/* 打開排行榜文伯 */</p><p> if(fp==NULL)/* 打開不成功給出錯誤提示 */</p><p><b> {</b></p><p>
119、; printf("\nOpen the score sort file fail!end with any key!\n",DataFile);</p><p> perror("Open file fail!");</p><p> fflush(stdin);</p><p><b> getch();
120、</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p> /* 將系統(tǒng)默認記錄以履蓋的方式寫入排行榜 */</p><p> if(fwrite(&TempS,sizeof(player),1,fp)!=1)&l
121、t;/p><p><b> {</b></p><p> printf("\nWrite file %s fail!End with any key!\n",DataFile);</p><p> perror("write file fail!");</p><p> ffl
122、ush(stdin);</p><p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p> fclose(fp);</p><p> printf(&q
123、uot;\nThe sort file is cleared!\n");</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> }</b></p><p> #include <stdio.h>&l
124、t;/p><p> void main()</p><p><b> {</b></p><p> int choice=1;</p><p><b> while(1)</b></p><p><b> {</b></p><
125、p><b> clrscr();</b></p><p> printf("#===============================#\n");</p><p> printf("# Welcome to GuessNum Program #\n");</p><p> prin
126、tf("#===============================#\n");</p><p> printf("# 1.to start game #\n");</p><p> printf("# 2.to browse the sort by scor #\n");</p>
127、<p> printf("# 3.to browse the sort by name #\n");</p><p> printf("# 4.to view the help #\n");</p><p> printf("# 5.to clear the sort #\n&
128、quot;);</p><p> printf("# 0.Exit #\n");</p><p> printf("#===============================#\n");</p><p> printf("Please input you ch
129、oice here:");</p><p> scanf("%d",&choice);</p><p> switch(choice)</p><p><b> {</b></p><p><b> case 1:</b></p><
130、p> StartProgram();</p><p><b> break;</b></p><p><b> case 2:</b></p><p> SortByScore();</p><p><b> break;</b></p><
131、p><b> case 3:</b></p><p> SortByName();</p><p><b> break;</b></p><p><b> case 4:</b></p><p> PrintHelp();</p><p&g
132、t;<b> break;</b></p><p><b> case 5:</b></p><p> ClearSort();</p><p><b> break;</b></p><p><b> case 0:</b></p>
133、<p><b> exit(0);</b></p><p><b> break;</b></p><p><b> default:</b></p><p> printf("select error!\nPress any key to countinue...&q
134、uot;);</p><p> fflush(stdin);</p><p><b> getch();</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }<
135、;/b></p><p><b> }</b></p><p> #include "stdio.h"</p><p> ReadRecord()</p><p><b> {</b></p><p> FILE * fp;</p&g
136、t;<p> player TempS;</p><p> player Min;</p><p> Min.score=11;</p><p> /* 打開記錄保持文,如果不能以讀方式打,說明記錄不存在,則他建記錄,寫入文件 */</p><p> if((fp=fopen("record",&q
137、uot;rb"))==NULL)</p><p><b> {</b></p><p> SetRecord();/* 調用初始化記錄函數 */</p><p> fp=fopen("record","rb");</p><p><b> }</b
138、></p><p> /* 循環(huán)讀取文件,取得最少猜中次數的記錄 */</p><p> while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b> {</b></p><p> if(TempS.score<Min.sco
139、re) /* Min.score初始值為11 */</p><p><b> {</b></p><p> strcpy(Min.name,TempS.name);</p><p> Min.score=TempS.score;</p><p><b> }</b></p>&
140、lt;p><b> }</b></p><p> fclose(fp);</p><p> printf("the recore keeper is %s,guessed out in %d times\n",Min.name,Min.score);</p><p><b> }</b>&
141、lt;/p><p> SetRecord()</p><p><b> {</b></p><p> player Pro;</p><p><b> FILE *fp;</b></p><p> /* 給初始記錄賦值 */</p><p>
142、strcpy(Pro.name,"player");</p><p> Pro.score=10;</p><p> /* 初始化文件,即創(chuàng)建文件,寫入第一條記錄 */</p><p> if((fp=fopen("record","wb"))==NULL)</p><p>&
143、lt;b> {</b></p><p> printf("file open error\n");</p><p><b> return;</b></p><p><b> }</b></p><p> if(fwrite(&Pro,size
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計--猜數字游戲
- c語言課程設計--猜數字游戲
- c語言課程設計---猜數字游戲報告
- c語言程序課程設計-猜數字游戲
- 《c語言程序設計》課程設計---猜數字游戲
- c語言課程設計----猜字游戲
- c語言課程設計--猜數游戲
- 猜數字游戲課程設計報告
- 課程設計報告--猜數字游戲
- java課程設計——猜數字游戲
- c++猜單詞課程設計--——猜單詞游戲
- android課程設計報告--猜數字小游戲
- c++課程設計報告--猜數游戲
- 猜單詞游戲c++課程設計報告
- android課程設計報告--猜數字小游戲.doc
- c語言課程設計-數組游戲
- c語言小游戲課程設計
- c語言課程設計報告---游戲設計
- 設計一個gui猜數字游戲程序課程設計
- 猜數字課程設計報告
評論
0/150
提交評論