基于mfc的貪吃蛇程序設(shè)計(jì)(課程設(shè)計(jì)報(bào)告)_第1頁
基于mfc的貪吃蛇程序設(shè)計(jì)(課程設(shè)計(jì)報(bào)告)_第2頁
基于mfc的貪吃蛇程序設(shè)計(jì)(課程設(shè)計(jì)報(bào)告)_第3頁
基于mfc的貪吃蛇程序設(shè)計(jì)(課程設(shè)計(jì)報(bào)告)_第4頁
基于mfc的貪吃蛇程序設(shè)計(jì)(課程設(shè)計(jì)報(bào)告)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 西南交通大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 第21頁mfc應(yīng)用程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目: 學(xué)院: 專 業(yè): 班 級(jí): 姓名: 學(xué) 號(hào): 指導(dǎo)教師: 評(píng)閱成績(jī):二0 年 月 日目錄概述 31. 設(shè)計(jì)目的32. 功能描述33. 大體思想34. 程序框圖45. 主要知識(shí)點(diǎn)56. 重要的mfc 57. 數(shù)據(jù)結(jié)構(gòu)68. 主要函數(shù)79. 代碼實(shí)現(xiàn)710. 運(yùn)行界面1811. 總結(jié)1912. 參考文獻(xiàn)20概述此次課程設(shè)計(jì)我利用mfc制作了一個(gè)貪吃蛇游戲,運(yùn)行程序時(shí)窗口會(huì)自動(dòng)最大化,游戲會(huì)根據(jù)貪吃蛇身體的長(zhǎng)度自動(dòng)增加難度,而且單機(jī)右鍵可以出現(xiàn)坐標(biāo)。我還添加了bmp格式的圖片作為游戲背景。1設(shè)計(jì)目的1 通過實(shí)踐進(jìn)一步領(lǐng)

2、會(huì)程序設(shè)計(jì)的特點(diǎn)和應(yīng)用,提高運(yùn)用c+ 以及面向?qū)ο笾R(shí)解決實(shí)際問題的能力,初步掌握mfc變成的基本功能。2 通過實(shí)踐加強(qiáng)對(duì)程序設(shè)計(jì)語言課程知識(shí)點(diǎn)的理解和掌握,培養(yǎng)對(duì)課程知識(shí)綜合運(yùn)用能力、實(shí)際分析問題能力及編程能力,養(yǎng)成良好的編程習(xí)慣。3 通過實(shí)踐掌握用c+ 編寫面向?qū)ο蟮膶?shí)用程序的設(shè)計(jì)方法,對(duì)面向?qū)ο蠓椒ê退枷朐黾痈行缘恼J(rèn)識(shí);學(xué)會(huì)利用c+程序設(shè)計(jì)語言編寫出一些短小、可靠的windows實(shí)用程序,切實(shí)提高面向?qū)ο蟮某绦蛟O(shè)計(jì)能力,為后續(xù)的相關(guān)課程的學(xué)習(xí)打下基礎(chǔ)。2功能描述1 運(yùn)行程序,窗口會(huì)自動(dòng)最大化,出現(xiàn)bmp格式圖片的背景。2 點(diǎn)擊“游戲-游戲開始”,出現(xiàn)圍墻界面,一條蛇在密閉的圍墻內(nèi),在圍墻

3、內(nèi)隨機(jī)出現(xiàn)一個(gè)食物,游戲開始。3 游戲開始后,界面右下角會(huì)出現(xiàn)游戲規(guī)則。4 游戲開始后,界面右下角會(huì)同步游戲得分。5 通過四個(gè)方向鍵控制蛇的運(yùn)動(dòng)方向,吃掉隨機(jī)出現(xiàn)的豆子,若不小心碰到墻壁或者與自身相交,則該輪游戲結(jié)束。6 點(diǎn)擊“游戲-游戲暫?!?,暫停游戲。7 點(diǎn)擊“游戲-游戲繼續(xù)”,繼續(xù)游戲。8 游戲會(huì)根據(jù)蛇身的長(zhǎng)度自動(dòng)調(diào)節(jié)難易程度。9 點(diǎn)擊“游戲-游戲退出”,退出游戲。10 在界面中右鍵單擊鼠標(biāo)可以顯示光標(biāo)的當(dāng)前坐標(biāo)。11 單擊幫助-游戲規(guī)則查看游戲規(guī)則。3 大體思想1 定義蛇類和食物類,初始化貪吃蛇各項(xiàng)成員變量,包括圖像的出現(xiàn)在屏幕的初始位置,長(zhǎng)度,以及蛇的行走方向。食物類的定義包括出現(xiàn)的

