C語言程序設(shè)計 課程設(shè)計(論文)貪吃蛇_(dá)第1頁
C語言程序設(shè)計 課程設(shè)計(論文)貪吃蛇_(dá)第2頁
C語言程序設(shè)計 課程設(shè)計(論文)貪吃蛇_(dá)第3頁
C語言程序設(shè)計 課程設(shè)計(論文)貪吃蛇_(dá)第4頁
C語言程序設(shè)計 課程設(shè)計(論文)貪吃蛇_(dá)第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、- 大 學(xué) C語言程序設(shè)計 課程設(shè)計(論文)題目: 貪吃蛇 院(系): 專業(yè)班級: 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 教師職稱: 起止時間: 課程設(shè)計(報告)任務(wù)及評語院(系): 教研室:學(xué) 號學(xué)生姓名專業(yè)班級程序設(shè)計(報告)題目貪吃蛇程序設(shè)計(報告)任務(wù)程序設(shè)計的任務(wù)與要求:(1)掌握C語言編程的基礎(chǔ)知識。(2)較熟練地編寫C語言應(yīng)用程序。(3)了解C語言的常用標(biāo)準(zhǔn)函數(shù)、編程技巧、異常處理。(5)聯(lián)系已學(xué)過的內(nèi)容,鞏固所學(xué)的理論,增強(qiáng)獨(dú)立工作能力。(6)通過設(shè)計主要使學(xué)生有一個獨(dú)立編寫程序的過程,對理論學(xué)習(xí)及動手能力都有一個很大的提高。(7)通過本次設(shè)計,進(jìn)一步培養(yǎng)學(xué)生熱愛專業(yè)的思想,同時對

2、本專業(yè)綜合素質(zhì)的提高起一個積極的推動作用。課程設(shè)計過程中,要嚴(yán)格遵守實踐環(huán)節(jié)的時間安排,聽從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,記錄實習(xí)日記,規(guī)范完整地撰寫出課程設(shè)計報告。指導(dǎo)教師評語及成績成績: 指導(dǎo)教師簽字: 2011年 1 月 4 日目 錄第1章 C語言課程設(shè)計的實訓(xùn)目的與要求11.1 C語言課程設(shè)計目的11.2 C語言課程設(shè)計的實驗環(huán)境11.3 C語言課程設(shè)計的預(yù)備知識11.4 C語言課程設(shè)計要求1第2章 C語言課程設(shè)計內(nèi)容22.1程序功能介紹22.2程序整體設(shè)計說明2設(shè)計思路2數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明3各模塊的功能及程序說明7程序結(jié)果82.3程序源代碼及注釋10第3章 C語言課程設(shè)計總

3、結(jié)17參考資料.20第1章 C語言課程設(shè)計的目的與要求1.1 C語言課程設(shè)計目的本課程設(shè)計是計算機(jī)科學(xué)與技術(shù)專業(yè)重要的實踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完程序設(shè)計語言(C)課程后進(jìn)行的一次全面的綜合練習(xí)。本課程設(shè)計的目的和任務(wù): 1. 鞏固和加深學(xué)生對C語言課程的基本知識的理解和掌握 2. 掌握C語言編程和程序調(diào)試的基本技能 3. 利用C語言進(jìn)行基本的軟件設(shè)計4. 掌握書寫程序設(shè)計說明文檔的能力5. 提高運(yùn)用C語言解決實際問題的能力1.2 C語言課程設(shè)計的實驗環(huán)境硬件要求能運(yùn)行Windows 2000/XP操作系統(tǒng)的微機(jī)系統(tǒng)。C語言程序設(shè)計及相應(yīng)的開發(fā)環(huán)境。1.3 C語言課程設(shè)計的預(yù)備知識熟悉C語言

4、及C語言開發(fā)工具。1.4 C語言課程設(shè)計要求1. 分析課程設(shè)計題目的要求2. 寫出詳細(xì)設(shè)計說明3. 編寫程序代碼,調(diào)試程序使其能正確運(yùn)行4. 設(shè)計完成的軟件要便于操作和使用5. 設(shè)計完成后提交課程設(shè)計報告第2章 C語言課程設(shè)計內(nèi)容2.1程序功能介紹貪吃蛇游戲是一個經(jīng)典小游戲,深受眾多玩家喜愛,其規(guī)則是:一條蛇在封閉圍墻里,圍墻里隨機(jī)出現(xiàn)一個食物,通過按鍵盤四個光標(biāo)鍵控制蛇向上下左右四個方向移動,蛇頭撞倒食物,則食物被吃掉,蛇身體長一節(jié),同時記10分,接著又出現(xiàn)食物,等待蛇來吃,如果蛇在移動中撞到墻或身體交叉蛇頭撞倒自己身體游戲結(jié)束。此游戲不僅能鍛煉人的思維敏捷性,而且還可以提高玩家的邏輯判斷能

