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

下載本文檔

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

文檔簡介

1、<p>  C語言程序設(shè)計(jì) 課程設(shè)計(jì)</p><p>  題目: 黑白棋 </p><p>  課程設(shè)計(jì)(報告)任務(wù)及評語</p><p> 學(xué) 號學(xué)生姓名專業(yè)班級</p><p> 程序設(shè)計(jì)(報告)題目黑白棋</p><p> 程序設(shè)計(jì)(報告)任務(wù)程序設(shè)計(jì)的任務(wù)與要求:(1)掌握C

2、語言編程的基礎(chǔ)知識。(2)較熟練地編寫C語言應(yīng)用程序。(3)了解C語言的常用標(biāo)準(zhǔn)函數(shù)、編程技巧、異常處理。(5)聯(lián)系已學(xué)過的內(nèi)容,鞏固所學(xué)的理論,增強(qiáng)獨(dú)立工作能力。(6)通過設(shè)計(jì)主要使學(xué)生有一個獨(dú)立編寫程序的過程,對理論學(xué)習(xí)及動手能力都有一個很大的提高。(7)通過本次設(shè)計(jì),進(jìn)一步培養(yǎng)學(xué)生熱愛專業(yè)的思想,同時對本專業(yè)綜合素質(zhì)的提高起一個積極的推動作用。課程設(shè)計(jì)過程中,要嚴(yán)格遵守實(shí)踐環(huán)節(jié)的時間安排,聽從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,記

3、錄實(shí)習(xí)日記,規(guī)范完整地撰寫出課程設(shè)計(jì)報告。</p><p> 指導(dǎo)教師評語及成績成績: 指導(dǎo)教師簽字: 年 月 日</p><p><b>  目 錄</b></p><p>  第1章 課程設(shè)計(jì)的目的與要求1</p><p> 

4、 1.1 課程設(shè)計(jì)目的1</p><p>  1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境1</p><p>  1.3 課程設(shè)計(jì)的預(yù)備知識1</p><p>  1.4 課程設(shè)計(jì)要求1</p><p>  第2章 課程設(shè)計(jì)內(nèi)容2</p><p>  2.1程序功能介紹2</p><p>  2.2

5、程序整體設(shè)計(jì)說明2</p><p>  2.2.1設(shè)計(jì)思路2</p><p>  2.2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明3</p><p>  2.2.3程序結(jié)構(gòu)(流程圖)4</p><p>  2.2.4各模塊的功能及程序說明6</p><p>  2.2.5程序結(jié)果6</p><p>

6、  2.3程序源代碼及注釋6</p><p>  第3章 課程設(shè)計(jì)總結(jié)15</p><p><b>  參考資料 16</b></p><p>  第1章 課程設(shè)計(jì)的目的與要求</p><p>  1.1 課程設(shè)計(jì)目的</p><p>  本課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)重要的實(shí)踐性環(huán)節(jié)之

7、一,是在學(xué)生學(xué)習(xí)完《程序設(shè)計(jì)語言(C)》課程后進(jìn)行的一次全面的綜合練習(xí)。本課程設(shè)計(jì)的目的和任務(wù): </p><p>  1. 鞏固和加深學(xué)生對C語言課程的基本知識的理解和掌握 </p><p>  2. 掌握C語言編程和程序調(diào)試的基本技能 </p><p>  3. 利用C語言進(jìn)行基本的軟件設(shè)計(jì)</p><p>  4. 掌握書寫程序設(shè)計(jì)說明

8、文檔的能力</p><p>  5. 提高運(yùn)用C語言解決實(shí)際問題的能力</p><p>  1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境</p><p>  硬件要求能運(yùn)行Windows 2000/XP操作系統(tǒng)的微機(jī)系統(tǒng)。C語言程序設(shè)計(jì)及相應(yīng)的開發(fā)環(huán)境。</p><p>  1.3 課程設(shè)計(jì)的預(yù)備知識</p><p>  熟悉C語言及C