4、初始位置,以及食物是否被吃掉的判斷。2 用數(shù)組初始化長(zhǎng)度為3的貪吃蛇,并且默認(rèn)食物未出現(xiàn)3 在cview類上運(yùn)用mfc提供的windows消息中wm_timer消息,運(yùn)用ontimer()函數(shù)讓系統(tǒng)提供一個(gè)時(shí)鐘節(jié)拍,更新游戲4 具體游戲?qū)崿F(xiàn),包括蛇撞到自己和圍墻都將使游戲結(jié)束,判斷吃豆等,其中還包括根據(jù)蛇的長(zhǎng)度來進(jìn)行游戲難度的改變。5 具體鍵盤游戲操作運(yùn)用到windows消息響應(yīng)中的wm_keydown,用onkeydown()來響應(yīng)玩家的實(shí)際操作。6 界面會(huì)自動(dòng)最大化7 而且單擊右鍵可以出現(xiàn)坐標(biāo)8 添加了bmp格式的圖片作為游戲背景。4程序框圖4.1整體框架圖顯示文字,得分增加難度運(yùn)行程序出

5、現(xiàn)圍墻出現(xiàn)蛇、食物出現(xiàn)圖片背景開始游戲單擊右鍵顯示坐標(biāo)游戲控制模塊退出游戲4.2游戲控制模塊框架圖開始游戲暫停游戲退出游戲繼續(xù)游戲游戲控制模塊5主要知識(shí)點(diǎn)1 cview類中的消息響應(yīng)2 控件的消息響應(yīng)3 基于cview類內(nèi)的具體游戲?qū)崿F(xiàn)4 數(shù)組5 游戲圖形的實(shí)現(xiàn)用cdc類實(shí)現(xiàn)6 sdi界面窗口樣式的設(shè)計(jì)7 文本的顯示6重要的mfc1 cwnd:窗口,它是大多數(shù)“看得見的東西”的父類(windows里幾乎所有看得見的東西都是一個(gè)窗口,大窗口里有許多小窗口),比如視圖cview、框架窗口cframewnd、工具條ctoolbar、對(duì)話框cdialog、按鈕cbutton,etc;一個(gè)例外是菜單(c

6、menu)不是從窗口派生的。該類很大,一開始也不必學(xué),知道就行了。 2 cdocument文檔,負(fù)責(zé)內(nèi)存數(shù)據(jù)與磁盤的交互。最重要的是onopendocument(讀入),onsavedocument(寫盤),serialize(讀寫) 3 cview視圖,負(fù)責(zé)內(nèi)存數(shù)據(jù)與用戶的交互。包括數(shù)據(jù)的顯示、用戶操作的響應(yīng)(如菜單的選取、鼠標(biāo)的響應(yīng))。最重要的是ondraw(重畫窗口),通常用cwnd:invalidate()來啟動(dòng)它。另外,它通過消息映射表處理菜單、工具條、快捷鍵和其他用戶消息。你自己的許多功能都要加在里面,你打交道最多的就是它。 4 cdc設(shè)備文本。無論是顯示器還是打印機(jī),都是畫圖給用

