六子棋課程設(shè)計(jì)報(bào)告_第1頁
六子棋課程設(shè)計(jì)報(bào)告_第2頁
六子棋課程設(shè)計(jì)報(bào)告_第3頁
六子棋課程設(shè)計(jì)報(bào)告_第4頁
六子棋課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 計(jì)算機(jī)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告 (2011/2012學(xué)年 第一學(xué)期)學(xué)生姓名: 學(xué)生班級: 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 2011年12月30號(hào) 六 子棋目錄 TOC o 1-3 h z u HYPERLINK l _Toc282635409 第一章課程設(shè)計(jì)目的和要求 PAGEREF _Toc282635409 h 1 HYPERLINK l _Toc282635410 1.1目的 PAGEREF _Toc282635410 h 11.2 HYPERLINK l _Toc282635411 要求 PAGEREF _Toc282635411 h 1 HYPERLINK l _

2、Toc282635412 第二章 課程設(shè)計(jì)任務(wù)內(nèi)容 PAGEREF _Toc282635412 h 2 HYPERLINK l _Toc282635413 第三章 詳細(xì)設(shè)計(jì)說明 PAGEREF _Toc282635413 h 3 HYPERLINK l _Toc282635414 3.1模塊描述 PAGEREF _Toc282635414 h 3 HYPERLINK l _Toc282635415 3.2性能 PAGEREF _Toc282635415 h 3 HYPERLINK l _Toc282635416 3.3輸入項(xiàng) PAGEREF _Toc282635416 h 3 HYPERLIN

3、K l _Toc282635417 3.4輸出項(xiàng) PAGEREF _Toc282635417 h 3 HYPERLINK l _Toc282635418 3.5流程邏輯 PAGEREF _Toc282635418 h 3 HYPERLINK l _Toc282635420 3.6 測試計(jì)劃5 HYPERLINK l _Toc282635421 第四章 軟件使用說明10 HYPERLINK l _Toc282635422 第五章 課程設(shè)計(jì)心得與體會(huì)11 HYPERLINK l _Toc282635423 附錄1:參考文獻(xiàn)13 HYPERLINK l _Toc282635424 附錄2:程序清單1

4、4 課程設(shè)計(jì)目的和要求1.1目的C+課程設(shè)計(jì)的主要目的是讓同學(xué)們進(jìn)一步加深對C+語言和運(yùn)用的了解,通過實(shí)踐來逐步掌握c+編譯工具的使用。同時(shí)可以鞏固已經(jīng)學(xué)習(xí)過的C+理論知識(shí);進(jìn)一步學(xué)習(xí)程序設(shè)計(jì)、程序調(diào)試的能力。通過課程設(shè)計(jì)的訓(xùn)練,學(xué)生應(yīng)該能夠了解程序設(shè)計(jì)的基本開發(fā)過程,掌握編寫、調(diào)試和測試C+語言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法。掌握并且熟練應(yīng)用C+程序設(shè)計(jì)中所學(xué)知識(shí)。掌握函數(shù)功能的劃分方法,并運(yùn)用此方法解決問題。學(xué)會(huì)程序測試方案的制定,并且實(shí)現(xiàn)程序的測試。通過此次實(shí)踐,積累經(jīng)驗(yàn),提高分析和解決問題的能力。1.2要求基本要求:1.用c+編寫一個(gè)小游戲; 2.游戲中要有真正屬于自

5、己的東西;3.清楚所開發(fā)系統(tǒng)軟件的各個(gè)相關(guān)功能,以便順利開發(fā)系統(tǒng)軟件;4.設(shè)計(jì)完成的軟件要便于操作和使用;5.對自己所設(shè)計(jì)的程序進(jìn)行調(diào)試,并不斷完善;6.在設(shè)計(jì)過程中熟練掌握軟件編程的相關(guān)知識(shí);7.詳細(xì)體會(huì)并記錄相關(guān)過程,并將心得體會(huì)寫在課程設(shè)計(jì)報(bào)告中;8.設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告。 第二章 課程設(shè)計(jì)任務(wù)內(nèi)容六子棋游戲改編自五子棋,該游戲可以鍛煉人們的思維和觀察能力。通過所學(xué)的C+編程語言知識(shí),在Visual C+的語言環(huán)境中編寫程序,以實(shí)現(xiàn)以下內(nèi)容:完成六子棋游戲(人人對戰(zhàn)),使該游戲能夠?qū)崿F(xiàn)如下功能:玩家可以根據(jù)自己需要選擇開始游戲、查看規(guī)則和退出游戲;玩家根據(jù)自己的需要選擇游戲規(guī)則;顯