9、語言開發(fā)工具。</p><p>  1.4 課程設(shè)計(jì)要求</p><p>  1. 分析課程設(shè)計(jì)題目的要求2. 寫出詳細(xì)設(shè)計(jì)說明3. 編寫程序代碼,調(diào)試程序使其能正確運(yùn)行4. 設(shè)計(jì)完成的軟件要便于操作和使用5. 設(shè)計(jì)完成后提交課程設(shè)計(jì)報告</p><p>  第2章 課程設(shè)計(jì)內(nèi)容</p><p><b>  2.1程序功

10、能介紹</b></p><p>  本游戲只有在可以吃到對方棋子的方格里落子</p><p>  吃子規(guī)則:采用夾吃的原則,左圖用紅色標(biāo)記的是黑方可落子的位置。當(dāng)黑方落子之后,則夾在兩黑子中間的白子都將變?yōu)楹谧?。右圖是落子后的棋盤布局,藍(lán)色標(biāo)記的是白方可落子的位置。夾子的方向包含:水平、豎直、斜對角。</p><p>  1.點(diǎn)擊“新游戲”,將從新初始化

11、棋局。</p><p>  2.  打開游戲存檔,默認(rèn)是.bwc文件</p><p>  3.  保存當(dāng)前游戲,默認(rèn)擴(kuò)展名為.bwc</p><p>  4.  后退一步,即悔棋</p><p>  5. 前進(jìn)一步,只有在前面的操作存在后退的基礎(chǔ)上,該按鈕才有效。</p>

12、<p>  6.“與或圖”按鈕,當(dāng)選擇與或法與電腦博弈時會顯示與或圖。</p><p>  7.點(diǎn)擊設(shè)置按鈕后,會出現(xiàn)以下對話框,可以修改設(shè)置,點(diǎn)擊確定按鈕后生效。</p><p>  2.2程序整體設(shè)計(jì)說明</p><p>  本程序設(shè)計(jì)為人與人對弈,一方執(zhí)黑棋,一方執(zhí)白棋,輪流走。棋盤為8乘8格,初始狀態(tài)在棋盤中央交叉排放黑白棋子各兩枚,為統(tǒng)計(jì)棋子

13、個數(shù),走一個棋子計(jì)一分,白棋先走。每個棋手下棋時,擺子的位置必須是以自己的棋子能包圍住對方一個或多個棋子,被包圍的對方棋子將變成自己的棋子。包圍的方向可以是上下左右以及左右斜線共8個方向,只要能連成一條線即可。當(dāng)輪到一個棋手?jǐn)[子,而他沒有可以包圍對方棋子的位置時,他必須停步,讓對方走棋,直到他可以走為止。當(dāng)棋盤上有一方的棋子為0或下滿64格,游戲結(jié)束,棋子少者輸。</p><p><b>  2.2.1

14、設(shè)計(jì)思路</b></p><p>  從程序表面看,這是一個二維平面圖,所以數(shù)據(jù)用二維數(shù)組來表示,數(shù)組兩個下標(biāo)可以表示棋盤上的位置,數(shù)組元素的值代表棋格上的狀態(tài),共有三種情況,分別是0代表空格,1代表白棋,2代表黑棋。這樣程序的主要工作是接收棋手按鍵操作,棋手用Up、Down、Left、Right控制光標(biāo)移動,回車鍵表示落子。如果無棋可走則顯示停步信息。一旦接收到回車鍵或空格鍵,說明棋手落子,先判斷是

15、否是有效位置,也就是說已經(jīng)有棋子的位置不能重疊落子,然后再判斷該位置能否吃掉對方的棋子(根據(jù)黑白棋的游戲規(guī)則,只能將棋子落子能吃掉對方棋子的位置上),如果條件滿足則在該位置落子,落子時執(zhí)行這樣幾個步驟,先調(diào)用畫棋子函數(shù),將棋盤的相應(yīng)位置上畫上棋子,再調(diào)用吃棋子函數(shù),將對手的棋子變成自己顏色的棋子,然后根據(jù)吃掉對手棋子的個數(shù),給自己加上相應(yīng)的分?jǐn)?shù)和給對手減去相應(yīng)的分?jǐn)?shù),再將數(shù)組中的相應(yīng)元素賦值,標(biāo)志該位置已經(jīng)落子,最后將落子的權(quán)限交給對手

