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

下載本文檔

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

文檔簡介

1、<p><b>  前言</b></p><p>  《C語言程個序設(shè)計》課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計,程序設(shè)計基礎(chǔ)技能和技巧,多人合作,以致一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽講、自學(xué)和聯(lián)系相輔相成的必不可少的一個教學(xué)環(huán)節(jié)。通常,課程設(shè)計的課題比平時的習(xí)題復(fù)雜得多,也更接近實際。課程設(shè)計著眼于理論與應(yīng)用的結(jié)合點,使

2、學(xué)生學(xué)會如何把書上學(xué)到的知識用于解決實際問題,培養(yǎng)程序設(shè)計工作所需要的知識綜合能力;另一方面,能使書上的知識變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達到上述目的,本課程設(shè)計安排了十五個設(shè)計課題,訓(xùn)練重點在于基本的程序設(shè)計方法和分析問題的能力,而不強調(diào)面面俱到。學(xué)生選其中一題進行設(shè)計,設(shè)計完畢寫出課程設(shè)計報告,用A4紙打印成冊;并將課程設(shè)計報告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計報告與磁盤(缺一不可)收齊以后交指導(dǎo)老師。<

3、/p><p><b>  一、目的</b></p><p>  全面熟悉、掌握C語言基本知識,掌握C語言程序設(shè)計中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)函數(shù)和C語言基本圖形編程等方法,把編程和實際結(jié)合起來,增強對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用計算機解決實際問題的能力,

4、養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后再在專業(yè)課程中應(yīng)用計算機系統(tǒng)解決計算、分析、實驗和設(shè)計等等學(xué)習(xí)環(huán)節(jié)打下較扎實的基礎(chǔ)。</p><p><b>  二、基本情況、</b></p><p><b>  課程類別:必修課</b></p><p><b>  課程學(xué)分:1學(xué)分</b></p

5、><p><b>  三、時間安排</b></p><p>  四、設(shè)計可調(diào)試過程規(guī)范化要求</p><p><b>  需要分析</b></p><p>  分析系統(tǒng)功能需求以及用戶操作流程。</p><p><b>  概要設(shè)計</b></p>

6、;<p>  在需要分析的基礎(chǔ)上,確定系統(tǒng)總體框架(系統(tǒng)功能結(jié)構(gòu)圖)</p><p><b>  詳細設(shè)計</b></p><p>  定義數(shù)據(jù)儲存結(jié)構(gòu),并設(shè)計實現(xiàn)系統(tǒng)功能的具體算法,畫出各算法的工作流程圖。</p><p><b>  代碼設(shè)計</b></p><p>  根據(jù)所設(shè)計

7、的算法,定義相應(yīng)函數(shù)分別實現(xiàn)系統(tǒng)的各子功能模塊,同時由主程序提供友好的用戶界面,使用戶可通過選擇主菜單來調(diào)用課程設(shè)計中要求完成的各個功能模塊,子程序執(zhí)行完后還可以返回主菜單,繼續(xù)選擇其他功能執(zhí)行。源程序要求書寫規(guī)范,結(jié)構(gòu)清晰。重點函數(shù)的重點變量。重點功能部分均要求給出清晰的程序注釋</p><p><b>  程序調(diào)試</b></p><p>  程序編譯、連接成功后

8、,自己設(shè)計實現(xiàn)程序功能的一組或多組測試數(shù)據(jù),并嚴格按照此測試數(shù)據(jù)進行測試,然后分析測試結(jié)果。如果程序不能正常運行或結(jié)果不正確,則需要對程序進行單步調(diào)試,在進行過程中認真查找算法實現(xiàn)中存在的問題,并加以分析和改正。如果程序能夠基本正確運行,可考慮增加若干基本的容錯功能(如避免用戶操作錯誤時程序出現(xiàn)死循。)</p><p>  設(shè)計課題:猜數(shù)字游戲</p><p><b>  一、問

9、題描述:</b></p><p>  該游戲可以由程序隨機產(chǎn)生或由用戶輸入四個0到9之間的數(shù)字,且不重復(fù)。玩游戲者通過游戲提示輸入八次來匹配上面所輸入的數(shù)字。A表示位置正確且數(shù)字正確,B表示數(shù)字正確而位置不正確。</p><p><b>  二、功能要求:</b></p><p>  1、本游戲顯示這樣的菜單:</p>