6、示玩家選擇落子位置后的棋盤(顯示落子位置);判斷是否結(jié)束游戲并且判斷勝利方是誰;結(jié)束游戲并顯示游戲結(jié)果(勝利方是誰)、退出游戲; 此六子棋與五子棋的不同不僅在于棋子數(shù)目的多少,此游戲中還增加了另外一種新的游戲規(guī)則供玩家選擇。第三章 詳細(xì)設(shè)計(jì)說明 TOC o 1-3 h z u 3.1模塊描述本程序比較簡單也比較容易理解,沒有分塊。3.2性能該程序操作比較簡單,可直接編譯、連接、運(yùn)行。操作簡單,根據(jù)提示即可完成游戲的全過程。3.3輸入項(xiàng) 玩家根據(jù)菜單提示選擇自己要選擇的項(xiàng)(開始游戲、查看規(guī)則、結(jié)束游戲、以規(guī)則一開始、以規(guī)則二開始),玩家需要根據(jù)提示(系統(tǒng)提示哪個(gè)玩家落子),輪流選擇自己落子的位置

7、。3.4輸出項(xiàng)每位玩家落子前系統(tǒng)提示由哪位玩家落子,當(dāng)玩家輸入落子位置后程序以重新輸出棋盤的方式顯示出玩家落子的位置, 有一方滿足游戲結(jié)束條件時(shí)輸出勝利方。3.5流程邏輯流程圖1如下: 開始選擇菜單 1 退出游戲查看規(guī)則 3 2 玩游戲顯示規(guī)則 選擇玩法 1 2 游戲開始 游戲開始 玩家一落子 玩家一落子 結(jié)束判斷是否結(jié)束判斷是否結(jié)束判斷是否結(jié)束判斷是否結(jié)束玩家一勝利、玩家一勝 玩家二落子 玩家二落子 是 是 否 否 否 否 玩家二勝 玩家二勝 是 是3.6測試計(jì)劃開始菜單截圖:規(guī)則選擇菜單:顯示棋盤:顯示落子位置(玩家一落子): 顯示落子位置(玩家二落子):以規(guī)則一結(jié)束: 以規(guī)則二結(jié)束:選擇

8、查看規(guī)則:選擇退出游戲 第四章 軟件使用說明 本游戲需要在Visual C+6.0環(huán)境中運(yùn)行,程序具操作簡單,將源代碼粘貼到Visual C+6.0中可直接編譯、連接、運(yùn)行2。操作非常簡單,根據(jù)提示即可完成游戲的全過程。 課程設(shè)計(jì)心得體會(huì) 經(jīng)過一個(gè)學(xué)期對c+程序設(shè)計(jì)的學(xué)習(xí),我學(xué)習(xí)到了基本的理論知識(shí),了解到了c+語言程序設(shè)計(jì)的思想,這些知識(shí)都為我的課程實(shí)踐和進(jìn)一步學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。 在為期三周的c+課程設(shè)計(jì)中,我體會(huì)頗多,學(xué)到了很多東西。同時(shí)也加強(qiáng)了我對c+程序設(shè)計(jì)這門課程的認(rèn)識(shí),并且復(fù)習(xí)了自己以前學(xué)過的許多知識(shí)。這些都使得我對計(jì)算機(jī)語言學(xué)習(xí)有了更深入的認(rèn)識(shí)!通過這次課程設(shè)計(jì)我收獲頗豐,我相

9、信會(huì)為自己以后的學(xué)習(xí)和工作帶來很大的好處。 當(dāng)剛開始知道課程設(shè)計(jì)是要干什么的時(shí)候自己就懵了,覺得這是個(gè)根本不可能完成的任務(wù),但是不得不做。靜下心來之后開始找題目,找到題目之后開始找材料但是發(fā)現(xiàn)讓自己編寫一個(gè)程序根本無從下手。于是從網(wǎng)上下了很多各種類型的小游戲的源代碼,從里面學(xué)習(xí)自己該怎么做,怎么實(shí)現(xiàn)每一步。于是開始借鑒這那些成品來一步一步的編寫自己需要實(shí)現(xiàn)的功能,發(fā)現(xiàn)自己所學(xué)到的那些東西根本是不夠用的。然后一個(gè)一個(gè)功能的實(shí)現(xiàn)最后組合起來完成了現(xiàn)在自己的作品。老師要求我們的作品要有新意要與已有的那些東西有不同的地方,所以,我們還要想一些不同的游戲規(guī)則并且實(shí)現(xiàn)它們。經(jīng)過不懈的努力終于完成了。 雖然

