面向对象程序设计课程设计(报告模板)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2014~2015学年第2学期课程名称面向对象程序设计指导教师左新娥职称讲师学生姓名自己填写专业班级自己填写学号自己填写题目自己填写成绩起止日期2015年6月22日~2015年6月28日目录清单序号材料名称资料数量备注1课程设计任务书12课程设计说明书134562课程设计任务书2014—2015学年第2学期学院(系、部)计算机与通信学院专业自己填写班级自己填写课程名称:面向对象程序设计学生姓名:自己填写设计题目:课自己填写指导教师:左新娥完成期限:自2015年6月22日至2015年6月28日共1周内容及任务一、设计内容自己填写二、设计任务课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。三、设计要求1.按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。2.课程设计所使用的编程语言任选,但建议使用C或C++;3.绿色软件:程序运行不需安装,避免写系统和注册表;进度安排起止日期工作内容课程设计前一周召开动员大会,学生选题;2015-6-22~2015-6-23系统分析和设计;2015-6-24~2015-6-26熟悉软件开发工具、编码系统、系统测试以及中期答辩;2015-6-27~2015-6-28撰写并提交课程设计说明书(含电子文档)、源程序等。主要参考资料1.谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.2.张海林,杜忠友,姜玉波.VisualC++简明教程[M].北京:电子工业出版社,2007.3.丁展,四维科技.VisualC++游戏开发技术与实例[M].北京:人民邮电出版社,2005.4.姚领田.精通MFC程序设计[M].北京:人民邮电出版社.2000.5.清宏计算机工作室.VisualC++6.0编程技巧(多媒体与系统篇)[M].北京:机械工业出版社,2001.6.王华,叶爱亮,祁立学等.VisualC++6.0编程实例与技巧[M].北京:机械工业出版社,1999.7.钱新贤,杨猛,程兆炜等.VisualC++编程疑难详解[M].北京:人民邮电出版社,2000.指导教师(签字):年月日系(教研室)主任(签字):年月日.3.课程设计说明书课程名称:面向对象程序设计与c++语言设计题目:c++实现拼图游戏专业:物联网工程班级:1302学生姓名:彭文斌学号:13408500225指导教师:左新娥2015年6月26日.4.目录1课程设计简介...................................51.1课程设计的目的................................51.2课程设计内容..................................52课程设计实现过程................................62.1系统结构框图..................................62.2模块流程图...................................102.3关键代码.....................................232.4主要数据结构.................................232.5测试与评价...................................233设计总结.......................................254参考文献.......................................26整个写完后使用更新域(在目录上点击右键选择更新域)确定各部分的页码!!.5.1课程设计简介(宋体,三号)1.1课程设计的目的(宋体,小三)通过c++来实现拼图游戏,用户可以使用鼠标和键盘来控制游戏(正文字体要求为宋体,字号为小四,行间距20磅,每段前空2字符)1.2课程设计内容(宋体小三)数据结构,将整个所有图像块记为一个二维数组m_board[][],写了一个Board类来控制图像的移动和修改。Flip类是用来实现这个功能的,其中定义了移动一格的帧数、速度等信息。然后整个游戏是一个类Game。算法及其他,基本上全是小算法,有一点就是游戏开始时必须将所有的图像块置乱,但是如果是随机打乱就不能保证这个游戏一定有可行解,这个问题的讨论可以参见8数码问题,这种问题的有解是需要条件的。至于如何保证这个游戏有解,我用了最笨的方法,就是进行逆操作,一开始随机对原图进行操作,循环一定次数以后的图像就是置乱的图像了,但是这种方法有一个缺陷,当图像块非常多时,比如20*20,这种方法只能置乱图像的一部分,而另一部分却和原图差不多。为了消除这个问题,对每种操作(比如向上移动)重复执行随机次,这样就基本上解决的前面的问题了。其实这个问题可以用数学方法来解决,又快又省力,但是自己对这一部分不是很了解,只能用笨方法了。关于平滑运动,只要在图像变换的时候插入几帧图像就好了,利用定时器来不断显示,写这个图像滑动效果很纠结,细节的问题考虑的比较多,一个好的数据结构的支持是必不可少的。(正文字体要求为宋体,字号为小四,行间距20磅,每段前空2字符).6.2课程设计实现过程(宋体,三号)(要求写详细过程)(正文字体要求为宋体,字号为小四,行间距20磅,每段前空2字符)该部分必须包括:系统结构框图、各模块流程图、关键代码、主要的数据结构、测试与评价等2.12.3头文件(宋体,小三)#includestdh.hclassBoard{private:intm_b[MAXN_BOARD][MAXN_BOARD];//emptyblockposition:exey//oldemptyblockpositionoex,oeyintm_ex,m_ey;intm_oex,m_oey;intm_dir;//reverse-directionofemptyblockboolm_bMove;//iftheboardmovedintm_nx,m_ny;intm_nBlock;public:Board();intCreate();boolCheck();//checkifthegamewinintGetMat(int,int);intSetMat(int,int,int);intSetXY(int,int);intGetEX();intGetEY();intGetOEX();.7.intGetOEY();intGetDir();intMove(int,int);boolCheckMove();intResetMove();intUp();intDown();intLeft();intRight();intClick(int,int);//whenUserclickthepictureintInit();};#includestdh.h/*ClassFlipstoredallelementsoftheflipping-block.Itwillbeusedwhentheclickedblockmovingtothedestination.*/classFlip{public:intm_cnt;intm_ux,m_uy;//uX,uYpixelsaremovedperm_timeintm_time;//uSecondsintm_dir;//directionofflipintm_cx,m_cy;//currentposofblockintm_sx,m_sy;//sourceposofblockintm_dx,m_dy;//destinationposofblockintGetXY(int,int&,int&);intGetTime();intSetXY(int,int,int,int);intSetTime(int);.8.intSetCnt(int,int,int);intSetDir(int);boolFinish(HWND);//checkiftheflippingover};#includestdh.h#includeFlip.h#includeBoard.hclassGame{private:Boardm_board;Flipm_flip;boolm_bMove;intm_ex,m_ey;intm_nx,m_ny;intm_nBlock;intm_ux,m_uy;intm_vFlip;intm_xFlip,m_yFlip;HBITMAPm_hBmp;HBITMAPm_hMemBmp;BITMAPm_bmp;HDCm_mdc,m_bufdc;//doublecacheHWNDm_hWnd;public:Game();intSetLevel(int,int);.9.intLoadBmp(HINSTANCE,int);intInit(HWND);//InitthegameintCreate(HWND);intPaint(HWND);intClick(int,int);//UserclickedthepictureintKey(WPARAM);//UserpushdownthekeyboardintInitFlip();//initthem_flipandthenflippingstart.boolCheckWin();intRelease(HWND);};//{{NO_DEPENDENCIES}}//MicrosoftVisualC++generatedincludefile.//Usedbyres.rc//#defineIDB_AC103#defineIDB_BH104//Nextdefaultvaluesfornewobjects//#ifdefAPSTUDIO_INVOKED#ifndefAPSTUDIO_READONLY_SYMBOLS#define_APS_NEXT_RESOURCE_VALUE105#define_APS_NEXT_COMMAND_VALUE40001#define_APS_NEXT_CONTROL_VALUE1001#define_APS_NEXT_SYMED_VALUE101#endif#endif#pragmaonce.10.#includewindows.h#includectime#includecmathusingnamespacestd;constintMAXN_BOARD=10;constintCLIENT_X=1024;constintCLIENT_Y=768;constintOFFSET_LINE=1;constintDIR_UP=0;constintDIR_DOWN=1;constintDIR_LEFT=2;constintDIR_RIGHT=3;constintFLIP_CNT=8;constintFLIP_TIME=18;2.2源文件(宋体,小三)#includeBoard.hBoard::Board(){memset(m_b,-1,sizeof(m_b));m_nx=m_ny=m_ex=m_ey=0;m_nBlock=0;}intBoard::Create(){memset(m_b,-1,sizeof(m_b));m_nx=m_ny=m_ex=m_ey=0;m_nBlock=0;return0;}intBoard::SetXY(intnx,intny){m_nx=nx;m_ny=ny;m_nBlock=m_nx*m_ny;m_oex=m_ex=m_nx-1;m_oey=m_ey=m_ny-1;.11.return0;}intBoard::SetMat(intx,inty,intval){m_b[y][x]=val;retu

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功