7、戶看。這圖就抽象為cdc。cdc與其他gdi(圖形設(shè)備接口)一起,完成文字和圖形、圖像的顯示工作。把cdc想象成一張紙,每個(gè)窗口都有一個(gè)cdc相聯(lián)系,負(fù)責(zé)畫窗口。cdc有個(gè)常用子類cclientdc(窗口客戶區(qū)),畫圖通常通過cclientdc完成。 5 cdialog對(duì)話框 6 cwinapp應(yīng)用程序類。似于c中的main函數(shù),是程序執(zhí)行的入口和管理者,負(fù)責(zé)程序建立、消滅,主窗口和文檔模板的建立。最常用函數(shù)initinstance():初始化。 7 cgdiobject及子類,用于向設(shè)備文本畫圖。它們都需要在使用前選進(jìn)dc 8 cpen筆,畫線 9 cbrush刷子,填充 10 cfont字

8、體,控制文字輸出的字體 11 cbitmap位圖 12 cpalette調(diào)色板 13 crgn區(qū)域,指定一塊區(qū)域可以用于做特殊處理。 14 cfile文件。最重要的不外是open(打開),read(讀入),write15 cstring字符串。封裝了c中的字符數(shù)組,非常實(shí)用。 16 cpoint點(diǎn),就是(x,y)crect矩形,就是(left,top,right,bottom) 7數(shù)據(jù)結(jié)構(gòu)7.1蛇的全局變量struct snakeint x,y;int len;int direct;snake50;7.2食物的全局變量struct foodint x;int y;int isfood;food

9、;8主要函數(shù)1 void cmfcexp8_4view:ondraw(cdc* pdc)/顯示背景圖片2 void cmfcexp8_4view:onkeydown(uint nchar, uint nrepcnt, uint nflags)/按照用戶的按鍵來控制蛇的移動(dòng)3 void cmfcexp8_4view:onrbuttondown(uint nflags, cpoint point)/用鼠標(biāo)右鍵屏幕,就會(huì)馬上顯示當(dāng)前位置的坐標(biāo)信息4 void cmfcexp8_4view:ontimer(uint nidevent)/根據(jù)蛇的長(zhǎng)度來進(jìn)行settimer()函數(shù)的定義,可以根據(jù)長(zhǎng)度來進(jìn)

10、行游戲難度的設(shè)定。/撞界判斷/蛇身相撞判斷/抹掉蛇行走的痕跡/判斷吃豆的條件,撞到就吃/如果食物被吃了 就生成5 void cmfcexp8_4view:oninit()/進(jìn)行貪吃蛇外觀的初始化6 void cmfcexp8_4view:onstart()/開始游戲7 void cmfcexp8_4view:onpause()/游戲暫停8 void cmfcexp8_4view:oncontinue()/繼續(xù)游戲9 void cmfcexp8_4view:onexit()/退出游戲10 void cmfcexp8_4view:oninitialupdate()/初始化蛇的位置11 void c

11、mfcexp8_4view:ondrawnew()/第二層白色正方形背景以及右下角的文字9代碼實(shí)現(xiàn)9.1添加windows信息在已有工程下的“classview”中右鍵cview類添加以下windows信息3 wm_keydown3 wm_rbuttondown3 wm_timer右鍵cview類選擇 “add virtual funciton”選oninitialupdate(),再者還要添加一個(gè)成員函數(shù)oninit()進(jìn)行貪吃蛇外觀的初始化9.2控件的設(shè)計(jì) 我們可以點(diǎn)擊“工作空間”的“resourceview”進(jìn)行控件的具體設(shè)計(jì),設(shè)計(jì)游戲的一些控件來控制“游戲開始” “游戲結(jié)束” 和“游戲

