c++贪吃蛇课设Word格式.docx
- 文档编号:15832546
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:22
- 大小:118.98KB
c++贪吃蛇课设Word格式.docx
《c++贪吃蛇课设Word格式.docx》由会员分享,可在线阅读,更多相关《c++贪吃蛇课设Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
贪吃蛇
课程设计(论文)任务
程序设计的任务与要求:
(1).掌握面向对象程序设计语言C++的基本语法
(2).掌握C++面向对象设计的思想
(3).掌握VC++6.0与DEVC++开发工具的使用
(4).运用标准C++规范设计应用程序
设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出设计报告。
指导教师评语及成绩
成绩:
指导教师签字:
年月日
目录
第1章课程设计目的与要求1
1.1设计目的1
1.2实验环境1
1.3预备知识1
1.4设计要求1
第2章课程设计内容2
2.1课题描述2
2.2系统设计2
2.2.1功能分析2
2.2.2面向对象设计2
2.2.2类成员描述7
2.3程序实现10
2.3.1源码分析10
2.3.2运行结果15
第3章课程设计总结16
参考文献17
第1章课程设计目的与要求
1.1设计目的
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握面向对象程序设计的方法。
(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序和修改程序。
1.2实验环境
硬件要求能运行Windows操作系统的微机系统。
C++语言应用程序开发软件使用:
VC++系统,或其他C++语言应用程序开发软件。
1.3预备知识
熟悉C++语言程序设计的基本知识及VC++编辑器的使用方法。
1.4设计要求
1.仔细分析设计题目,画出程序流程图,编写程序源代码。
2.积极上机调试源程序,增强编程技巧与调程能力。
3.认真书写课程设计预习报告,课程设计说明书。
4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。
第2章课程设计内容
2.1课题描述
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。
我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。
虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。
因此我选定了这个题目。
2.2系统设计
2.2.1功能分析
1.贪吃蛇的基本玩法:
即可以用上、下、左、右键控制游戏区蛇的运动方向,使之向着食物方向运动,并吞吃食物使身体增长。
2.调节蛇的运动速度:
即用户可以调节蛇的运动速度来选择不同的难度。
3.选择关卡功能:
即游戏分多个难度级别(关卡),用户可以选择不同的难度级别进行游戏。
4.背景颜色变换功能:
即用户可以选择一种自己喜欢的颜色作为游戏区的背景色,避免对一种颜色产生视觉疲劳。
2.2.2面向对象设计
1.类的设计
本程序设计了IActionHandler类、IGraphicOut类、CTraceFn类、CSnakeGame类、CSnakeView类、CScoreBoardDlg类、CChangeSpeedDlg类等。
IActionHandler类:
用于处理蛇的运动等操作。
IGraphicOut类:
显示面板信息。
CTraceFn类:
描绘踪迹。
CSnakeGame类:
控制游戏。
CSnakeView类:
游戏界面控制。
CScoreBoardDlg类:
得分信息控制。
CChangeSpeedDlg类:
移动速率控制。
CMainFrame类:
主窗口设置。
基类为IActionHandler类、IGraphicOut类、CTraceFn类。
派生类CSnakeGame类由IActionHandler类继承,CSnakeView类由IGraphicOut类继承。
2.UML类图
CSnakeGame
-m_yFood:
int
-m_xFood:
-m_speed:
-m_mouseOpen:
bool
-m_timerCount:
-m_score:
-m_curDir:
Direction
-m_ySize:
-m_xSize:
-m_yPos:
-m_xPos:
-m_yPosBody:
-m_xPosBody:
+getSpeed():
+changeSpeed(speed:
int):
void
+leftMove():
+rightMove():
+upMove():
+downMove():
+timeUp():
+exit():
+draw():
<
create>
>
-CSnakeGame(pGO:
IGraphicOut)
destroy>
-CSnakeGame()
IAcrtionHandle
#m_pGO:
IGraphicOu
-IActionHandler(pGO:
-IActionHandler()
图2.2IAcrtionHandle类
IGraphicOut
#m_pDC:
+scoreBoard(scoreMessages:
char):
+redraw():
+drawHead(type:
int,x:
int,y:
+drawBody(x:
+drawFood(type:
+drawHorzWall(x1:
int,x2:
+drawVertWall(x:
int,y1:
int,y2:
+drawScore(score:
+setDisplaySize(width:
int,height:
+close():
-IGraphicOut()
图2.1CSnakeGame类
图2.3IGraphicOut类
CSnakeView
-m_wTimerRes:
UINT
-m_timerID:
-m_pActionHandler:
IActionHandler
-m_sizeDB:
CSize
-m_pBmpDB:
CBitmap
-m_pDCMemDB:
CDC
-m_numCellsY:
-m_numCellsX:
-CSnakeView()
CppMacro>
-DECLARE_DYNCREATE(CSnakeView)
CppFriend>
-myTimerCallback(wTimerID:
UINT,msg:
UINT,dwUser:
DWORD,dw1:
DWORD,dw2:
DWORD):
+OnDraw(pDC:
CDC):
+GetDocument():
CSnakeDoc
+PreCreateWindow(cs:
CREATESTRUCT):
BOOL
+OnInitialUpdate():
+SetActionHandler(pHandler:
IActionHandler):
-drawSprite(pDC:
CDC,resID:
int,ix:
int,iy:
+AssertValid():
+Dump(dc:
CDumpContext):
-closeWindow():
#OnSize(nType:
UINT,cx:
int,cy:
#OnPaint():
#OnDestroy():
#OnChangeLevel():
#OnPreparePrinting(pInfo:
CPrintInfo):
#OnBeginPrinting(pDC:
CDC,pInfo:
#OnEndPrinting(pDC:
#OnKeyDown(nChar:
UINT,nRepCnt:
UINT,nFlags:
UINT):
#OnTimer(nIDEvent:
#OnCreate(lpCreateStruct:
LPCREATESTRUCT):
图2.4CSnakeView类
CTraceFn
-nIndent:
-AfxTrace(lpszFormat:
LPCTSTR,...):
AFX_CDE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 贪吃 蛇课设