10、<p><b>  隨機產(chǎn)生數(shù)據(jù)</b></p><p><b>  用戶輸入數(shù)據(jù)</b></p><p><b>  退出游戲</b></p><p>  2、游戲成功與否都能返回主菜單</p><p><b>  三、算法提示:</b>&l

11、t;/p><p><b>  數(shù)據(jù)結(jié)構(gòu):數(shù)組</b></p><p>  用簡單的程序設(shè)計方法</p><p><b>  四、測試數(shù)據(jù):</b></p><p>  測試數(shù)據(jù): 3792</p><p>  第一次輸入: 1234</p><p>&

12、lt;b>  0A2B</b></p><p>  第二次輸入: 5678</p><p><b>  0A1B</b></p><p>  第三次輸入: 0867</p><p><b>  0A1B</b></p><p>  第四次輸入: 97

13、86</p><p><b>  1A1B</b></p><p>  第五次輸入: 1794</p><p><b>  2A0B</b></p><p>  第六次輸入: 2793</p><p><b>  2A2B</b></p&g

14、t;<p>  第七次輸入: 3792</p><p><b>  4A0B</b></p><p><b>  游戲成功?。。?lt;/b></p><p><b>  五、其它:</b></p><p>  對該系統(tǒng)有興趣的同學(xué)可以在實現(xiàn)系統(tǒng)基本功能后,完善系統(tǒng)

15、的其它功能,如:破記錄功能,若你所匹配的次數(shù)小于紀錄保持者,則為破紀錄。調(diào)用積分函數(shù),若你一次完成,則記錄7分,若你2次完成則記錄6分,一次類推,大于8次則不記錄分數(shù).</p><p><b>  課程設(shè)計報告規(guī)范</b></p><p><b>  需求分析</b></p><p><b>  程序的功能。&l

16、t;/b></p><p><b>  2、方案選定</b></p><p><b>  二、概要設(shè)計</b></p><p>  1、程序由哪些模塊組成以及一個模塊之間的層次結(jié)構(gòu)、模塊的調(diào)用關(guān)系;每個模塊的功能。</p><p>  2、課題的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu);即要存儲什么數(shù)據(jù),這些

17、數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系等。</p><p><b>  三、詳細設(shè)計</b></p><p>  1、采用C語言定義相關(guān)的數(shù)據(jù)類型。</p><p>  2、寫出各模塊的類C碼算法。</p><p>  3、畫出函數(shù)的調(diào)用關(guān)系圖。</p><p>  四、調(diào)試分析以及設(shè)計體會<

18、;/p><p>  1、測試數(shù)據(jù):準備典型的測試數(shù)據(jù)和測試方案,包括正確的輸入及輸出結(jié)果和含有錯誤的輸入及輸出結(jié)果。</p><p>  2、程序調(diào)試中遇到的問題以及解決問題的方法。</p><p>  3、課程設(shè)計過程經(jīng)驗教訓(xùn)、心得體會。</p><p><b>  五、使用說明</b></p><p&

19、gt;  用戶使用手冊:說明如何使用你編寫的程序,詳細列出每一步的操作步驟。</p><p><b>  六、書寫格式</b></p><p>  設(shè)計報告要求用A4紙打印成冊:</p><p>  標題和正文要求見附1</p><p><b>  封面格式如下頁。</b></p>&

20、lt;p><b>  附錄</b></p><p><b>  1、參考書目</b></p><p>  2、源程序清單(帶注釋)</p><p><b>  附1:</b></p><p>  課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(A4大小的圖紙及

21、程序清單)。 </p><p>  正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p>  正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?lt;/p><p&g

22、t;  正文總字數(shù)要求在5000字以上(不含程序原代碼)。</p><p><b>  目 錄</b></p><p>  第一章 前言............................................................................................1</p><p> 

23、 第二章 需求分析……………………………………………….....…...2</p><p>  2.1系統(tǒng)概述.........................................................2</p><p>  2.2功能需求描述..................................................2</p>