12、暫?!薄?右鍵其中的標(biāo)題欄,點(diǎn)擊屬性,會(huì)得到一個(gè)菜單欄標(biāo)題,我們建立“游戲”菜單欄標(biāo)題。 點(diǎn)擊并且在已有控件中的列表中點(diǎn)擊屬性,進(jìn)行“菜單項(xiàng)目屬性”的設(shè)置。分別建立的屬性“標(biāo)明”與對(duì)應(yīng)的id有游戲開始idm_start游戲暫停idm_pause游戲繼續(xù)idm_continue游戲退出idm_exit 成功設(shè)置id之后,分別單擊右鍵各項(xiàng)屬性進(jìn)行消息響應(yīng)處理函數(shù)的生成,具體方法操作例子如下:右鍵“游戲開始”點(diǎn)擊“類向?qū)Ыⅰ痹趍essage maps頁面,在要進(jìn)行消息響應(yīng)的控件id列表object ids中上選擇對(duì)應(yīng)的id, 這里我們選擇idm_start,具體實(shí)現(xiàn)的環(huán)境是cview類,所以我們必

13、須把“class name”的默認(rèn)“cmainframe”改為“cview類”,并且在“messages”類型設(shè)置中,用“command”設(shè)置為其為命令消息。其余各項(xiàng)也按照同理進(jìn)行設(shè)置。9.3具體實(shí)現(xiàn)游戲9.3.1在文件開頭處分別定義蛇和食物 的全局變量/定義蛇的全局變量struct snakeint x,y;int len;int direct;snake50;/定義食物的全局變量struct foodint x;int y;int isfood;food;9.3.2初始化蛇的位置void cmfcexp8_4view:oninitialupdate() cview:oninitialupd