10、這次課程設(shè)計(jì)是在參考其他原有程序的基礎(chǔ)之上進(jìn)行的,但是我覺得對自己是一個(gè)挑戰(zhàn)和鍛煉。我很欣慰自己能再程序中加入自己的想法和有關(guān)程序內(nèi)容,也就是對原有的程序進(jìn)行了一番改進(jìn),并有創(chuàng)新。但是我覺得自己的創(chuàng)新還是不夠典型,不算很滿意。另外由于時(shí)間的緊迫和對知識(shí)的了解不夠廣泛,造成了游戲中還有很多不足的地方,功能上還不夠完善。以后我會(huì)繼續(xù)努力,大膽創(chuàng)新,爭取能編寫出真正屬于自己的程序。這次課程設(shè)計(jì)讓我充分認(rèn)識(shí)到了自己的不足,認(rèn)識(shí)到自己動(dòng)手能力的不夠,也認(rèn)識(shí)到實(shí)踐對學(xué)習(xí)編程的重要性。我會(huì)在以后的學(xué)習(xí)中更加努力鍛煉自己提高自己。總之,通過這次課程設(shè)計(jì)中基本運(yùn)用到了我們所學(xué)的所有知識(shí)點(diǎn),這樣不僅加深了對 C+

11、的各個(gè)知識(shí)點(diǎn)有了更深的理解,而且從中我也感受到了編寫這樣的大程序給我?guī)淼臒o比的成就感,在這次課程設(shè)計(jì)中培養(yǎng)了我獨(dú)立工作的能力,樹立了對自己工作能力的信心,相信會(huì)對今后的學(xué)習(xí)工作生活有非常重要的影響。而且大大提高了動(dòng)手的能力,使我充分體會(huì)到了在創(chuàng)造過程中的探索的艱難和成功的喜悅。雖然這個(gè)項(xiàng)目還不是很完善,但是在設(shè)計(jì)過程中所學(xué)到的東西是這次課程設(shè)計(jì)的最大收獲和財(cái)富使我終身受益。附錄1:參考文獻(xiàn)1譚浩強(qiáng)著.C+程序設(shè)計(jì).北京:清華大學(xué)出版社,20042譚浩強(qiáng)著.C+程序設(shè)計(jì)題解與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2004附錄2:程序清單#include using namespace std;con

12、st char outstr114=,;void choice_sh1();/顯示選擇項(xiàng)(開始游戲、查看規(guī)則、結(jié)束游戲)void choice_sh2();/顯示選擇項(xiàng)(以規(guī)則一開始、以規(guī)則二開始)void game_ch();/游戲規(guī)則選擇void game_st1();/以游戲規(guī)則一開始游戲void game_st2();/以游戲規(guī)則二開始游戲void rule_sh();/顯示游戲規(guī)則void player2();/玩家二落子函數(shù)int panduan1(int,int,int);/以規(guī)則一開始游戲時(shí)游戲結(jié)束的條件int panduan2(int,int,int);/以規(guī)則二開始游戲時(shí)游

13、戲結(jié)束的條件int choice1,choice2;int pl1515;int c,d;int a1515=0,1,1,1,1,1,1,1,1,1,1,1,1,1,2, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,

14、5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 6,7,7,7,7,7,7,7,7,7,7,7,7,7,8;int main()/主函數(shù) 以循環(huán)和switch語句的套用來實(shí)現(xiàn)做出正確的選擇當(dāng)、選擇查看規(guī)則時(shí)可以重新選擇開始游戲、退出游戲do/以循環(huán)的形式實(shí)現(xiàn)當(dāng)選擇查看規(guī)

15、則時(shí)可以重新選擇開始游戲、退出游戲choice_sh1();switch (choice1) case 1: game_ch();break;/當(dāng)選擇是1時(shí)開始游戲 case 2: rule_sh();break;/當(dāng)選擇是2時(shí)查看規(guī)則 case 3: system(pause);/當(dāng)選擇是3時(shí)退出游戲while(choice1=2);return 0;void choice_sh1()/顯示選擇菜單一coutendl;coutendl;coutendl;cout c+課程設(shè)計(jì)作業(yè) 六子棋e(cuò)ndl;coutendl;coutendl;cout 作者:郭春 計(jì)算機(jī)102001班endl;cout