5、力。2.2程序整體設(shè)計說明任何一種游戲都必須具備開始部分,運(yùn)行部分,結(jié)束部分。但其核心是運(yùn)行部分,它是整個游戲程序的中間力量,故其對程序設(shè)計的嚴(yán)密性要求極其嚴(yán)格。設(shè)計思路貪吃蛇游戲設(shè)計的雖然總體分為開始、運(yùn)行、結(jié)束三個過程,但其內(nèi)部程序非常之復(fù)雜具體包括開始時的狀態(tài),游戲進(jìn)行中如果得分其分?jǐn)?shù)的累加程序的設(shè)計,當(dāng)玩家游戲結(jié)束時所出現(xiàn)的音頻及圖片效果等設(shè)計的程序主要包括主函數(shù),printf()函數(shù),scanf()函數(shù)等各種輸入輸出函數(shù)。同時還運(yùn)用了各種數(shù)據(jù)類型和運(yùn)算符以及各種選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)的重復(fù)使用。特別是運(yùn)用了數(shù)組結(jié)構(gòu)(1.2.3維)和函數(shù)之間的調(diào)用是程序更為完整清楚簡便,易于讀懂。這個程序的

6、關(guān)鍵是表示蛇的圖形以及蛇的移動。用一個小矩形表示蛇的一節(jié)身體,身體每長一節(jié),增加一個矩形塊,蛇頭用兩節(jié)表示。移動時必須從蛇頭開始,所以蛇不能向相反方向移動,也就是蛇尾不能改作蛇頭。如果不按任何鍵,蛇自行在當(dāng)前方向上前移,當(dāng)游戲者按了有效的方向鍵后,蛇頭朝著指定的方向移動,一步移動一節(jié)身體,所以當(dāng)按了有效的方向鍵后,先確定蛇頭的位置,然后蛇身體隨著蛇頭移動,圖形的實現(xiàn)是從蛇頭的新位置開始畫出蛇,這時由于沒有慶平的原因,原來蛇的位置和新蛇的位置差一個單位,所以看起來就像多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)和消失也是由畫矩形塊和覆蓋矩形塊所覆蓋。這樣一個貪吃蛇游戲程序在所學(xué)的C語言

7、知識下便設(shè)計成功。2.2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明 開始部分:由于貪吃蛇游戲是運(yùn)行在圖形模式下的,所以第一步一定是初始化圖形模式,接著要有開始的界面,就像書有封面一樣,由此我設(shè)置了一個游戲的標(biāo)題畫面,除了游戲標(biāo)題畫面我還設(shè)置了一個歡迎畫面,這樣玩游戲時比較有真實感,圖像感。標(biāo)題畫面以后,還要為游戲的運(yùn)行部分作初始化,包括繪制游戲運(yùn)行時的背景以及游戲運(yùn)行時的音頻效果,同時還要對游戲某些重要變量的初始化。運(yùn)行部分:該部分作為游戲的核心部分,這里包括的函數(shù)比較多,也就是模塊比較多,首先讓我以故事的方式模擬一下貪吃蛇的游戲基本模式:假如某個世界上突然出現(xiàn)一條蛇,它很短,它的運(yùn)動神經(jīng)異常,它沒法停止自己

8、的多動癥在它的世界里就只有食物,它很餓,也很貪吃;同樣在不明原因的情況下,食物從天而降,可惜的是沒有落到嘴邊;饑餓的主人公,不管它有沒有毒,也不問食物的來歷,徑直向食物爬去;它吃到食物啦,它超出想象的同化能力讓食物很快的成為自己身體的一部分,它的身子變長啦。當(dāng)它吃到第一顆食物時,上帝有給它第二顆,于是它吃了第二顆,于是又變長了,于是又有第三顆它的身子是一直的加長,它不管自己過長身體的麻煩轉(zhuǎn)身不便,繼續(xù)吃下去,現(xiàn)在它是直接把嘴巴張大,好讓食物有個綠色通道。但有時隨著貪吃蛇的不斷增長食物的停留時間也隨之縮短,如果不及時吃掉的話食物就會消失。此時你的分?jǐn)?shù)停滯不前。如果在某天,它不小心咬到了自己,它才