14、ate();snake0.x=10;/初始化起點(diǎn)坐標(biāo)snake0.y=10;snake1.x=11;snake1.y=10;snake2.x=12;snake2.y=10;snake0.direct=3;/初始化貪吃蛇起初有3個(gè)節(jié)點(diǎn),長(zhǎng)度為3snake0.len=3;food.isfood=1;/食物默認(rèn)為1無0有oninitialupdate()的功能如下:視圖窗口完全建立后第一個(gè)被框架調(diào)用的函數(shù)??蚣茉诘谝淮握{(diào)用ondraw前會(huì)調(diào)用oninitialupdate,因此oninitialupdate是設(shè)置滾動(dòng)視圖的邏輯尺寸和映射模式的最合適的地方。時(shí)間上,兩者先后順序不同,構(gòu)造函數(shù)生成本類的

15、對(duì)象,但沒有產(chǎn)生窗口,oncreate后窗口產(chǎn)生,然后才是視圖的oninitialupdate,一般在這里對(duì)視圖的顯示做初始化。簡(jiǎn)單點(diǎn),就是oncreate只是產(chǎn)生view的基本結(jié)構(gòu)和變量而在oninitialupdate()中,主要初始化視圖中控件等。對(duì)各個(gè)變量進(jìn)行初始化操作,所以我們要用這個(gè)函數(shù)來進(jìn)行貪吃蛇的初始化工作。9.3.3對(duì)onkeydown()具體添加代碼void cmfcexp8_4view:onkeydown(uint nchar, uint nrepcnt, uint nflags) switch(nchar)/snake0代表的是蛇頭,對(duì)蛇頭的方向snake0.direc

16、t進(jìn)行判斷case vk_up:if(snake0.direct!=2)snake0.direct=1;break;/蛇頭不等于“下”的時(shí)候,才能做出“上”的操作動(dòng)作,否則則忽略用戶“向上”的操作按鍵效果case vk_down:if(snake0.direct!=1)snake0.direct=2;break;/蛇頭不等于“上”的時(shí)候,才能做出“下”的操作動(dòng)作,否則則忽略用戶“向下”的操作按鍵效果case vk_left:if(snake0.direct!=4)snake0.direct=3;break;/蛇頭不等于“右”的時(shí)候,才能做出“左”的操作動(dòng)作,否則則忽略用戶“向左”的操作按鍵效果

17、case vk_right:if(snake0.direct!=3)snake0.direct=4;break; /蛇頭不等于“左”的時(shí)候,才能做出“右”的操作動(dòng)作,否則則忽略用戶“向右”的操作按鍵效果cview:onkeydown(nchar, nrepcnt, nflags);9.3.4對(duì)onrbuttondown()具體添加代碼void cmfcexp8_4view:onrbuttondown(uint nflags, cpoint point) /這個(gè)函數(shù)功能是:用鼠標(biāo)右鍵屏幕,就會(huì)馬上顯示當(dāng)前位置的坐標(biāo)信息cstring str;str.format(%d,%d,point.x,po

18、int.y);afxmessagebox(str);cview:onrbuttondown(nflags, point);代碼說明:這個(gè)函數(shù)并不是本游戲中必要添加的函數(shù),只是為了在后面游戲頁面的設(shè)計(jì)的時(shí)候可以用鼠標(biāo)右鍵屏幕了解大概的屏幕坐標(biāo)信息,才特地做的。這個(gè)設(shè)備坐標(biāo)系以用戶區(qū)窗口左上角為(0 , 0)原點(diǎn),x坐標(biāo)向右為正,y坐標(biāo)向下為正。9.3.5對(duì)oninit()具體添加代碼/畫一個(gè)矩形,用當(dāng)前的畫筆畫矩形輪廓,用當(dāng)前畫刷進(jìn)行填充cdc *pdc=getdc();cbrush drawbrush=(rgb(100,100,100);cbrush *drawbrush=pdc-select

19、object(&drawbrush);for(int i=0;irectangle(snakei.x*20,snakei.y*20,(snakei.x+1)*20,(snakei.y+1)*20);pdc-selectobject(drawbrush);代碼說明:利用windows給我們提供的cdc類來進(jìn)行畫圖,我們首先用一個(gè)指向cdc類的指針去接受與該窗口相關(guān)聯(lián)的dc句柄,然后用定義畫刷一個(gè)drawbrush對(duì)象,并且用rgb(100,100,100)來給畫刷初始化顏色。并且用selectobject(&drawbrush);函數(shù)把對(duì)象畫刷選入到設(shè)備描述表中,用for循環(huán)依次把貪吃蛇的3個(gè)節(jié)

20、點(diǎn)畫出來。void cmfcexp8_4view:oninit()9.3.6對(duì)控件添加具體代碼void cmfcexp8_4view:onstart() cmfcexp8_4view:ondrawnew();settimer(1,3000,null);/定時(shí)器。3000是3000毫秒,即3秒afxmessagebox(3秒后開始游戲!);void cmfcexp8_4view:onpause() killtimer(1);afxmessagebox(暫停游戲.);void cmfcexp8_4view:oncontinue() settimer(1,10,null);void cmfcexp8

21、_4view:onexit() afxmessagebox(退出游戲.);exit(0);代碼說明:由于之前我們?cè)O(shè)定了wm_timer消息,我們能運(yùn)用計(jì)時(shí)器功能。用wm_timer來設(shè)置定時(shí)器,settimer(m_hwnd,1,1000,null)是一個(gè)1秒觸發(fā)一次的定時(shí)器,在mfc程序中settimer被封裝在cwnd類中,調(diào)用就不用指定窗口句柄了,所以我們這里可以只去后3個(gè)參數(shù)寫成settimer(1,10,null);其中1000為1秒。9.3.7對(duì)ondraw()添加具體代碼,實(shí)現(xiàn)出現(xiàn)背景圖片 在“resource.h”中添加“#define idb_my_bitmap 130” 在

22、“res”中添加“qiche.bmp” 在“mfcexp84.cpp”中添加“idb_my_bitmap bitmap discardable resqiche.bmp”添加以下代碼:void cmfcexp8_4view:ondraw(cdc* pdc)/以res文件夾中的bmp格式圖片為背景cmfcexp8_4doc* pdoc = getdocument();assert_valid(pdoc);cdc memdc;memdc.createcompatibledc(null);memdc.selectobject(pdoc-m_bitmap);pdc-bitblt(0,0,pdoc-m_

23、nwidth,pdoc-m_nheight,&memdc,0,0,srccopy);9.3.8對(duì)ondrawnew()添加具體代碼 在添加代碼之前,在“mfcexp8_4view.h”中添加:class cmfcexp8_4view : public cviewprotected: / create from serialization onlycmfcexp8_4view();declare_dyncreate(cmfcexp8_4view)/ attributespublic:cmfcexp8_4doc* getdocument();cclientdc* mydc;cclientdc* m

24、y2dc;/ operations 對(duì)“cclientdc* mydc”和“cclientdc* my2dc”建立類向?qū)nt cmfcexp8_4view:oncreate(lpcreatestruct lpcreatestruct) if (cview:oncreate(lpcreatestruct) = -1)return -1;/ todo: add your specialized creation code heremydc =new cclientdc(this);my2dc =new cclientdc(this);return 0; void cmfcexp8_4view:o

25、ndrawnew()rect rect;rect.left=rect.top=20;rect.right=rect.bottom =500;cbrush brush(rgb(255,255,255);mydc-fillrect (&rect,&brush);/畫出第二層背景,一個(gè)白色正方形my2dc-setbkcolor(rgb(0,0,0);my2dc-settextcolor(rgb(255,255,255);my2dc-textout(750,400,單擊“游戲”,選擇“開始游戲”);my2dc-settextcolor(rgb(255,0,255);my2dc-textout(800,

26、430,請(qǐng)不要咬到自己或撞到圍墻!);/在界面右下角分別出現(xiàn)三行背景色為黑色的彩色文本9.3.9對(duì)ontimer(uint nidevent)添加具體代碼void cmfcexp8_4view:ontimer(uint nidevent) cdc *pdc=getdc();cstring soure;if(snake0.len=2)settimer(1,370,null);if(snake0.len=3)settimer(1,270,null);if(snake0.len=6)settimer(1,200,null);if(snake0.len=9)settimer(1,100,null);/

27、這段代碼的作用是根據(jù)蛇的長(zhǎng)度來進(jìn)行settimer()函數(shù)的定義,可以根據(jù)長(zhǎng)度來進(jìn)行游戲難度的設(shè)定/如上代碼分別370ms 270ms 200ms 100ms進(jìn)行一次新的移動(dòng)。soure.format(當(dāng)前得分:%d!,(snake0.len-3)*10); my2dc-settextcolor(rgb(0,255,0);my2dc-textout(800,460,soure);/撞界判斷if(snake0.x*20=37|snake0.y*20=462|snake0.y*20=462)killtimer(1);afxmessagebox(soure);cmfcexp8_4view:onexi

28、t();/蛇身相撞判斷if(snake0.len3)for(int sn=snake0.len-1;sn0;sn-)/根據(jù)蛇長(zhǎng)sn,進(jìn)行sn次for sn-1次循環(huán),判斷蛇自己是否咬到了自己if(snake0.x*20=snakesn.x*20&snake0.y*20=snakesn.y*20)killtimer(1);/止計(jì)時(shí)器,和之前的settimer()對(duì)應(yīng)afxmessagebox(soure);cmfcexp8_4view:onexit(); /pdc-selectstockobject(white_pen);/把白色的“pen”選入設(shè)備進(jìn)行畫圖pdc-rectangle(snake

29、snake0.len-1.x*20,snakesnake0.len-1.y*20,(snakesnake0.len-1.x+1)*20,(snakesnake0.len-1.y+1)*20);/讓它去畫最后一個(gè)節(jié)點(diǎn)for(int i=snake0.len-1;i0;i-)/貪吃蛇的蛇身移動(dòng)snakei.x=snakei-1.x;snakei.y=snakei-1.y;/行走方向判斷if(snake0.direct=1)snake0.y-;if(snake0.direct=2)snake0.y+;if(snake0.direct=3)snake0.x-;if(snake0.direct=4)sn

30、ake0.x+;/“1234”本別代表“上下左右” x+,y+進(jìn)行移動(dòng)/然后用選定畫刷畫出一個(gè)新節(jié)點(diǎn)的矩形作為頭結(jié)點(diǎn)pdc-selectstockobject(black_pen);cbrush drawbrush=(rgb(255,0,0);/控制蛇和食物的顏色cbrush *drawbrush=pdc-selectobject(&drawbrush);pdc-rectangle(snake0.x*20,snake0.y*20,(snake0.x+1)*20,(snake0.y+1)*20);pdc-selectobject(drawbrush);/判斷吃豆的條件,撞到就吃if(snake0

31、.x*20=food.x*20&snake0.y*20=food.y*20)snake0.len+;food.isfood=1;snakesnake0.len-1.x=snakesnake0.len-2.x;snakesnake0.len-1.y=snakesnake0.len-2.y;/如果食物被吃了 就生成if(food.isfood=1)srand(unsigned)time(null);/當(dāng)食物被吃了,指定食物在小于70 和大于430的矩形區(qū)域內(nèi)出現(xiàn)dofor(int isfo=snake0.len-1;isfo=0;isfo-)if(snake0.x*20=snakeisfo.x*2

32、0&snake0.y*20=snakeisfo.y*20)food.x=rand()%25;food.y=rand()%25;while(food.x*2070|food.y*20430|food.y*20430);pdc-rectangle(food.x*20,food.y*20,(food.x+1)*20,(food.y+1)*20);food.isfood=0;/把食物的屬性更改為“存在”cview:ontimer(nidevent);10運(yùn)行界面1 運(yùn)行程序后開始游戲時(shí)11總結(jié)這次課程設(shè)計(jì),我選擇用編寫一個(gè)貪食蛇的程序。在編寫程序之前,我只有很少的關(guān)于的程序設(shè)計(jì)知識(shí),因此,在剛開始,我

33、遇到了很多困難。為此,我查閱了許多關(guān)于貪食蛇的資料,也在網(wǎng)上看了許多關(guān)于貪食蛇的算法。做好了準(zhǔn)備之后,才開始寫我的貪食蛇,并且加了很多附加功能。這次課程設(shè)計(jì)鍛煉了我的動(dòng)手能力。通過完成貪食蛇游戲的程序設(shè)計(jì),累積了我的實(shí)際編程經(jīng)驗(yàn),也提高了我獨(dú)立解決問題的能力。12參考文獻(xiàn)1. 歐陽志宏,mfc程序設(shè)計(jì)輕松入門,人民郵電出版社,北京,2009-4-12. 姚領(lǐng)田,mfc窗口程序設(shè)計(jì),水利水電出版社,北京,2007-5-13. 侯俊杰,深入淺出mfc(第2版), 華中科技大學(xué)出版社,武漢,2001-1-24.鄒箏、康曉林、袁建州,visual c+6.0實(shí)用教程,電子工業(yè)出版社,北京,2008-1

34、-1 5. 任哲,mfc windows 應(yīng)用程序設(shè)計(jì),清華大學(xué)出版社,北京,2007-9-1 大 學(xué)畢業(yè)設(shè)計(jì)(論文)(頁面設(shè)置:論文版心大小為155mm245mm,頁邊距:上2.6cm,下2.6cm,左2.5cm,右2cm,行間距20磅,裝訂線位置左,裝訂線1cm,)此處為論文題目,黑體2號(hào)字(以下各項(xiàng)居中列,黑體小四號(hào))年 級(jí): 學(xué) 號(hào): 姓 名: 專 業(yè): 指導(dǎo)老師: (填寫時(shí)間要用中文)二零零八年六月 西南交通大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 第v頁 大學(xué)本科畢業(yè)設(shè)計(jì)(論文)院 系 專 業(yè) 年 級(jí) 姓 名 題 目 指導(dǎo)教師評(píng) 語 指導(dǎo)教師 (簽章)評(píng) 閱 人評(píng) 語 評(píng) 閱 人 (簽章)成 績(jī)

35、答辯委員會(huì)主任 (簽章) 年 月 日 畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書班 級(jí) 學(xué)生姓名 學(xué) 號(hào) 專 業(yè) 發(fā)題日期: 年 月 日 完成日期: 年 月 日題 目 題目類型:工程設(shè)計(jì) 技術(shù)專題研究 理論研究 軟硬件產(chǎn)品開發(fā)一、 設(shè)計(jì)任務(wù)及要求 二、 應(yīng)完成的硬件或軟件實(shí)驗(yàn) 三、 應(yīng)交出的設(shè)計(jì)文件及實(shí)物(包括設(shè)計(jì)論文、程序清單或磁盤、實(shí)驗(yàn)裝置或產(chǎn)品等) 四、 指導(dǎo)教師提供的設(shè)計(jì)資料 五、 要求學(xué)生搜集的技術(shù)資料(指出搜集資料的技術(shù)領(lǐng)域) 六、 設(shè)計(jì)進(jìn)度安排第一部分 (4 周)第二部分 (6 周)第三部分 (2 周) 評(píng)閱及答辯 (1 周) 指導(dǎo)教師: 年 月 日系主任審查意見:審 批 人: 年 月 日注:設(shè)

36、計(jì)任務(wù)書審查合格后,發(fā)到學(xué)生手上。 大學(xué)學(xué)院 20xx年制摘 要正文略關(guān)鍵詞:關(guān)鍵詞; 關(guān)鍵詞; 關(guān)鍵詞; 關(guān)鍵詞(關(guān)鍵詞之間分號(hào)隔開,并加一個(gè)空格)abstract正文略keywords: keyword; keyword; keyword; keyword目 錄摘 要ivabstractv第1章 緒 論11.1 本論文的背景和意義11.2 本論文的主要方法和研究進(jìn)展11.3 本論文的主要內(nèi)容11.4 本論文的結(jié)構(gòu)安排1第2章 各章題序及標(biāo)題小2號(hào)黑體22.1 各節(jié)點(diǎn)一級(jí)題序及標(biāo)題小3號(hào)黑體22.1.1 各節(jié)的二級(jí)題序及標(biāo)題4號(hào)黑體22.2 頁眉、頁腳說明22.3 段落、字體說明22.4 公

37、式、插圖和插表說明2結(jié) 論5致 謝6參考文獻(xiàn)7附 錄 1 標(biāo)題8附 錄 2 標(biāo)題9第10頁 共39頁大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 第1章 緒 論1.1 本論文的背景和意義引用文獻(xiàn)標(biāo)示應(yīng)置于所引內(nèi)容最末句的右上角,用小五號(hào)字體1。當(dāng)提及的參考文獻(xiàn)為文中直接說明時(shí),其序號(hào)應(yīng)該用4號(hào)字與正文排齊,如“由文獻(xiàn)8,1014可知”1.2 本論文的主要方法和研究進(jìn)展1.3 本論文的主要內(nèi)容1.4 本論文的結(jié)構(gòu)安排第2章 各章題序及標(biāo)題小2號(hào)黑體2.1 各節(jié)點(diǎn)一級(jí)題序及標(biāo)題小3號(hào)黑體正文另起一段,數(shù)字與標(biāo)題之間空一格2.1.1 各節(jié)的二級(jí)題序及標(biāo)題4號(hào)黑體正文另起一段,數(shù)字與標(biāo)題之間空一格2.1.1.1 各節(jié)的三級(jí)題序及標(biāo)題小4號(hào)黑體正文另起一段,數(shù)字與標(biāo)題之間空一格1. 款標(biāo)題 正文接排。本行縮進(jìn)2字符,標(biāo)題與正文空一格(1)項(xiàng)標(biāo)題 正文接排,本行縮進(jìn)1字符,標(biāo)題與正文空一格。(2)項(xiàng)標(biāo)題 2. 款標(biāo)題2.2 頁眉、頁腳說明在版心上邊線隔一行加粗線,寬0.8mm(約2.27磅),其上居中打印頁眉。頁眉內(nèi)容一律用“西南交通大學(xué)本科畢業(yè)設(shè)計(jì)(論文)”,字號(hào)用小四號(hào)黑體。頁碼置于頁眉右端,采用形

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論