24、<p>  第三章 總體設(shè)計………………………………………..……….….... 4</p><p>  3.1模塊設(shè)計...........................................................................................4</p><p>  3.2程序的模塊組成…………………………………………

25、……….5</p><p>  3.3各個函數(shù)的主要功能…………………………….………...…...5</p><p>  第四章 詳細設(shè)計…………………………………………………....…6 </p><p>  4.1 系統(tǒng)的總體框圖…………………………………………..…….6</p><p>  4.2 相關(guān)的數(shù)據(jù)類型.........

26、.................................................................7</p><p>  4.3 函數(shù)間的調(diào)用圖...........................................................................7</p><p>  4.4 流程圖……………………………………

27、……………… .....……9</p><p>  第五章 測試和結(jié)果………………………………………………....…9</p><p>  5.1 調(diào)試分析……………………………………………………..…...9</p><p>  5.2 使用說明...........................................................

28、..............................9</p><p>  5.3 運行結(jié)果截屏及說明………………………………………...10</p><p>  第六章 源程序…………………………………………………...…...13</p><p>  第七章 總結(jié)………………………………………………………......25</p><

29、;p>  附錄 1、參考文獻...........................................................................................27</p><p>  2、應(yīng)用技術(shù)學(xué)院評分標準………………..…………………….....28</p><p><b>  第一章</b><

30、/p><p><b>  前 言</b></p><p>  《C語言程序設(shè)計》課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計,程序設(shè)計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相輔相成的必不可少的一個教學(xué)環(huán)節(jié)。通常,課程設(shè)計的課題比平時的習(xí)題復(fù)雜得多,也更接近實際。課程設(shè)計著眼于與應(yīng)

31、用的結(jié)合點,使學(xué)生學(xué)會如何把書上學(xué)到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達到上述目的,本課程設(shè)計安排了八個設(shè)計課題,訓(xùn)練重點在于基本的程序設(shè)計方法和分析問題的能力,而不強調(diào)面面俱到。學(xué)生可任選其中一題進行設(shè)計,設(shè)計完畢寫出課程設(shè)計報告,用A4紙打印成冊;并將課程設(shè)計報告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計報告與磁盤收齊后交指導(dǎo)老師。</p&

32、gt;<p><b>  第二章 </b></p><p><b>  需求分析</b></p><p>  猜數(shù)字游戲是一個運行在Windows平臺下的小型游戲軟件,依據(jù)猜數(shù)字游戲的基本規(guī)則,給用戶進行成績排行,在排行榜中排出前五名玩家的游戲記錄,并可以隨著玩家的游戲記錄進行更新。1、系統(tǒng)概述  該軟件在

33、Windows系統(tǒng)上為玩家提供猜數(shù)字游戲的基本功能,游戲用戶可以選擇開始游、排行榜查看、幫助等主要功能。當(dāng)用戶選擇開始游戲時,系統(tǒng)會提示用戶排行榜上猜數(shù)字成績的最好記錄,并讓用戶逐次猜數(shù)字,用戶每次猜數(shù)字后系統(tǒng)會給出本次猜數(shù)字的結(jié)果提示,如位置和數(shù)字都正確的數(shù)字個數(shù)、數(shù)字正確介位置不正確的數(shù)字個數(shù)。如果用戶猜數(shù)字的次數(shù)超過8次,則提示用戶游戲失敗,如果在8次之內(nèi)猜出4個數(shù)字和正確的順序,則提示用戶猜數(shù)字成功,并到排行榜中進行比較,如果排

34、名在前一名,則計入排行榜中,以便其他用戶查看。在排行榜查看功能中,用戶可以查看當(dāng)前的游戲排行,排行榜中總共顯示5名玩家的排行,如有新的記錄產(chǎn)生,則插入到排行榜中,并把排行榜中位次最末的記錄擠出排行榜。在幫助模塊,用戶可以查看游戲規(guī)則,當(dāng)熟悉規(guī)則后可以退出幫助模塊。2、功能需求描述  猜數(shù)字游戲軟件的總體目標是按照特定游戲規(guī)則為用戶提供一個方便友好的游戲</p><p><b> 