16、。</p><p>  2.2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明 </p><p>  在主函數(shù)中,通過調(diào)用繪制棋盤、棋手對戰(zhàn),判斷棋盤變化、改變棋子顏色等函數(shù)的調(diào)用來實(shí)現(xiàn)主函數(shù)的相應(yīng)的功能。 </p><p><b>  繪制棋盤和初始棋子</b></p><p><b>  rawQp</b></

17、p><p>  棋手對戰(zhàn) playtoplay</p><p>  判斷棋盤變化(能否分出勝負(fù))</p><p>  <QpChange></p><p><b>  計(jì)算棋手的成績</b></p><p><b>  輸出勝利者信息</b></p&g

18、t;<p><b>  Y</b></p><p><b>  1</b></p><p><b>  <DrawQp></b></p><p><b>  繪制棋盤和初始棋子</b></p><p>  在界面上繪制320*32

19、0的棋盤,并在棋盤中繪制8*8的格子,初始棋子</p><p><b>  2</b></p><p><b>  <SetPlay></b></p><p>  設(shè)置棋子第一次的顏色</p><p>  先走棋者持白子,后走棋黑子,每次交替</p><p>&l

20、t;b>  3</b></p><p>  <Playtoplay></p><p><b>  人人對戰(zhàn)函數(shù)</b></p><p>  倆棋手交替走棋,定義鍵盤操作等</p><p><b>  4</b></p><p>  <Mov

21、eColor></p><p><b>  恢復(fù)原來棋盤狀態(tài)</b></p><p>  棋子由初始位置到落子位置的路徑不改變顏色</p><p><b>  5</b></p><p>  <QpChange></p><p><b>  判斷棋

22、盤的變化</b></p><p><b>  改變棋子的顏色</b></p><p>  走棋后判斷棋盤的變化情況,根據(jù)變化情況判斷是否可以輸出分?jǐn)?shù)</p><p><b>  6</b></p><p><b>  <DoScore></b></

23、p><p><b>  處理分?jǐn)?shù)</b></p><p>  根據(jù)棋盤上旗子的多少進(jìn)行分?jǐn)?shù)的處理</p><p>  2.2.3程序結(jié)構(gòu)(流程圖)</p><p> ?。?)落棋位置判斷:</p><p><b> ?。?)輸出成績:</b></p><p&g

24、t; ?。?)輸出最后的勝利者結(jié)果:</p><p>  2.2.4各模塊的功能及程序說明</p><p>  落棋位置的判斷模塊:判斷落子后棋盤的變化,判斷棋手的落棋位置和次數(shù),兩方交換走棋。</p><p>  成績輸出模塊:判斷輸出哪個棋手的分,在不同的位置輸出,清空成績,判斷哪方勝利。</p><p>  輸出勝利者信息模塊:開始判斷

25、最后的結(jié)果,將兩人分?jǐn)?shù)分別輸出。</p><p><b>  2.2.5程序結(jié)果</b></p><p>  一方執(zhí)黑棋,一方執(zhí)白棋,輪流走棋,每方都試圖在游戲結(jié)束前讓自己棋子的數(shù)目多于對方。按鍵盤上的方向鍵可以上下左右移動棋子,按回車鍵可以擺放棋子。下到最后誰的棋子多,誰贏。</p><p>  2.3程序源代碼及注釋</p>

26、<p>  [size=12px]#include "graphics.h" /*圖形系統(tǒng)頭文件*/ </p><p>  #define LEFT 0x4b00 /*光標(biāo)左鍵值*/ </p><p>  #define RIGHT 0x4d00 /*光標(biāo)右鍵值*/ </p><p>  #define DOWN 0x5000 /*光標(biāo)

27、下鍵值*/ </p><p>  #define UP 0x4800 /*光標(biāo)上鍵值*/ </p><p>  #define ESC 0x011b /* ESC鍵值*/ </p><p>  #define ENTER 0x1c0d /* 回車鍵值*/ </p><p>  int a[8][8]={0},key,score1,score2

28、;/*具體分?jǐn)?shù)以及按鍵與存放棋子的變量*/ </p><p>  char playone[3],playtwo[3];/*兩個人的得分轉(zhuǎn)換成字符串輸出*/ </p><p>  void playtoplay(void);/*人人對戰(zhàn)函數(shù)*/ </p><p>  void DrawQp(void);/*畫棋盤函數(shù)*/ </p><p> 