16、endl; coutendl;cout*endl; coutendl;cout 選擇 開始游戲endl; coutendl;cout 選擇 規(guī)則介紹endl; coutendl;cout 選擇 退出游戲endl; coutendl;cout*endl; coutendl; coutendl;do/當(dāng)輸入不為1、2、3中的一個(gè)時(shí)重新輸入 coutchoice1;while(choice1!=1 & choice1!=2 & choice1!=3);void game_ch()/游戲規(guī)則選擇system(cls);/清屏 choice_sh2();switch (choice2) case 1:

17、game_st1();break;/當(dāng)選擇是1時(shí)以規(guī)則一開始游戲 case 2: game_st2();break;/當(dāng)選擇是2時(shí)以規(guī)則二開始游戲 void choice_sh2()/顯示規(guī)則選擇的菜單coutendl; coutendl; coutendl; coutendl; coutendl; coutendl;cout*endl; coutendl;cout 選擇 以規(guī)則一開始游戲endl;coutendl;coutendl;cout 選擇 以規(guī)則二開始游戲endl;coutendl;cout*endl; coutendl;do/當(dāng)選擇不為1、2中的一個(gè)時(shí)要重新輸入選擇 coutcho

18、ice2;while(choice2!=1 & choice2!=2);void rule_sh()/顯示游戲規(guī)則system(cls); coutendl; coutendl; coutendl;cout 游戲規(guī)則:endl; coutendl; coutendl;cout 本游戲有兩種規(guī)則供選擇endl;cout 選擇規(guī)則一時(shí):endl;cout 當(dāng)其中一方的棋子有六子相連的時(shí)候游戲結(jié)束endl; cout 輸出游戲結(jié)果,程序結(jié)束endl;cout 選擇規(guī)則二時(shí):endl; cout 當(dāng)其中一方的棋子六子排成一排并且每兩個(gè)子中間隔著空位或?qū)Ψ狡遄訒r(shí)游;cout 戲結(jié)束endl;cout 輸

19、出游戲結(jié)果,程序結(jié)束;void game_st1()/以規(guī)則一開始游戲 system(cls); int i,j,x,y; cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; /畫棋盤 coutendl; coutxy) if(plxy=0 & x=0 & x=0 & y=14)/判斷輸入的落子位置是否合法 axy=9; plxy=1; system(cls); cout 0 1 2 3 4 5 6 7 8 9

20、 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; coutendl;/畫出棋盤顯示落子位置 if(panduan1(x,y,1)=0)/判斷是否構(gòu)成結(jié)束游戲的條件 player2(); if(panduan1(c,d,2)=0)/判斷是否構(gòu)成結(jié)束游戲的條件 cout請player1輸入要落子的位置:; else coutplayer2獲勝endl;break; /輸出玩家二獲勝 跳出循環(huán)結(jié)束游戲 else coutplayer1獲勝endl;break;/

21、輸出玩家一獲勝 跳出循環(huán)結(jié)束游戲elsecout輸入錯(cuò)誤請重新輸入;/當(dāng)輸入的落子位置不合法時(shí)重新輸入void game_st2()/以規(guī)則二開始游戲 system(cls); int i,j,x,y; cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; coutendl;/畫棋盤 coutxy) if(plxy=0 & x=0 & x=0 & y=14)/判斷輸入的落子位置是否合法 axy=9; plxy=1

22、; system(cls); cout 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4endl; for(i=0;i=14;i+) if(i!=0) coutendl; couti%10; for(j=0;j=14;j+) coutoutstraij; coutendl;/畫出棋盤顯示落子位置 if(panduan2(x,y,1)=0)/判斷是否構(gòu)成結(jié)束游戲的條件 player2(); if(panduan2(c,d,2)=0)/判斷是否構(gòu)成結(jié)束游戲的條件 cout請player1輸入要落子的位置:; else coutplayer2獲勝endl;break; /輸出玩家二獲勝 跳出循環(huán)結(jié)束游戲 else coutplayer1獲勝endl;break; /輸出玩家一獲勝 跳出循環(huán)結(jié)束游戲elsecout輸入錯(cuò)誤請重新輸入;/當(dāng)輸入的落子位置不合法時(shí)重新輸入int panduan2(int x,int y,int sum ) /以規(guī)則二開始游戲時(shí)判斷是否構(gòu)成結(jié)束游戲的條件 int m,n,b,c,lianzi=0; for(m=-1;m=1;m+) for(n=-1;n=1;n+) if(m!=0 | n!=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論