35、 第三章 </b></p><p><b>  總體設(shè)計</b></p><p>  在前面對猜數(shù)字游戲進行需求分析的過程中,已經(jīng)初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設(shè)計的過程中,給出猜數(shù)字游戲的模塊結(jié)構(gòu)、流程描述以及界面布局,并使得系統(tǒng)的總體設(shè)計符合軟件工程中總體設(shè)計的基本原則。開發(fā)與設(shè)計的總體思想   猜數(shù)字

36、游戲是一種大眾娛樂游戲,開發(fā)與設(shè)計的重點在于游戲供玩家進行猜數(shù)字游戲的原始數(shù)字的產(chǎn)生和用戶每次進行猜數(shù)字操作之后的游戲提示,這兩方面的規(guī)則設(shè)計往往決定了軟件運行的正確性和質(zhì)量。1、模塊設(shè)計:  1)、游戲區(qū)模塊   該模塊為玩家提供猜數(shù)字游戲的主休功能,由系統(tǒng)自動產(chǎn)生4個隨機排列的整數(shù),并給用戶8次機會猜測數(shù)字的數(shù)值和排列順序。如果用戶在8次之內(nèi)沒有猜出正確的結(jié)果,則提示用戶游戲失敗,否

37、則提示用戶猜數(shù)字成功,并調(diào)用產(chǎn)生新記錄模塊對玩家游戲成績進行處理。(因精力有限且只能用畫圖來畫個框架,所以就不再有圖了)  ①產(chǎn)生原始數(shù)字:由系統(tǒng)產(chǎn)生4個隨機數(shù),并按任意順序排列,作為游戲的原始數(shù)字供玩家進行猜數(shù)字游戲。  ②游提示:提示用戶數(shù)值和位置全對的數(shù)字個數(shù),和只有數(shù)值但位置不對的數(shù)字個數(shù)?!?③原始數(shù)字顯示:當(dāng)用戶在8次之內(nèi)仍未能</p><p>  2、程序的模塊組成:</p>&

38、lt;p>  主函數(shù): int main()</p><p>  創(chuàng)立結(jié)構(gòu)體:struct p1()</p><p>  使數(shù)字產(chǎn)生循環(huán): int rand1()</p><p>  調(diào)用讀取破記錄: goread()</p><p>  輸入數(shù)字: void input1();</p><p>  初始化隨機

39、數(shù)發(fā)生器:getnumber()</p><p>  清除文本模式窗口:clrscr();</p><p>  讀入字符串的時候,直到回車為止 :gets()</p><p>  3、各個函數(shù)的主要功能:</p><p>  隨機產(chǎn)生4個數(shù)的函數(shù): 隨機產(chǎn)生4個數(shù)字。</p><p>  randomize()是c函數(shù)

40、庫提供的一個函數(shù),功能給產(chǎn)生隨機數(shù)的進行初始化</p><p><b>  清除文本模式窗口</b></p><p><b>  第四章 </b></p><p><b>  詳細設(shè)計</b></p><p><b>  1、系統(tǒng)的總體框圖</b><

41、;/p><p><b>  圖 4-1</b></p><p>  2、相關(guān)的數(shù)據(jù)類型:</p><p>  #include<stdio.h></p><p>  #include<conio.h></p><p>  #include<stdlib.h><

42、/p><p>  #include<string.h></p><p>  void rand2();</p><p>  int rand1();</p><p>  void input1();</p><p>  void compare1();</p><p>  int i,j

43、,k,c,d,b[4];</p><p>  char a[24];</p><p><b>  將數(shù)字定義為整型</b></p><p>  3、函數(shù)間的調(diào)用關(guān)系圖如下:</p><p><b>  圖 4-2</b></p><p><b>  4、流程圖&l

44、t;/b></p><p><b>  圖 4-3</b></p><p><b>  第五 </b></p><p><b>  測試和結(jié)果</b></p><p><b>  1、調(diào)試分析;</b></p><p>  