9、想起自己是一條毒蛇,于是暈死過去(不是毒死);又或者它往食物沖鋒的時候,它失去控制,撞到了墻,導(dǎo)致了昏死。第一輪循環(huán):第一步,出現(xiàn)食物;第二步,蛇不停運(yùn)動;第三步,檢查蛇是咬到自己或撞到墻壁;由第四步起游戲有兩條支線(A、B):A :第四步,當(dāng)蛇沒有碰到自己或墻壁,蛇繼續(xù)前進(jìn),繪制蛇的動作;第五步,判斷蛇是否吃到食物,如果蛇吃到食物,身子變長,原來的食物消失;如果蛇沒有在規(guī)定的時間內(nèi)吃到食物,食物將自動消失。第六步,讓玩家輸入控制指令,讓蛇在下一輪循環(huán)的第二步改變運(yùn)動方向;第七步,第二輪循環(huán)的第一步,重復(fù)第一輪的步驟;B:第四步,蛇碰到自己或墻壁,終止游戲。結(jié)束部分:游戲結(jié)束時,顯示“GAME

10、 OVER”背景圖象,并配有比較憂傷的音樂,已經(jīng)是約定俗成的規(guī)律了,我所設(shè)計的貪吃蛇游戲也不例外。除了游戲結(jié)束畫面外,我還設(shè)置了一個游戲退出畫面,并提示玩家是否退出游戲或者是繼續(xù)此前游戲。有了上述的大致劃分,我把整個程序劃分成(13+2)個基本模塊(其實就是函數(shù)的基本應(yīng)用以及根據(jù)函數(shù)的用途所劃分的小模塊)2.2.3程序結(jié)構(gòu)(流程圖) 總流程圖 開始游戲的標(biāo)題畫面為運(yùn)行部分初始化運(yùn)行部分撞墻或咬自己NOYES游戲結(jié)束繼續(xù)游戲 分流程圖 (模塊) STARTInitgra()Welcome()Title()Initgame()Drawfood() Drawbg() Drawsnake() Snak

11、emove() Eatfood() Close()Checkover()=0 Control()=0Gameover() End 1No keyboard hityesnobreaknoyesyesno圖2.1流程圖在設(shè)計貪吃蛇游戲時依據(jù)所需要處理的任務(wù)要求,規(guī)劃輸入數(shù)據(jù)和輸出結(jié)果,決定存放數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。語言中數(shù)據(jù)結(jié)構(gòu)集中體現(xiàn)在數(shù)據(jù)類型上,因此在進(jìn)行語言程序設(shè)計時,應(yīng)統(tǒng)籌規(guī)劃程序中所使用的變量,數(shù)組,函數(shù),指針等,以及它們的類型等。這點(diǎn)是很重要的,如果在此期間選擇不合適的變量或者數(shù)組,將來修改就十分困難,所以在設(shè)計時要秉著簡單易懂的理念來設(shè)計程序,并且要盡量失所編寫的程序優(yōu)化從而可以高速度運(yùn)

12、行程序?,F(xiàn)在分析一下貪吃蛇游戲中的元素,繼而得出與它們對應(yīng)的在程序中的描述:蛇:基本描述:長度,顏色,位置。對應(yīng)數(shù)據(jù)與數(shù)據(jù)類型:長度雖然可以用坐標(biāo)表示,但是這樣的話,運(yùn)算量將很大,所以換算成較大的單位節(jié)數(shù),以固定長度的每節(jié)描述;坐標(biāo)-整型;顏色-整型; 位置-,坐標(biāo)。增加的描述:蛇運(yùn)動的方向,蛇的生命。對應(yīng)數(shù)據(jù)與數(shù)據(jù)類型:這些描述是為了與程序的按鍵的輸入部分與判斷游戲結(jié)束部分相聯(lián)系而設(shè)的。方向只有四個方向:上下左右??梢栽O(shè)置與之對應(yīng)的四個整型數(shù):3、4、2、1。貪吃蛇的生命就只有兩種情況:死或生,對應(yīng)的邏輯運(yùn)算符為0或1及真假。食物: 基本描述:顏色,位置。對應(yīng)數(shù)據(jù)與數(shù)據(jù)類型:由于顏色設(shè)成固定

