




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機科學與技術學院計算機專業(yè)程序設計綜合課程設計報告(2011/2012學年 第一學期)學生姓名: 學生班級: 學生學號: 指導教師:2012年1月4日十占八、半小游戲制作人:靳蓉第一章 課程設計任務內容1第二章游戲說明2第三章 程序設計的目的和要求 33.1課程設計的目的33.2課程設計的實驗環(huán)境 33.3課程設計的預備知識 33.4課程設計的要求4第四章需求分析54.1引言54.2 玩法設計介紹 54.3 系統(tǒng)性能需求分析 5第五章程序詳細設計及流程圖7第六章 系統(tǒng)測試及調試結果 106.1系統(tǒng)測試106.2調試結果及截圖 10第七章軟件使用說明 13第八章課程設計總結及心得 14附錄I
2、參考文獻16附錄U程序代碼20課程設計綜合課程設計報告第一章課程設計任務內容根據(jù)所學C+知識編寫十點半小游戲程序代碼,游戲者能正常進行游戲,任務 列表如下:1. 開始游戲;2. 計算機對游戲者進行發(fā)牌;3. 游戲者根據(jù)自己的點數(shù)與10.5的差距以及對比電腦所拿牌的點數(shù)多少, 決定是 否要牌;4. 系統(tǒng)對游戲者和電腦拿到的牌進行比較;5. 判斷勝負;6. 游戲者跟電腦分出勝負后,電腦會提示游戲者是否繼續(xù)游戲,根據(jù)提示,按丫 或y繼續(xù)游戲,否則按任意健停止,退出游戲。通過C+語言課程設計,我們了解高級程序設計語言的結構,掌握基本的分析問題和利用計算機解決問題的能力,并且具備初步的高級語言程序設計能
3、力, 為今后 的計算機課程學習打下了堅實的基礎。第二章游戲說明該程序必須在Visual C+6.0環(huán)境中運行,程序具有操作簡單,無需組建等工序, 直接編譯、連接即可運行。操作簡單,根據(jù)提示即可完成游戲的全過程。第三章程序設計概述3.1課程設計的目的通過本項課程設計,可以培養(yǎng)獨立思考、綜合運用所學有關相應知識的能力,能 更好地鞏固高級語言程序設計課程學習的內容,掌握工程軟件設計的基本方法, 強化上機動手編程能力,闖過理論和實踐相結合的難關,更加了解c語言的好處和其 可用性。通過C語言課程設計,使學生了解高級程序設計語言的結構,掌握基本的分析 問題和利用計算機求解問題的能力,具備初步的高級語言程序
4、設計能力, 為后續(xù)各門 計算機課程的學習和畢業(yè)設計打下堅實的基礎。3.2課程設計的實驗環(huán)境該課程設計在設計與實驗過程中需要在 windows XP系統(tǒng)/windows Vista系統(tǒng)中 進行,程序設計要求在visual C+6.0平臺中進行,完成代碼的編寫、編譯、調試、 測試等工作。3.3課程設計的預備知識在知識方面此課程設計需要掌握 C語言的基本知識,熟練指針、鏈表等應用, 掌握數(shù)據(jù)庫等知識。在操作方面此課程設計需要清楚 windows XP系統(tǒng)/windows Vista系統(tǒng)的操作,熟 悉visual C+6.0編碼平臺。以此可以順利完成課程設計的編寫、編譯、調試、測試 等工作。程序設計綜
5、合課程設計報告3.4課程設計的要求C語言程序設計的主要任務是要求學生遵循軟件開發(fā)過程的基本規(guī)范,運用結構化程序設計的方法。所謂結構化程序就是用高級語言表示的結構化算法,結構化程序設計強調程序設計風格和程序結構的規(guī)范化提倡清晰的結構。這就要求 學生把一個復雜問題的求解過程分階段進行,每一個階段處理的問題都控制在人們容 易理解和處理的范圍內??梢圆捎米皂斚蛳?、逐步細化、模塊化設計、結構化編碼的 方法。同時為了更好地完成本次程序設計, 還要求學生仔細分析自己的選題,深刻了解 課題的設計背景,做好課題的需求分析,將項目要完成的功能分析清楚,劃分好功能 模塊,逐個實現(xiàn)。在實際編碼過程中,要做到思維嚴謹,
6、化繁為簡,代碼簡練。6第四章需求分析4.1引言這個小游戲操作簡單,雖然只是人機對玩,但能夠滿足平常的娛樂需求。按照游 戲的提示,輸入2,你可以看到游戲的介紹,在通俗易懂的介紹里面,你可以知道本 小游戲的基本玩法,老少咸宜。4.2玩法設計介紹按游戲提示,輸入1按回車進入游戲。首先出現(xiàn)在你面前的,是電腦隨機發(fā)給人和電腦的點數(shù),這里有個好處,人可以看到電腦的牌,然后你根據(jù)自己的點數(shù)與10.5的差距以及對比電腦所拿牌的點數(shù)多少, 決定是否要牌。按游戲的進一步提示,按1, 電腦會隨機再抽一張牌給你,屏幕上會顯示“你在拿到的點數(shù)為”,“目前總點數(shù)為”后面的就靠自己了,如果一開始你就按0,盡管你拿到的牌點數(shù)
7、會比電腦低, 但當電腦拿牌,一旦電腦所拿點數(shù)超過 10.5,你還是有機會勝利的!不過如果你一開始要牌就超過 10.5 了,那你就輸入給電腦了。當人跟電腦分出 勝負后,電腦會提示你是否繼續(xù)游戲,根據(jù)提示,按丫或y繼續(xù)游戲,否則按任意健停止,退出游戲。游戲玩法簡單,基本上能達到娛樂的目的,但由于時間問題以及自己所掌握知識的有限,游戲還不夠完美,希望在以后的學習中能夠做到更好。4.3系統(tǒng)性能需求分析1 技術可行性C語言是國際上廣泛流行的計算機高級語言,它適合作為系統(tǒng)描述語言,即可以用來編寫系統(tǒng)軟件,也可以編寫應用軟件。本游戲運用Win dows2000/XP以上的操作系統(tǒng),開發(fā)以Windows XP
8、為用戶的操作平臺,操作簡單,方便,界面友善、老少都可 以在閑暇時作為娛樂的十點半小游戲。2.經(jīng)濟可行性該系統(tǒng)所需要硬件設備,如服務器,PC機等,這些設備在性能上已經(jīng)有了很大的 提高,價格又相對較低,能夠滿足系統(tǒng)功能的要求。在軟件上,操作系統(tǒng)采用windows XP,系統(tǒng)的開發(fā)采用Visual C+ 6.0,它作為一種現(xiàn)代化的編程語言,提供完善的指 令控制語句等,同時滿足不同系統(tǒng)的技術要求,這些軟、硬件在游戲設計中已被大量 應用,技術上都比較成熟。3 操作可行性操作上只需要簡單的鍵盤操作即可。游戲之前只要讀懂游戲規(guī)則即可正常進行游 戲。第五章程序詳細設計及流程圖函數(shù)的流程圖是根據(jù)函數(shù)算法的內部結
9、構而畫,從清晰的函數(shù)流程圖可以更清12圖5.1主函數(shù)的流程圖程序設計綜合課程設計報告38子函數(shù)(void fa_card(int j,int l,int a52)電腦隨機發(fā)牌流程圖:int f,g;float k,d;程序設計綜合課程設計報告27圖5.2電腦隨機發(fā)牌流程圖子函數(shù)(void manget_card(int q,int w,int a52,int b52)人拿牌流程圖第六章系統(tǒng)測試及調試結果6.1系統(tǒng)測試完成是十點半小游戲系統(tǒng)的詳細設計后,接下來就到了系統(tǒng)測試階段。在這一階 段中,首先要完成代碼的編譯過程。代碼初步完成編寫后,要仔細地進行編譯,根據(jù) 系統(tǒng)提示錯誤,進行修改。注意代碼
10、的書寫規(guī)范,包括命名慣例、注釋、分隔和縮進 等。在這個過程中,我們要養(yǎng)成良好的程序編寫習慣,對編譯過程中經(jīng)常出現(xiàn)的錯誤 情況加以注意,為今后的程序編寫打下基礎。6.2調試結果及截圖正確操作的顯示結果(1)進入游戲后顯示的歡迎界面如圖 6.1所示:AAAAAAAAAAAAAflAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAflAAAAAAAAAAAAAAAAAAflAAAAAAAf f f We Ucoine to the garte ? f f7-歡迎進入十點半小游戲_ -開始游戲2、進入游戲說明= = S = rS *= = =- = *= = = =- = -= = =3
11、 = -:=f=Ea=制作人i靳蓉玩的開心圖6.1(2)按2進入游戲說明,顯示界面如圖6.2所示:游戲玩法:按二幵始游戲電腦先隨機發(fā)給人跟電腦一張牌接著人先根據(jù)牌點數(shù)的大小決定是否要牌然后電腦才要牌羣完牌后電腦幵始判斷電腦點數(shù)按丄進入游戲你會玩了嗎?讓我們一起進入十點半小游戲里面體驗一下吧人先要牌當點數(shù)超310-sBt電腦勝利芥入羣完牌.點數(shù)不SH10.5,到電腦要牌電腦點數(shù)超H10-S,人勝利圖6.2所示(3)按1開始游戲,其中人按1拿牌到超過10.5的顯示結果如圖6.3、圖6.4你得到的點數(shù)為:7-000000KB黠密鏘屠畫繰勢輸入除示不要瓦至聞I臣斗S魁咽器fc瑰#暫家fi I區(qū)II耳津
12、第尊韭越町 拠3*B圖6.3鑼勺:3000000址為:7.000000_俞人表示要,輸入0表示不要爾理在皐到的點數(shù)為=7.000000目刖總點數(shù)為=13.000000JO LI J.OS6 * * *是否還要熱豪玩按Y表示繼續(xù),按任意鍵結束游戲的點數(shù)為=3-000000為:6.080000?輸入1表示要,輸入回表示不要圖6.4(4)人按1要完牌,按0電腦取牌,并比較兩者得出勝負顯示的結果如圖圖6.6所示:6.5、禰得到的點數(shù)為= 5.000000電腦侍到的點數(shù)為=0.500000是否還要牌?輸入1表示要,輸入回表示不要你理在皐到的點數(shù)為汚.000000目刖總點數(shù) = 10,000000是否還要
13、牌7輸入1表示要,輸入D表示不要圖6.5:10.000000否述宴牌iua示要,輸入D表示不要000000你現(xiàn)在拿到的點數(shù)為:0 -500000i? BAiaSs ;輸入國表示不要na幽舸ns鍛岳揚K Of圖6.6(5)按任意鍵退出時的界面如圖6.7所示:是否還要繼續(xù)玩按Y表示繼續(xù),按任意犍結束游戲./迎下次在未,謝謝I內圖6.7第七章 軟件使用說明在wi ndows操作系統(tǒng)下打開該軟件,首先系統(tǒng)提示輸入文件名稱,如果該文件存 在,系統(tǒng)將進入命令界面;如果不存在,系統(tǒng)將提示用戶創(chuàng)建新文件并輸入要創(chuàng)建文 件的名稱。創(chuàng)建新文件后,按游戲提示,輸入1按回車進入游戲。首先出現(xiàn)在你面前的,是 電腦隨機發(fā)
14、給人和電腦的點數(shù)。按游戲的進一步提示,按1繼續(xù)進行。當人跟電腦分 出勝負后,電腦會提示你是否繼續(xù)游戲,根據(jù)提示,按丫或y繼續(xù)游戲,否則按任意健停止,退出游戲。第八章課程設計總結及心得從課程設計開始到上交,用了三個星期的時間,在段時間里,我每天都對著電腦, 思考著。由于自己對十點半這個小游戲的玩法有點了解, 所以這次課程設計我題目我 選了“十點半小游戲”。從代碼的構思到基本完成,用了我一周時間,由于剛開始時對C語言課本的內容不是很熟悉,由于時間不多,所以我花了兩天去看書,看完書后就到電腦上的 操作,通過練習熟悉內容,基本上掌握了了一些基本操作,然后就上網(wǎng)去找資料,接 著著手開始編寫代碼。我先在腦
15、海里回憶了幾遍了這個小游戲的玩法,具體步驟,大體上定下一個架構。由于這個游戲據(jù)自己所知的玩法是這樣的:首先莊家發(fā)牌,莊家人各一張牌, 然后人根據(jù)自己所發(fā)牌的點數(shù)先決定是否要多一張牌,直到要到超過10.5為止。當人要了牌,點數(shù)超過10.5后,莊家不需要再要牌就獲得勝利,游戲結束;當人要完 了牌,點數(shù)不超過10.5,到莊家要牌,如果莊家要完牌后點數(shù)超過了 10.5,人獲得勝 利,否則比較兩者誰的點數(shù),大的獲得勝利(這里不考慮當兩者都超過10.5這種情況)。根據(jù)游戲的玩法,為了游戲的方便,我忽略了一副牌的花色和顏色,用數(shù)字來 代表相應的牌,如J,Q,K分別用11,12,13表示,A用1表示,其余數(shù)字
16、210, 用相應的數(shù)字表示。由于一副牌中有 52張牌(除去王),每一種牌都有四張,因些我 把一副牌用一個數(shù)組a52表示,里面的元素用1,1,1,1, 2, 2,2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13表示,每種牌所 代表的點數(shù)為:A代表1點,由于J, Q, K代表0.5,所以11, 12, 13代表的點數(shù) 為 0.5。根據(jù)這種想法,我把代碼的
17、主函數(shù)分為了這樣幾部分:一,首先由電腦隨機 發(fā)牌,人一張,電腦一張(電腦不能拿到人拿到的牌,同樣在以后的發(fā)牌中都不能要 到同樣一張牌),以點數(shù)的形式顯示在屏幕上,這里作為一個電腦發(fā)牌的子函數(shù); 二, 人開始要牌,由電腦隨機再發(fā)牌,直到人不要牌為止,這里作為一個人拿牌的子函數(shù); 三,人拿完牌后,到電腦拿牌,直到電腦拿牌超過10.5為止,這里作為一個電腦拿牌 的了函數(shù);四,在主函數(shù)里進行比較;整個代碼的架構基本完成。接著就是代碼部分,由于要用到隨機函數(shù)。通過個課程設計,可以學得新的函數(shù),新的知識,收益不錯。還有,由于自己定義的這副牌不分花色顏色,只代表點數(shù),為 了避免人和電腦在各自要牌中都抽到同一
18、張牌或同一張牌被抽到多次,所以函數(shù)里要用到標記的方法,用到了指針,通過標記,達到不重復抽取牌的目的;另外,還用到 了多種循環(huán)語句,for, while,還有if, break等語句。在代碼編寫的過程中,也遇到很多 問題,例如在電腦隨機發(fā)給人和電腦一張牌時,由于時間極短,隨機發(fā)到的牌會是相同的點數(shù),因此在人與電腦共同隨機獲得牌這間至少要有一秒的延遲,由于沒用到delay函數(shù),最后在同學的幫助下,通過兩個空循環(huán)來實現(xiàn)時間的延遲,效果顯著。 雖然遇到的問題還不止這些,但通過這次課程設計,在遇到問題,解決通過思考,查 找資料,問老師或同學,至原終把問題解決,經(jīng)過這兩星期的經(jīng)歷,真的學到了不少 東西。同
19、時,通過問老師或同學,可以學習他們的編程技巧,他們的編程思路,解決 問題的方法等等,可謂受益非淺。附錄I參考文獻【1】譚浩強v,北京清華大學出版社.2007.07。【2】譚浩強C+程序設計 ,清華大學出版社2004年6月第一版。附錄U程序代碼/*課程設計的題目為:十點半小游戲*/#include stdio.h#in cludeiostream#i ncludestdlib.h#i ncludetime.hstart()/*游戲界面*/prin tf(n ”);prin tf(n ”);printf(”AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
20、AAAAAAAAAAAAAAAAAAAAAAAAAAAn ”);printf(n);printf(n);printf(!Wellcome to the game! n);printf(n);printf(n);prin tf(歡迎進入十點半小游戲n);printf(n);printf( = - = - = - = - = - = n);printf(n);printf(1、開始游戲n);printf(n);prin tf(2、進入游戲說明n);printf(n);printf(n);printf(”AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
21、AAAAAAAAAAAAAAAAAAAAAAAAAn ”);prin tf(制作人:靳蓉n);prin tf(玩的開心n);return 0;jieshao()prin tf(游 戲 介 紹nnn);printf(歡迎大家來到十點半小游戲,這是一個簡單易玩的小游戲,老少適合);printf(”n);printf(n);printf(游戲玩法:nn);printf(按1開始游戲nn);printf(電腦先隨機發(fā)給人跟電腦一張牌,接著人先根據(jù)牌點數(shù)的大小決定是否要牌,然后電腦才要牌n);printf(拿完牌后電腦開始判斷:nn);printf(1.人先要牌,當點數(shù)超過10.5時,電腦勝利.nn);
22、printf(2.人拿完牌,點數(shù)不超過10.5,到電腦要牌,電腦點數(shù)n也不超過10.5,此時誰牌的總點數(shù)大誰勝利nn);printf(3.人拿完牌,點數(shù)不超過10.5,到電腦要牌,電腦點數(shù)超過10.5,人勝利nn);printf(你會玩了嗎?讓我們一起進入十點半小游戲里面體驗一下吧n);prin tf(按1進入游戲n);return 0;float man,compu,man1,com1;/*聲明全局變量,man,com既是第一次人跟電腦拿牌也是第一次人跟電腦拿牌的總數(shù)*/void main()/* 主函數(shù) */void fa_card(int j,int l,int a52);/* 聲明 f
23、a_card 函數(shù) */void manget_card(int q,int w,int a52,int b52);/* 聲明 manget_card 函數(shù) */void compuget_card(int a52,int b52);/* 聲明 compuget_card 函數(shù) */int j1=0,l1=0;/*對電腦隨機發(fā)給人和電腦的第一張牌點數(shù)賦初值,為0*/int s, x;char p;int a52=1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11
24、,11,12,12,12,12,13,13,13,13;/* 定義副牌,不分花色, 只代表點數(shù)*/int b52=0;/*定義一個數(shù)組,用來標記牌中已被選過牌*/int *pa,*pb,*pj1,*pl1;/*定義指針,分別用來指向a,b數(shù)組,以及電腦隨機發(fā)給人和電腦的第一 張牌*/pa=a;pj1= &j1;pl1= &I1;pb=b;start();/*調用游戲開始界面函數(shù)*/for(x=0;x=0.5&man =1 &ma n=1 &compu compu)prin tf(you win!n ”);else if(ma n=compu)printf(no lose no winn ”);else prin tf(you lose!n);printf(是否還要繼續(xù)玩,按Y表示繼續(xù),按任意鍵結束游戲。n);/*詢問是否執(zhí)行新一輪的游戲*/for(p=0;p10)/*定義牌所代表的點數(shù)*/man=0.5;elseman=k;printf(你得到的點數(shù)為:%fn,man);for(f=0;f10000;f+)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機基礎知識沖刺試題及答案要點
- 首次護理評估護理單填寫方法
- 胃炎的護理宣教
- 智齒拔除護理配合
- 生物醫(yī)藥產(chǎn)品CEP認證代理服務與產(chǎn)品標準協(xié)議
- 知識產(chǎn)權備案與版權登記管理協(xié)議
- 初二班主任多元評價體系計劃
- 高科技國際帆船賽事氣象監(jiān)測系統(tǒng)租賃與氣象信息分析服務合同
- 語文下冊教學計劃與課堂互動設計
- 跨國企業(yè)人才引進與培訓合同
- 康復治療技術運動療法課件
- 高等數(shù)學上冊ppt課件完整版
- 電力建設熱工熱控作業(yè)指導書
- 自主探究式教學活動模式結題報告
- 甲醇及制氫裝置預試車方案
- 110kV升壓站土建監(jiān)理實施細則
- 分子的立體構型
- GB 25595-2018 食品安全國家標準 乳糖(高清版)
- 部編版七年級語文下冊文言文專項練習
- 供應商社會準則符合性自審問卷
- 醫(yī)院禁止胎兒性別鑒定的承諾書和責任書
評論
0/150
提交評論