29、 void SetPlayColor(int x);/*設(shè)置棋子第一次的顏色*/ </p><p>  void MoveColor(int x,int y);/*恢復(fù)原來棋盤狀態(tài)*/ </p><p>  int QpChange(int x,int y,int z);/*判斷棋盤的變化*/ </p><p>  void DoScore(void);/*處理分?jǐn)?shù)

30、*/ </p><p>  void PrintScore(int n);/*輸出成績*/</p><p>  void playWin(void);/*輸出勝利者信息*/ </p><p>  /******主函數(shù)*********/ </p><p>  void main(void) </p><p>  {In

31、t00wq1 </p><p>  initgraph(&gd,&gr,"c:\\tc"); /*初始化圖形系統(tǒng)*/ </p><p>  Dra]p]();/*畫棋盤*/ </p><p>  playtoplay();/*人人對戰(zhàn)*/ </p><p><b>  getch(); <

32、;/b></p><p>  closegraph();}/*關(guān)閉圖形系統(tǒng)*/ </p><p>  void DrawQp()/*畫棋盤*/ </p><p>  {int i,j; </p><p>  score1=score2=0;/*棋手一開始得分都為0*/ </p><p>  setbkcolor(

33、BLUE); </p><p>  for(i=100;i<=420;i+=40) </p><p>  {line(100,i,420,i);/*畫水平線*/ </p><p>  line(i,100,i,420);} /*畫垂直線*/ </p><p>  setcolor(0);/*取消圓周圍的一圈東西*/ </p>

34、<p>  setfillstyle(SOLID_FILL,15);/*白色實(shí)體填充模式*/ </p><p>  fillellipse(500,200,15,15); /*在顯示得分的位置畫棋*/ </p><p>  setfillstyle(SOLID_FILL,8); /*黑色實(shí)體填充模式*/ </p><p>  fillellipse(5

35、00,300,15,15); </p><p>  a[3][3]=a[4][4]=1;/*初始兩個黑棋*/ </p><p>  a[3][4]=a[4][3]=2;/*初始兩個白棋*/ </p><p>  setfillstyle(SOLID_FILL,WHITE); </p><p>  fillellipse(120+3*40,12

36、0+3*40,15,15); </p><p>  fillellipse(120+4*40,120+4*40,15,15); </p><p>  setfillstyle(SOLID_FILL,8); </p><p>  fillellipse(120+3*40,120+4*40,15,15); </p><p>  fillellip

37、se(120+4*40,120+3*40,15,15); </p><p>  score1=score2=2; /*有棋后改變分?jǐn)?shù)*/ </p><p>  DoScore();}/*輸出開始分?jǐn)?shù)*/ </p><p>  void playtoplay()/*人人對戰(zhàn)*/ </p><p>  {int x,y,t=1,i,j,cc=0;

38、 </p><p>  while(1)/*換棋手走棋*/ </p><p>  {x=120,y=80;/*每次棋子一開始出來的坐標(biāo),x為行坐標(biāo),y為列坐標(biāo)*/ </p><p>  while(1) /*具體一個棋手走棋的過程*/ </p><p>  {PrintScore(1);/*輸出棋手1的成績*/ </p><

39、;p>  PrintScore(2);/*輸出棋手2的成績*/ </p><p>  SetPlayColor(t);/*t變量是用來判斷棋手所執(zhí)棋子的顏色*/ </p><p>  fillellipse(x,y,15,15); </p><p>  key=bioskey(0);/*接收按鍵*/ </p><p>  if(key=

40、=ESC)/*跳出游戲*/ </p><p><b>  break; </b></p><p><b>  else </b></p><p>  if(key==ENTER)/*如果按鍵確定就可以跳出循環(huán)*/ </p><p>  {if(y!=80&&a[(x-120)/40]

41、[(y-120)/40]!=1 </p><p>  &&a[(x-120)/40][(y-120)/40]!=2)/*如果落子位置沒有棋子*/ </p><p>  {if(t%2==1)/*如果是棋手1移動*/ </p><p>  a[(x-120)/40][(y-120)/40]=1; </p><p>  else/

42、*否則棋手2移動*/ </p><p>  a[(x-120)/40][(y-120)/40]=2; </p><p>  if(!QpChange(x,y,t))/*落子后判斷棋盤的變化*/ </p><p>  {a[(x-120)/40][(y-120)/40]=0;/*恢復(fù)空格狀態(tài)*/ </p><p>  cc++;/*開始統(tǒng)計(jì)嘗試

43、次數(shù)*/ </p><p>  if(cc>=64-score1-score2) /*如果嘗試超過空格數(shù)則停步*/ </p><p>  {MoveColor(x,y); </p><p>  fillellipse(x,y,15,15); </p><p><b>  break;} </b></p>

44、<p><b>  else </b></p><p>  continue;}/*如果按鍵無效*/ </p><p>  DoScore();/*分?jǐn)?shù)的改變*/ </p><p>  break;}/*棋盤變化了,則輪對方走棋*/ </p><p>  else/*已經(jīng)有棋子就繼續(xù)按鍵*/ </p&

45、gt;<p>  continue;} </p><p>  else /*四個方向按鍵的判斷*/ </p><p>  if(key==LEFT&&x>120)/*左方向鍵*/ </p><p>  {MoveColor(x,y); </p><p>  fillellipse(x,y,15,15); &

46、lt;/p><p>  SetPlayColor(t); </p><p><b>  x-=40; </b></p><p>  fillellipse(x,y,15,15);} </p><p><b>  else </b></p><p>  if(key==RIGHT&

47、amp;&x<400&&y>80)/*右方向鍵*/ </p><p>  {MoveColor(x,y); </p><p>  fillellipse(x,y,15,15); </p><p>  SetPlayColor(t); </p><p><b>  x+=40; </b>

48、</p><p>  fillellipse(x,y,15,15);} </p><p><b>  else </b></p><p>  if(key==UP&&y>120)/*上方向鍵*/ </p><p>  {MoveColor(x,y); </p><p>  f

49、illellipse(x,y,15,15); </p><p>  SetPlayColor(t); </p><p><b>  y-=40; </b></p><p>  fillellipse(x,y,15,15);} </p><p><b>  else </b></p>&

50、lt;p>  if(key==DOWN&&y<400)/*下方向鍵*/ </p><p>  {MoveColor(x,y); </p><p>  fillellipse(x,y,15,15); </p><p>  SetPlayColor(t); </p><p><b>  y+=40; <

51、/b></p><p>  fillellipse(x,y,15,15);}} </p><p>  if(key==ESC)/*結(jié)束游戲*/ </p><p><b>  break; </b></p><p>  if((score1+score2)==64||score1==0||score2==0)/*格子

52、已經(jīng)占滿或一方棋子為0判斷勝負(fù)*/ </p><p>  {playWin();/*輸出最后結(jié)果*/ </p><p><b>  break;} </b></p><p>  t=t%2+1; /*一方走后,改變棋子顏色即輪對方走*/ </p><p>  cc=0;}}/*計(jì)數(shù)值恢復(fù)為0*/ </p>