13、的,所以不再討論。位置X、Y坐標(biāo)。增加的描述:食物的存在。對應(yīng)數(shù)據(jù)與數(shù)據(jù)類型:這是為了避免重復(fù)出現(xiàn)食物而設(shè)置的,與繪制食物的函數(shù)有聯(lián)系。只有兩個值:0或1(沒有食物,有食物或食物消失)其他的元素:墻,由于它在顯示上是作為背景而存在的,所以并沒有什么說明實際的墻壁就是四條直線組成的邊框,由坐標(biāo)描述。還需要的變量:鍵盤鍵入的鍵值(作為全局變量,整型);經(jīng)常要使用的循環(huán)變量;自定義的填充圖案;說明文字的字符數(shù)組;游戲的記分;游戲的速度(蛇的速度)。i=蛇的節(jié)數(shù)-1i-第i節(jié)的y坐標(biāo)=第i-1節(jié)的y坐標(biāo)第i節(jié)的x坐標(biāo)=第i-1節(jié)的x坐標(biāo)i>0snake.direction蛇的方向第0節(jié)的x坐標(biāo)加

14、10第0節(jié)的x坐標(biāo)減10第0節(jié)的y坐標(biāo)減10第0節(jié)的y坐標(biāo)加10yesno1向右 2向左3向上4向下圖2.2蛇的不停運(yùn)動的關(guān)鍵算法的流程圖2.2.4各模塊的功能及程序說明主要模塊的實現(xiàn)思路和算法的流程圖說明:總程序是整個貪吃蛇程序的一個概括其具體包括程序的開始,運(yùn)行及結(jié)束和中間的具體細(xì)微的判斷是否停止或繼續(xù)進(jìn)行此游戲。下面是整個程序中極其重要的部分亦是核心部分。關(guān)鍵所在蛇不停移動的Snakemove():蛇的不停移動,就是蛇的下一節(jié)取代前一節(jié)的位置,在計算機(jī)中就是蛇下一節(jié)的位置坐標(biāo)變成前一節(jié)的位置坐標(biāo)。在上文中,已定義蛇的位置坐標(biāo)為數(shù)組類型,一組坐標(biāo)對應(yīng)一節(jié)的位置,假設(shè)有i+1節(jié),由0到i節(jié),

15、第i節(jié)的坐標(biāo)取第i-1節(jié)的坐標(biāo),第i-1節(jié)的坐標(biāo)取第i-2節(jié)的坐標(biāo)直到第1節(jié)取第0節(jié)的坐標(biāo)。而第0節(jié)的坐標(biāo),即蛇頭的坐標(biāo)要往某個方向變化,變化量為蛇每節(jié)的長度。蛇的這種坐標(biāo)輪換需要循環(huán)語句使其繼續(xù)下去。還有在游戲開始或結(jié)束時所出現(xiàn)的背景圖或者是音頻效果在此過程中運(yùn)用了函數(shù)的輸入輸出如printf(),scanf()函數(shù)等。在游戲運(yùn)行中所用到的數(shù)字(成績)累加如函數(shù)的調(diào)用循環(huán)使用。 2.2.5程序結(jié)果運(yùn)行程序得到如下初始界面圖:圖2.3程序結(jié)果圖用一個小矩形表示蛇的一節(jié)身體,身體每長一節(jié),增加一個矩形塊,蛇頭用兩節(jié)表示:圖2.4程序結(jié)果圖蛇沒有碰到自己或墻壁,蛇繼續(xù)前進(jìn):圖2.5程序結(jié)果圖游戲結(jié)

16、束時,顯示“GAME OVER”圖2.6程序結(jié)果圖2.3程序源代碼及注釋#define N 200#include <graphics.h>#include <stdlib.h>#include <dos.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戲速度自己調(diào)整*/struct Food int x;/*食物的橫

17、坐標(biāo)*/ int y;/*食物的縱坐標(biāo)*/ int yes;/*判斷是否要出現(xiàn)食物的變量*/food;/*食物的結(jié)構(gòu)體*/struct Snake int xN; int yN; int node;/*蛇的節(jié)數(shù)*/ int direction;/*蛇移動方向*/ int life;/* 蛇的生命,0活著,1死亡*/snake;void Init(void);/*圖形驅(qū)動*/void Close(void);/*圖形結(jié)束*/void DrawK(void);/*開始畫面*/void GameOver(void);/*結(jié)束游戲*/void GamePlay(void);/*玩游戲具體過程*/voi