45、輸入的游戲玩家人數(shù)太多時,屏幕顯示不能控制為一頁一頁顯示,所以為了方便起見,不要輸入太多記錄,十七左右為最佳。</p><p>  剛開始執(zhí)行輸入函數(shù),按數(shù)字順序輸入,輸完后執(zhí)行顯示功能,數(shù)字、字母的位置顯示不對,試著在其中增加一些語句,希望能把所需結(jié)果按正常順序顯示,但暫時沒有成功,最后在老師的幫助下,所需結(jié)果能按正常順序輸出了。</p><p>  在前面對猜數(shù)字游戲進行需求分析的過程

46、中,已經(jīng)初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設(shè)計的過程中,給出猜數(shù)字游戲的模塊結(jié)構(gòu)、流程描述以及界面布局,并使得系統(tǒng)的總體設(shè)計符合軟件工程中總體設(shè)計的基本原則。開發(fā)與設(shè)計的總體思想   猜數(shù)字游戲是一種大眾娛樂游戲,開發(fā)與設(shè)計的重點在于游戲供玩家進行猜數(shù)字游戲的原始數(shù)字的產(chǎn)生和用戶每次進行猜數(shù)字操作之后的游戲提示,這兩方面的規(guī)則設(shè)計往往決定了軟件運行的正確性和質(zhì)量。同時,要謹記調(diào)試失敗的原因,以免

47、下次犯同類錯誤。</p><p><b>  2、使用說明:</b></p><p><b>  1)、打開程序:</b></p><p>  2)、進入選擇頁面:</p><p> ?。?)選擇1為查看記錄</p><p> ?。?)選擇2為新游戲</p>&

48、lt;p><b>  (3)選擇0為退出</b></p><p><b>  3)、進行游戲</b></p><p><b>  4)、退出</b></p><p>  3、運行結(jié)果截屏及說明:</p><p><b>  游戲初始畫面</b><

49、;/p><p>  選擇一進入游戲系統(tǒng)隨機顯示四個數(shù)字提供讓游戲者猜測:</p><p>  如果連續(xù)四次輸入錯誤將出現(xiàn)如下結(jié)果,并出現(xiàn)提示:</p><p>  選擇四進入幫助顯示結(jié)果</p><p>  如果繼續(xù)則可以輸入姓名并保存記錄如果按任意鍵則返回首頁:</p><p><b>  第六章 </

50、b></p><p><b>  源程序</b></p><p>  #include <time.h></p><p>  #include <stdlib.h></p><p>  #include<stdio.h></p><p>  #includ

51、e <conio.h></p><p>  int a[5],b[5],n1,n2,n3,i,j;/* a,b,只用了從1~4的四個下標. */</p><p>  /* n1計算位置數(shù)字相同的數(shù)字個數(shù) */</p><p>  /* n2計算數(shù)字相同但位置不相同的數(shù)字個數(shù) */</p><p>  /* n3計算所猜次數(shù) */&