53、<p>  /*endwhile*/ </p><p>  void SetPlayColor(int t)/*設(shè)置棋子顏色*/ </p><p>  {if(t%2==1) </p><p>  setfillstyle(SOLID_FILL,15);/*白色*/ </p><p><b>  else </b&g

54、t;</p><p>  setfillstyle(SOLID_FILL,8);}/*灰色*/ </p><p>  void MoveColor(int x,int y)/*走了一步后恢復(fù)原來格子的狀態(tài)*/ </p><p>  {if(y<100)/*如果是從起點(diǎn)出發(fā)就恢復(fù)藍(lán)色*/ </p><p>  setfillstyle(S

55、OLID_FILL,BLUE); </p><p>  else/*其他情況如果是1就恢復(fù)白色棋子,2恢復(fù)黑色棋子,或恢復(fù)藍(lán)色棋盤*/ </p><p>  switch(a[(x-120)/40][(y-120)/40]) </p><p><b>  {case 1: </b></p><p>  setfillst

56、yle(SOLID_FILL,15);break; /*白色*/ </p><p><b>  case 2: </b></p><p>  setfillstyle(SOLID_FILL,8);break; /*黑色*/ </p><p><b>  default: </b></p><p> 

57、 setfillstyle(SOLID_FILL,BLUE);}}/*藍(lán)色*/ </p><p>  int QpChange(int x,int y,int t)/*判斷棋盤的變化*/ </p><p>  {int i,j,k,kk,ii,jj,yes; </p><p><b>  yes=0; </b></p><p

58、>  i=(x-120)/40; /*計(jì)算數(shù)組元素的行下標(biāo)*/ </p><p>  j=(y-120)/40; /*計(jì)算數(shù)組元素的列下標(biāo)*/ </p><p>  SetPlayColor(t);/*設(shè)置棋子變化的顏色*/ </p><p>  /*開始往8個方向判斷變化*/ </p><p>  if(j<6)/*往右邊*/

59、</p><p>  {for(k=j+1;k<8;k++) </p><p>  if(a[k]==a[j]||a[k]==0)/*遇到自己的棋子或空格結(jié)束*/ </p><p><b>  break; </b></p><p>  if(a[k]!=0&&k<8) </p>

60、<p>  {for(kk=j+1;kk<K&&K</p><p>  {a[kk]=a[j]; /*改變棋子顏色*/ </p><p>  fillellipse(120+i*40,120+kk*40,15,15);} </p><p>  if(kk!=j+1) /*條件成立則有棋子改變過顏色*/ </p><

61、;p><b>  yes=1;}} </b></p><p>  if(j>1)/*判斷左邊*/ </p><p>  {for(k=j-1;k>=0;k--) </p><p>  if(a[k]==a[j]||!a[k]) </p><p><b>  break; </b>&

62、lt;/p><p>  if(a[k]!=0&&k>=0) </p><p>  {for(kk=j-1;kk>k&&k>=0;kk--) </p><p>  {a[kk]=a[j]; </p><p>  fillellipse(120+i*40,120+kk*40,15,15);} <

63、/p><p>  if(kk!=j-1) </p><p><b>  yes=1;}} </b></p><p>  if(i<6)/*判斷下邊*/ </p><p>  {for(k=i+1;k<8;k++) </p><p>  if(a[k][j]==a[j]||!a[k][j])

64、 </p><p><b>  break; </b></p><p>  if(a[k][j]!=0&&k<8) </p><p>  {for(kk=i+1;kk<K&&K</p><p>  {a[kk][j]=a[j]; </p><p>  f

65、illellipse(120+kk*40,120+j*40,15,15);} </p><p>  if(kk!=i+1) </p><p><b>  yes=1;}} </b></p><p>  if(i>1)/*判斷上邊*/ </p><p>  {for(k=i-1;k>=0;k--) </p

66、><p>  if(a[k][j]==a[j]||!a[k][j]) </p><p><b>  break; </b></p><p>  if(a[k][j]!=0&&k>=0) </p><p>  {for(kk=i-1;kk>k&&k>=0;kk--) </

67、p><p>  {a[kk][j]=a[j]; </p><p>  fillellipse(120+kk*40,120+j*40,15,15);} </p><p>  if(kk!=i-1) </p><p><b>  yes=1;}} </b></p><p>  if(i>1&

68、&j<6)/*右上*/ </p><p>  {for(k=i-1,kk=j+1;k>=0&&kk<8;k--,kk++) </p><p>  if(a[k][kk]==a[j]||!a[k][kk]) </p><p><b>  break; </b></p><p>  

69、if(a[k][kk]&&k>=0&&kk<8) </p><p>  {for(ii=i-1,jj=j+1;ii>k&&k>=0;ii--,jj++) </p><p>  {a[ii][jj]=a[j]; </p><p>  fillellipse(120+ii*40,120+jj*40,

70、15,15);} </p><p>  if(ii!=i-1) </p><p><b>  yes=1;}} </b></p><p>  if(i<6&&j>1)/*左下*/ </p><p>  {for(k=i+1,kk=j-1;k<8&&kk>=0;k++

71、,kk--) </p><p>  if(a[k][kk]==a[j]||!a[k][kk]) </p><p><b>  break; </b></p><p>  if(a[k][kk]!=0&&k<8&&kk>=0) </p><p>  {for(ii=i+1,jj=

72、j-1;ii<K&&K</p><p>  {a[ii][jj]=a[j]; </p><p>  fillellipse(120+ii*40,120+jj*40,15,15);} </p><p>  if(ii!=i+1) </p><p><b>  yes=1;}} </b></p&g

73、t;<p>  if(i>1&&j>1)/*左上*/ </p><p>  {for(k=i-1,kk=j-1;k>=0&&kk>=0;k--,kk--) </p><p>  if(a[k][kk]==a[j]||!a[k][kk]) </p><p><b>  break; <

74、;/b></p><p>  if(a[k][kk]!=0&&k>=0&&kk>=0) </p><p>  {for(ii=i-1,jj=j-1;ii>k&&k>=0;ii--,jj--) </p><p>  {a[ii][jj]=a[j]; </p><p>

75、  fillellipse(120+ii*40,120+jj*40,15,15);} </p><p>  if(ii!=i-1) </p><p><b>  yes=1;}} </b></p><p>  if(i<6&&j<6)/* 右下*/ </p><p>  {for(k=i+1,

76、kk=j+1;kk<8&&kk<8;k++,kk++) </p><p>  if(a[k][kk]==a[j]||!a[k][kk]) </p><p><b>  break; </b></p><p>  if(a[k][kk]!=0&&kk<8&&k<8) <

77、/p><p>  {for(ii=i+1,jj=j+1;ii<K&&K</p><p>  {a[ii][jj]=a[j]; </p><p>  fillellipse(120+ii*40,120+jj*40,15,15);} </p><p>  if(ii!=i+1) </p><p><

78、b>  yes=1;}} </b></p><p>  return yes;}/*返回是否改變過棋子顏色的標(biāo)記*/ </p><p>  void DoScore()/*處理分?jǐn)?shù)*/ </p><p>  {int i,j; </p><p>  score1=score2=0;/*重新開始計(jì)分?jǐn)?shù)*/ </p>

79、<p>  for(i=0;i<8;i++) </p><p>  for(j=0;j<8;j++) </p><p>  if(a[j]==1)/*分別統(tǒng)計(jì)兩個人的分?jǐn)?shù)*/ </p><p>  score1++; </p><p><b>  else </b></p><

80、;p>  if(a[j]==2) </p><p>  score2++;} </p><p>  void PrintScore(int playnum)/*輸出成績*/ </p><p>  {if(playnum==1)/*清除以前的成績*/ </p><p>  {setfillstyle(SOLID_FILL,BLUE); &

81、lt;/p><p>  bar(550,100,640,400);} </p><p>  setcolor(RED); </p><p>  settextstyle(0,0,4);/*設(shè)置文本輸出樣式*/ </p><p>  if(playnum==1)/*判斷輸出哪個棋手的分,在不同的位置輸出*/ </p><p>

82、;  {sprintf(playone,"%d",score1); </p><p>  outtextxy(550,200,playone);} </p><p><b>  else </b></p><p>  {sprintf(playtwo,"%d",score2); </p>&

83、lt;p>  outtextxy(550,300,playtwo);} </p><p>  setcolor(0);} </p><p>  void playWin()/*輸出最后的勝利者結(jié)果*/ </p><p>  {settextstyle(0,0,4); </p><p>  setcolor(12); </p>

84、<p>  if(score2>score1)/*開始判斷最后的結(jié)果*/ </p><p>  outtextxy(100,50,"black win!"); </p><p><b>  else </b></p><p><b>  if(score2</b></p>

85、<p>  outtextxy(100,50,"white win!"); </p><p><b>  else </b></p><p>  outtextxy(60,50,"you all win!");}</p><p>  第3章 課程設(shè)計(jì)總結(jié)</p><p&g

86、t;  通過本次C語言課程設(shè)計(jì),我覺得對自己提高很大,克服了偷懶的毛病,這在我以后的學(xué)習(xí)和工作中的心理定位與調(diào)節(jié)有很大的幫助。我感受到了編程是一項(xiàng)非常繁瑣周密的活動,它不但需要一個人周密思考問題的能力、處理問題的能力,還需要有足夠的耐心和嚴(yán)謹(jǐn)治學(xué)的作風(fēng),來不得半點(diǎn)馬虎。</p><p>  通過本次論文設(shè)計(jì),我初步學(xué)會了論文設(shè)計(jì)的基本方法,學(xué)會了怎樣去借鑒別人的方法</p><p>  和

87、經(jīng)驗(yàn),知道如何去查找資料和整合處理這些資料的能力,這為以后的大學(xué)畢業(yè)設(shè)計(jì)論文打下了一個初步的基礎(chǔ)使我受益最大的是享受到了一種成功的喜悅,在這兩個星期之中從開始的確定論文題目,然后是上網(wǎng)和上圖書館查找資料,編寫C語言原程序,然后是進(jìn)行編譯,這個環(huán)節(jié)是一個非常痛苦和艱難的,常常會因?yàn)橐恍↑c(diǎn)的錯誤而在編譯失敗與再次修改的漫漫循環(huán)之路中苦惱,但失敗的越多,對人的考驗(yàn)就越多,在編譯運(yùn)行成功之后,享受成功的喜悅也就越多,另外在調(diào)試程序的過程中不斷的

88、思考和運(yùn)用已經(jīng)學(xué)到的知識,這對于自己是有很大的提高的。</p><p>  這個黑白棋游戲原程序的最大特點(diǎn)是采用了在主函數(shù)中調(diào)用子函數(shù)思想,每一種功能都</p><p>  是用子函數(shù)的辦法來進(jìn)行處理,簡潔,清晰,方便,不容易出現(xiàn)錯誤。 在輸入錯誤時本</p><p>  來想用一種警告的鈴聲來提醒用戶,由于所學(xué)的知識不多,自己的編程經(jīng)驗(yàn)不足,按現(xiàn)</p>

89、;<p>  有的知識水平有些東西暫時還無法解決,還有待于在以后的學(xué)習(xí)中不斷提高和改進(jìn)!</p><p>  在課程設(shè)計(jì)過程中,我學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒,黑夜過去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過程中,先有我的各個子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的

90、關(guān)鍵。老天不會讓我太過順利,他在這最后的時刻設(shè)置的障礙,是要考驗(yàn)我的能力,他要置我于死地?在這個問題的解決上,我打了退堂鼓,我不能忍受長時間的無功而反,時間正在消磨我的意志。但是最后在同學(xué)和老師的鼓勵下,我克服了這個最大的困難!完成了我的課程設(shè)計(jì)!</p><p><b>  參考資料</b></p><p>  [1] 鄭影.網(wǎng)絡(luò)設(shè)備與管理實(shí)用實(shí)訓(xùn)教程.北京:清華大

91、學(xué)出版社,2002</p><p>  [2] 郝與明.多媒體電腦計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備與管理實(shí)訓(xùn)教程.北京:清華大學(xué)出版社,2002</p><p>  [3] 文光斌. 網(wǎng)絡(luò)設(shè)備與管理.北京:中國電子工業(yè)出版社,2010</p><p>  [4] 辛再甫. 新電腦課堂?網(wǎng)絡(luò)設(shè)備與管理篇.吉林: 電子工業(yè)出版社,2000</p><p>  [5

92、] Simon Robinson, K.Scott Allen等.C#高級編程.北京:清華大學(xué)出版社,2008</p><p>  [6] [英]夏普. Visual C# 2005從入門到精通.北京:清華大學(xué)出版社,2006</p><p>  [7] 劉基誠. C++精髓.北京:中國電力出版社, 2001</p><p>  [8] 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論

93、(第三版).北京:高等教育出版社,2000</p><p>  [9] 鄭阿齊,劉啟芬等. SQL Server2000實(shí)用教程.北京:電子工業(yè)出版社, 2009</p><p>  [10] 劉浩,陳曙東主編. C#編程實(shí)例與技巧.北京:清華大學(xué)出版社,2009</p><p>  [11] 譚桂華,魏亮等主編. Visual C# 高級編程范例.北京:清華大學(xué)出

94、版社,2004:</p><p>  [12] 劉超,張莉編著.可視化面向?qū)ο蠹夹g(shù).北京:北京航空航天大學(xué)出版社,2001</p><p>  [13] Karli Watson Christian Nagel 等. C#入門經(jīng)典.北京:清華大學(xué)出版社,2010</p><p>  [14] 張奇,李律松,衛(wèi)建偉等編著. Visual C# 數(shù)據(jù)庫項(xiàng)目案例導(dǎo)航.北京

溫馨提示

  • 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

提交評論