18、d PrScore(void);/*輸出成績*/*主函數(shù)*/void main(void) Init();/*圖形驅(qū)動*/ DrawK();/*開始畫面*/ GamePlay();/*玩游戲具體過程*/ Close();/*圖形結(jié)束*/*圖形驅(qū)動*/void Init(void) int gd=DETECT,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,"c:program fileswinyestc20hbgi"); cleardevice();/*開始畫面,左上角坐標(biāo)為(50,40),右下

19、角坐標(biāo)為(610,460)的圍墻*/void DrawK(void)/*setbkcolor(LIGHTGREEN);*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設(shè)置線型*/ for(i=50;i<=600;i+=10)/*畫圍墻*/ rectangle(i,40,i+10,49); /*上邊*/ rectangle(i,451,i+10,460);/*下邊*/ for(i=40;i<=450;i+=10) rectangle(50,i,59,i+10); /*左邊*/ rectangle(601,i,610,

20、i+10);/*右邊*/ /*玩游戲具體過程*/void GamePlay(void) randomize();/*隨機(jī)數(shù)發(fā)生器*/ food.yes=1;/*1表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物*/ snake.life=0;/*活著*/ snake.direction=1;/*方向往右*/ snake.x0=100;snake.y0=100;/*蛇頭*/ snake.x1=110;snake.y1=100; snake.node=2;/*節(jié)數(shù)*/ PrScore();/*輸出得分*/ while(1)/*可以重復(fù)玩游戲,壓ESC鍵結(jié)束*/ while(!kbhit()/*在沒有按鍵的情

21、況下,蛇自己移動身體*/ if(food.yes=1)/*需要出現(xiàn)新食物*/ food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物隨機(jī)出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/ food.x+; while(food.y%10!=0) food.y+; food.yes=0;/*畫面上有食物了*/ if(food.yes=0)/*畫面上有食物了就要顯示*/ setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); for(i=snake

22、.node-1;i>0;i-)/*蛇的每個環(huán)節(jié)往前移動,也就是貪吃蛇的關(guān)鍵算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4表示右,左,上,下四個方向,通過這個判斷來移動蛇頭*/ switch(snake.direction) case 1:snake.x0+=10;break; case 2: snake.x0-=10;break; case 3: snake.y0-=10;break; case 4: snake.y0+=10;break; for(i=3;i<snake.node;i+)/*從蛇的第四節(jié)開始判斷是否

23、撞到自己了,因為蛇頭為兩節(jié),第三節(jié)不可能拐過來*/ if(snake.xi=snake.x0&&snake.yi=snake.y0) GameOver();/*顯示失敗*/ snake.life=1; break; if(snake.x0<55|snake.x0>595|snake.y0<55| snake.y0>455)/*蛇是否撞到墻壁*/ GameOver();/*本次游戲結(jié)束*/ snake.life=1; /*蛇死*/ if(snake.life=1)/*以上兩種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始*/ break; if(snake.x0

24、=food.x&&snake.y0=food.y)/*吃到食物以后*/ setcolor(0);/*把畫面上的食物東西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.xsnake.node=-20;snake.ysnake.node=-20; /*新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置*/ snake.node+;/*蛇的身體長一節(jié)*/ food.yes=1;/*畫面上需要出現(xiàn)新的食物*/ score+=10; PrScore();/*輸出新得分*/ setcolor(4);/*畫出蛇*/ for(

25、i=0;i<snake.node;i+) rectangle(snake.xi,snake.yi,snake.xi+10, snake.yi-10); delay(gamespeed); setcolor(0);/*用黑色去除蛇的的最后一節(jié)*/ rectangle(snake.xsnake.node-1,snake.ysnake.node-1, snake.xsnake.node-1+10,snake.ysnake.node-1-10); /*endwhile(!kbhit)*/ if(snake.life=1)/*如果蛇死就跳出循環(huán)*/ break; key=bioskey(0);/*

26、接收按鍵*/ if(key=ESC)/*按ESC鍵退出*/ break; else if(key=UP&&snake.direction!=4)/*判斷是否往相反的方向移動*/ snake.direction=3; else if(key=RIGHT&&snake.direction!=2) snake.direction=1; else if(key=LEFT&&snake.direction!=1) snake.direction=2; else if(key=DOWN&&snake.direction!=3) snake.d