52、lt;/p><p><b>  char ch;</b></p><p>  StartProgram()</p><p><b>  {</b></p><p>  ReadRecord(); /*調(diào)用讀取破記者函數(shù) */</p><p><b>  n1=0;<

53、;/b></p><p><b>  n3=0;</b></p><p>  getnumber();/*調(diào)用隨機產(chǎn)生4個數(shù)的函數(shù)*/</p><p>  for(j=i-1;j>=1;j--)</p><p>  printf("%d ",a[j]);</p><p&

54、gt;  getchar();</p><p>  printf("\n\n\n\n\n");</p><p>  /* 循環(huán)猜數(shù) */</p><p>  while(n1<4&&n3<10)</p><p><b>  {</b></p><p>

55、;<b>  ++n3;</b></p><p><b>  n1=0;</b></p><p><b>  n2=0;</b></p><p>  /* 提示用戶輸入四個要猜的4位整數(shù) */</p><p>  for(i=1;i<=4;i++)</p>

56、<p><b>  {</b></p><p>  printf("\ninput the NO.%d number:",i);</p><p>  scanf("%d",&b[i]);</p><p><b>  }</b></p><p>

57、;  for(i=1;i<=4;i++)</p><p><b>  {</b></p><p>  if(a[i]==b[i])/* 位置數(shù)字都對的 */</p><p><b>  {</b></p><p><b>  n1++;</b></p>&l

58、t;p><b>  continue;</b></p><p><b>  }</b></p><p>  for(j=1;j<=4;j++)/* 計算數(shù)字相同但位置不相同的個數(shù) */</p><p>  if(b[i]==a[j]) n2++;</p><p><b>  }

59、</b></p><p>  printf("correct value and correct position: %d\n",n1);</p><p>  printf("correct value but incorrectness position:%d\n",n2);</p><p>  printf(&

60、quot;you have guessed %d times\n",n3);</p><p>  if(n1==4) break;/* 如果四次都猜對了就結(jié)束循環(huán)。 */</p><p>  } /* while循環(huán)結(jié)束 */</p><p>  if(n3>=10)</p><p>  printf("You bl

61、ew it ,the answer is %d,%d,%d",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

62、 times\n",n3);</p><p>  ResetRecord(n3);</p><p><b>  }</b></p><p>  printf("press any key to continue...\n");</p><p>  fflush(stdin);</p&g

63、t;<p><b>  getch();</b></p><p><b>  }</b></p><p>  getnumber()/* 隨機產(chǎn)生四個數(shù)的函數(shù) */</p><p><b>  {</b></p><p>  randomize(); </p

64、><p>  /* 產(chǎn)生隨機數(shù)的初始化函數(shù) */</p><p>  for(i=1;i<=4;i++)</p><p><b>  {</b></p><p><b>  loop2:</b></p><p><b>  {</b></p>

65、;<p>  /* 產(chǎn)生的隨機數(shù)處理為1位的整數(shù) */</p><p>  a[i]=rand()%10;/* rand函數(shù)用于產(chǎn)生隨機數(shù) */</p><p>  /* 循環(huán)判斷,隨機數(shù)要求不重復(fù),如果重復(fù)則重新產(chǎn)生 */</p><p>  for(j=i-1;j>=1;j--)</p><p>  if(a[i]==

66、a[j]) goto loop2;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  #ifndef PLAYER</p><p>  #define PLAYER

67、</p><p>  #include <stdio.h></p><p>  #include <conio.h></p><p>  #include <string.h></p><p>  #define SIZE 5</p><p>  typedef struct<

68、/p><p><b>  {</b></p><p>  char name[20];/* field of name */</p><p>  int score;/* field of score */</p><p><b>  }player;</b></p><p>&

69、lt;b>  #endif#</b></p><p>  /* SortByName按游戲成績排序 */</p><p>  #include <stdio.h></p><p>  void SortByName()</p><p><b>  {</b></p><p

70、>  int i,j,k;</p><p>  player TempS;/* 定義進行操作時的臨時結(jié)構(gòu)體變量 */</p><p>  player s[5];/* SIZE在score.h頭文件中定義的常量,值為5 */</p><p>  int recNumber=0;</p><p>  char DataFile[10]=&

71、quot;record";</p><p>  FILE *fp=NULL;</p><p><b>  clrscr();</b></p><p>  /* 以讀的方式打開文件,如文件不存在,提示錯誤 */</p><p>  fp=fopen(DataFile,"rb");</p&

72、gt;<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 fail"

73、);</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  /* 將文件中要排序的信息存入結(jié)

74、構(gòu)體數(shù)組 */</p><p>  while(fread(&s[recNumber],sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  recNumber++;</p><p><b>  }</b></p&

75、gt;<p>  fclose(fp);</p><p>  /* 如果文件中有記錄,則將各記錄按游戲成績值排序 */</p><p>  if(recNumber>1)</p><p><b>  {</b></p><p>  for(i=0;i<recNumber-1;i++)</p

76、><p><b>  {</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

77、,s[j].name)>0) k=j;</p><p><b>  }</b></p><p><b>  if(k!=i)</b></p><p><b>  {</b></p><p>  strcpy(TempS.name,s[k].name);</p>

78、<p>  TempS.score=s[k].score;</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=Te

79、mpS.score;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* 將排序好的記錄寫入文件 */</p><p>  fp=fopen(DataFile,"wb+");</p><p>  if(

80、fp==NULL)</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&

81、gt;  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  for (i=0;i<recNumber;i++)</p&g

82、t;<p><b>  {</b></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.\

83、n",DataFile);</p><p>  perror("write file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p&

84、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  /* 顯示排序后的文件 */</p><p>  prin

85、tf("the player's score as folow:\n");</p><p>  fp=fopen(DataFile,"rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf(&quo

86、t;\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><p

87、><b>  return;</b></p><p><b>  }</b></p><p>  printf("\nName\t\tscore\n");</p><p>  while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p

88、><p><b>  {</b></p><p>  printf("%s\t\t%d\n",TempS.name,TempS.score);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf

89、("press any key to continue...");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  #include <stdio.h>

90、</p><p>  /* 顯示幫助信息 */</p><p>  PrintHelp()</p><p><b>  {</b></p><p><b>  clrscr();</b></p><p>  printf("\n");</p>

91、<p>  printf("+--------------------------------------------------------+\n");</p><p>  printf("+ you hava 10 opportunities to guess num +\n");</p><p>  

92、printf("+ every time the system will hint you : +\n");</p><p>  printf("+ correct value and correct position count +\n");</p><p>  printf("

93、;+ correct value but incorrectness position count +\n");</p><p>  printf("+--------------------------------------------------------+\n");</p><p>  printf("+

94、 about the score list +\n");</p><p>  printf("+ the score list is store the five player's score on top +\n");</p><p>  printf("+------------------

95、--------------------------------------+\n");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  /* SortByName按游戲成績

96、排序 */</p><p>  #include <stdio.h></p><p>  void SortByScore()</p><p><b>  {</b></p><p>  int i,j,k;</p><p>  player TempS;/* 定義進行操作時的臨時結(jié)構(gòu)

97、體變量 */</p><p>  player s[5];/* SIZE在score.h頭文件中定義的常量,值為5 */</p><p>  int recNumber=0;</p><p>  char DataFile[10]="record";</p><p>  FILE *fp=NULL;</p>

98、<p><b>  clrscr();</b></p><p>  /* 以讀的方式打開文件,如文件不存在,提示錯誤 */</p><p>  fp=fopen(DataFile,"rb");</p><p>  if(fp==NULL)</p><p><b>  {</b

99、></p><p>  printf("\nOpen file %s fial !End with any key.\n",DataFile);</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b&g

100、t;  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  /* 將文件中要排序的信息存入結(jié)構(gòu)體數(shù)組 */</p><p>  while(fread(&s[recNumber],sizeof(

101、player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  recNumber++;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  /* 如果文件中有記錄,則將各記錄

102、按游戲成績值排序 */</p><p>  if(recNumber>1)</p><p><b>  {</b></p><p>  for(i=0;i<recNumber-1;i++)</p><p><b>  {</b></p><p><b>

103、  k=i;</b></p><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>

104、<p><b>  if(k!=i)</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

105、,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><b>  }</b></p><p>&

106、lt;b>  }</b></p><p>  /* 將排序好的記錄寫入文件 */</p><p>  fp=fopen(DataFile,"wb+");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  

107、printf("\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

108、><p><b>  return;</b></p><p><b>  }</b></p><p>  for (i=0;i<recNumber;i++)</p><p><b>  {</b></p><p>  if(fwrite(&s[

109、i],sizeof(player),1,fp)!=1)</p><p><b>  {</b></p><p>  printf("\nwrite file %s fail!End with any key.\n",DataFile);</p><p>  perror("write file fail"

110、);</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b

111、></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  /* 顯示排序后的文件 */</p><p>  printf("the player's score as flow:\n");</p><p>  fp

112、=fopen(DataFile,"rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("\nOpen file %s fial!End with any key.\n",DataFile);</p><p&

113、gt;  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b>&

114、lt;/p><p>  printf("\nName\t\tscore\n");</p><p>  while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  printf("%s\

115、t\t%d\n",TempS.name,TempS.score);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("press any key to continue...");</p><p>  fflush(std

116、in);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  #include <stdio.h></p><p>  ResetRecord(int n) /* n所用次數(shù) */</p><p>&l

117、t;b>  {</b></p><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;<

118、/p><p>  player Pro;</p><p>  player TempS;</p><p>  fp=fopen("record","rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p>

119、;<p>  printf("\nOpen file fail!End with any key\n");</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></

120、p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  /* 將文件中的記錄讀入數(shù)組中. */</p><p>  while((fread(&r[recnum],sizeof(player),1,fp)!=(int)NULL) &&

121、amp; (recnum<5))</p><p><b>  {</b></p><p><b>  recnum++;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  /* 如果記錄

122、成員沒有5個,則順次入數(shù)組中添加記錄 */</p><p>  if(recnum<4)</p><p><b>  {</b></p><p>  printf("What is your name?"); /* 讓玩家輸入姓名 */</p><p>  scanf("%s&quo

123、t;,r[recnum].name);</p><p>  r[recnum].score=n;</p><p><b>  recnum++;</b></p><p><b>  }</b></p><p>  /* 如果記錄成員已經(jīng)有5個,則找出猜數(shù)字次數(shù)最多的記錄,即最差玩家 */</p

124、><p>  /* 如果當(dāng)前記錄比此記錄快,則替換 */</p><p><b>  else</b></p><p><b>  {</b></p><p>  for(i=0;i<5;i++)</p><p><b>  {</b></p&g

125、t;<p>  if(r[i].score>maxscore)/* maxscor初始值為0 */</p><p><b>  {</b></p><p>  maxscore=r[i].score;</p><p><b>  j=i;</b></p><p><b>

126、;  }</b></p><p><b>  }</b></p><p>  /* 如果當(dāng)前人的記錄比最慢記錄快,或相等則替換,使玩家入榜,最差玩家落榜 */</p><p>  if(n<=r[j].score)</p><p><b>  {</b></p>&l

127、t;p>  printf("What is your name?"); /* 讓玩家輸入姓名 */</p><p>  scanf("%s",r[j].name);</p><p>  r[j].score=n;</p><p><b>  }</b></p><p>&l

128、t;b>  }</b></p><p>  fp=fopen("record","wb");/* 以寫的方式打開排行榜文件 */</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("O

129、pen 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>  ex

130、it(0);</b></p><p><b>  }</b></p><p>  /* 循環(huán)把更新過的排行情況寫入排行榜 */</p><p>  for(i=0;i<recnum;i++)</p><p><b>  {</b></p><p>  if(

131、fwrite(&r[i],sizeof(player),1,fp)!=1)</p><p><b>  {</b></p><p>  printf("\nWrite file fail!End with any key.\n");</p><p>  perror("Write file fail&quo

132、t;);</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(

133、fp);</p><p>  /* 顯示更新排行過的排行榜 */</p><p>  fp=fopen("record","rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf(&

134、quot;Open 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&g

135、t;  exit(0);</b></p><p><b>  }</b></p><p>  printf("the record is:\n");</p><p>  printf("\nName\tscore\n");</p><p>  while(fread(&

136、amp;TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  printf("\n%s\t%d\n",TempS.name,TempS.score);</p><p><b>  }</b></p><

137、;p>  fclose(fp);</p><p><b>  }</b></p><p>  #include <stdio.h></p><p>  ClearSort()</p><p><b>  {</b></p><p>  player Temp

138、S;/* 定義進行操作時的臨時結(jié)構(gòu)體變量,用于存放系統(tǒng)默認記錄 */</p><p>  char DataFile[10]="record";/* 存放排行榜文件名 */</p><p>  FILE * fp=NULL;</p><p>  strcpy(TempS.name,"player");/* 初始化系統(tǒng)默認記錄的

139、玩家姓名 */</p><p>  TempS.score=10;/* 初始化系統(tǒng)默認記錄的玩家成績 */</p><p>  fp=fopen(DataFile,"wb+");/* 打開排行榜文伯 */</p><p>  if(fp==NULL)/* 打開不成功給出錯誤提示 */</p><p><b>  

140、{</b></p><p>  printf("\nOpen the score sort file fail!end with any key!\n",DataFile);</p><p>  perror("Open file fail!");</p><p>  fflush(stdin);</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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論