C++课程设计报告 - 拼图游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、需求分析 (1)

1.课程设计目的 (1)

2.程序所实现的功能 (1)

二、设计内容 (1)

1. 主模块图 (1)

2.1. 主程序流程图 (2)

2.2 用例图 (2)

2.3主程序调用关系图 (3)

2.4函数主要调用关系图 (3)

三、设计方案论述 (3)

四、调试分析 (4)

1.实际完成的情况 (4)

2.程序的性能分析 (4)

3.上机过程中出现的问题及其解决方案 (4)

4.程序中可以改进、扩充的功能及设计实现构想 (4)

五、用户手册 (4)

六、设计总结 (5)

七、程序中主要的功能函数 (6)

八、主要参考文献 (6)

九、附录 (6)

一、需求分析

1.课程设计目的

(1)运用C++语言设计拼图游戏具有极强的实践性,加强我们对C++课程基础知识点的理解掌握和灵活运用理能力,培养实际分析问题能力,养成良好的编程习惯;了解C++面向对象的设计方法与技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养分析实际问题和解决问题的能力,具备使用面向对象程序设计开发工具设计实际系统的能力。

(2)进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力,初步掌握MFC编程的基本功能,掌握一种可视化编程的方法,学习使用CStatic控制操作位图,加强对C++面向对象程序设计的理解。

(3)掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识,学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力,为后续的相关课程的学习打下基础。

(4)锻炼实际的编程能力,提高调查资料、查阅技术文献、资料以及编写软件设计文档的能力,提高自学编程的能力。

2.程序所实现的功能

(1)本程序除了实现了拼图所要求的基本功能外,还添加了背景音乐、计算步数和游戏所用的时间,当游戏开始时背景音乐自动循环播放,步数随player操作自动增加,时间自动增加。

(2)进入游戏界面后,player可以在菜单栏中选择游戏的难度、图片风格和拼图图像,亦可以自定义图片,若选择“简单”,程序将图片分成9块,若选择“困难”,程序将图片分成16块.

(3)单击“重置”或按F3菜单项会弹出一个对话框让用户确认是否重置游戏。

(4)单击任意图象,图像将随机排列,并开始计时和记步,用户通过鼠标单击空格周围的图片来改变其位置,用户没单击一次,步数增加一次。

(5)游戏中用户可通过单击“提示”菜单项或按F4来查看图像的缩略图及游戏相关信息。

(6)游戏状态栏显示用户所用时间及步数,成功时状态栏给出提示信息和所花费时间、步数,用户可选择其他图像或难度进行游戏。

二、设计内容

1.主模块图

2.1主程序流程图

2.2用例图:

用户

选择背景图片选择难度级别

开始游戏

是否选择

不显示显示原图

原图提示

拼图成功

返回重新选择背景图

片及难度级别

2.3主程序类调用关系图

2.4 CPictureDlg类中成员函数主要调用关系图

三、设计方案论述

本程序有一个CPictureDlg类,它公有继承CDialog类的一些性质。CDialog类中包括位图的读入和显示,拼图游戏中的Picture都是位图资源。在游戏程序中,采用Static Text即静态文本控件来显示位图。静态文本控件的功能比较简单,可显示字符串,图标,位图。先为对话框的“游戏”中的菜单项“容易”和“困难”添加消息响应为另外还需为CPictureDlg 类添加BOOL型变量Easy来标识游戏的难度(分为9格或16格),同时添加BOOL型变量IsRnd 用来标识图格是否进行了随机位置的初始化,接下来为CPictureDlg对话框添加16个Static 控件(可以先设置好一个控件后,再通过复制得到其它的控件),并设置它们的属性:ID 设为IDC_IMAGE0到IDC_IMAGE15,Tabstop请勾上,Type属性设为Bitmap,控件添加好了后,我们需要添加一个CStatic类型的数组m_Image[16],与这16个Static控件相关联,通过这个操作这个数组的下标来控制这16个控件对图像进行分格显示。建立关联的代码应写在CPictureDlg类中系统生成的OnInitDialog()函数体内,这个函数是整个对话框程序运行的入口,相当于一个main函数,在这个函数体里,我们也需要为之前声明的变量提供初始值,即将变量初始化,变量没有初始化的后果通常会造成内存泄露,使程序在运行时出现莫名奇妙的错误。判断游戏是否完成的函数IsWin(),只要所有的Static控件都回到了相应的位置,就可以认为用户己完成了拼图,即游戏完成。

四、调试分析

1.实际完成的情况

(1)完成的功能:

本程序除了实现了拼图所要求的基本功能外,还添加了背景音乐、计算步数和游戏所用的时间,当游戏开始时背景音乐自动循环播放,步数随player操作自动增加,时间自动增加。(2)支持的数据类型:

BOOL类型、控件数组类型。

2.程序的性能分析

本程序能够很好的运行,并且画面质量以及音质方面都很高

3.上机过程中出现的问题及其解决方案

1)开始导入图片时,图片不能显示,重新导入bmp格式的图片后解决了。

2)开始建立了时间函数OnTimer,但是游戏运行后时间并不增加,在开始游戏对应的函数中增加SetTimer函数,得到想要的结果。

3)初始设置的快捷键无效,查阅资料后加入Accelerator及相应的函数,使得快捷键有效。

4.程序中可以改进、扩充的功能及设计实现构想。

1)游戏的难度等级有点少,可以适当增加几个等级。

2)游戏未设置根据用户花费的时间和步数判定用户的成绩并进行排名的功能,可以增设,以便用户了解自己玩的水平。

五、用户手册

1.打开Picture文件夹,双击Ppicture.dsw标志打开程序,然后运行。

2.开始程序会出现以下欢迎界面:

3.用户需要选择图片、难度和图片风格,然后单击图片开始游戏,计时器开始计时,用户通过鼠标单击空格周围的图片来改变其位置,用户每单击一次,步数增加一次。

4.游戏中用户可通过单击“提示”菜单项或按F4来查看图像的缩略图及游戏相关信息。

图像缩略图

相关文档
最新文档