27、irection=4; /*endwhile(1)*/*游戲結(jié)束*/void GameOver(void) cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch();/*輸出成績*/void PrScore(void) char str10; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(s

28、tr,"score:%d",score); outtextxy(55,20,str);/*圖形結(jié)束*/void Close(void) getch(); closegraph();第3章 課程設(shè)計總結(jié)在這短短的兩星期的時間內(nèi),通過老師的細(xì)心講解和同學(xué)們之間互相的討論,我深知課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識 ,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們的實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強(qiáng)大的一種高級

29、語言,因此做好C語言課程設(shè)計是十分必要的。當(dāng)我們回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,從迷茫到初步了解,從動腦思考到付出實踐(上機(jī)具體運(yùn)行)在短短半個月的日子里,學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從結(jié)論中悟出真諦,從失敗中汲取教訓(xùn),從成功中獲取教訓(xùn)。才能真正為社會服務(wù),從而提高自己的實際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困

30、難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,但在老師和同學(xué)們的幫助下解決了很多很多值得探索和研究的問題。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說函數(shù)的循環(huán)調(diào)用的使用,結(jié)構(gòu)體,數(shù)組,指針,鏈表通過這次課程設(shè)計之后,我們把前面所學(xué)過的知識又重新溫故了一遍。我做的是貪吃蛇游戲。我認(rèn)為是其中最簡單的一個,但對我一個初學(xué)者來說卻是一個很大的困難。更加是第一次做課程設(shè)計,實在不知道做課設(shè)的具體步驟,所以第一天下午在機(jī)房做了一個下午卻絲毫沒有進(jìn)展,最主要是不知從何開始,這個時候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,才后悔上課的時候沒有

31、認(rèn)真的聽講。還好時間還算是充裕,只好拿出書本重新復(fù)習(xí)一下。特別是在老師和同學(xué)們的幫助下,對課設(shè)有了初步的了解,同時對書本上的知識有了更深刻的認(rèn)識。特別是數(shù)組,結(jié)構(gòu)體,指針的部分及函數(shù)體的循環(huán)調(diào)用,幾乎是一片空白。不過經(jīng)過幾天的努力,大體上把課本上的知識點(diǎn)看了一遍,知識點(diǎn)也都基本是撐握了,所以經(jīng)過半個月的認(rèn)真復(fù)習(xí)和精心編寫程序。起初還算順利,不過畢竟是個新手,還是不知如何具體的編寫,于是就在網(wǎng)上下了一篇類似的程序,經(jīng)過仔細(xì)的研究,終于讀懂了C語言編程的基本過程和方法。 經(jīng)過一波三折,終于開始正式編程。編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強(qiáng)破自己堅持下去,按照老師

32、所說的模塊化思想,分部分的進(jìn)行編寫。而且編程是一件高精度、模范化的事情,稍有疏乎都會影響全局,也可能因為某一處的小的錯誤而導(dǎo)致整個程序的無法運(yùn)行。所以認(rèn)真仔細(xì)就是非很無聊的事情,不過當(dāng)一個程序運(yùn)行成功的時候那種喜悅是無法言語的,那種成就感是無法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多錯誤和漏洞,不過還是很高興的。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學(xué)習(xí)C語言的一次實踐作業(yè),自己進(jìn)步的證明。 通過這次課程設(shè)計,使我對C語言有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上

33、還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進(jìn);再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐的學(xué)習(xí),我認(rèn)識到學(xué)好計算機(jī)要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計算機(jī)方面的知識都要重在實踐,所以后在學(xué)習(xí)過 程中,我會更加注視實踐操作,使自己便好地學(xué)好計算機(jī)。在課程設(shè)計過程中,收獲知識,提高能力的同時,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。常重要的了。開始的時候真的感覺編程是一件很無聊的事情,不過當(dāng)一個程序運(yùn)行成功的時候那種喜悅

34、是無法言語的,那種成就感是無法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多錯誤和漏洞,不過還是很高興的。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學(xué)習(xí)C語言的一次實踐作業(yè),自己進(jìn)步的證明。 通過這次課程設(shè)計,使我對C語言有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進(jìn);再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐的學(xué)習(xí),我認(rèn)識到學(xué)好計算機(jī)要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計算機(jī)方面的知識都要重在實踐,所以后在學(xué)習(xí)過 程中,我會更加注視

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論