九宫格拼图游戏
- 格式:doc
- 大小:1.31 MB
- 文档页数:17
九宫格拼图游戏设计文档
一、综合设计目的、条件、任务和内容要求:
1.设计目的
《Windows程序设计》是计算机科学与技术专业本科生的一门学科基础课程。Windows程序以图形用户界面(GUI)给用户提供各种功能,在各行各业有着广泛的应用。基于MFC的Windows程序设计是进行Win32程序设计的一种主流方法。
本课程主要介绍Windows程序设计的思想和方法,以及MFC的常见应用。本课程综合应用算法与程序设计、面向对象程序设计、数据结构、操作系统、数据库系统原理等课程的知识和方法,面向实际应用和开发,以培养、提高学生的程序设计能力和软件工程能力为目的。通过课程教学、上机实践、综合设计等教学环节,使学生逐步掌握Windows程序设计和MFC的常见应用,并能在实践中熟练应用所掌握的工具和方法解决实际问题。
2.实施方式
本课程重在训练学生的综合设计能力和项目开发应用能力,并强调学生的上机实践能力。按照常规考试方式,不能体现本课程“以理论为基础,侧重实践和应用”的特点,也不能考查学生理解本课程知识的程度以及所培养具备的MFC程序设计应用能力。
3.任务和要求:
针对某一综合应用项目,完成如下任务:
(1)简要的需求分析
(2)规划系统主要功能及其结构。
(3)完成各项系统功能的设计。
(4)形成项目文档和开发报告。
4.工具与环境:
设计工具:Visual Studio
二、进度安排:
第1周:基础知识串联复习
第2周:撰写设计报告,并按时递交。
第3周:实现系统各模块功能功能
第一部分设计方案论述
2.1项目方案论述
2.1.1具体论述
1.CMenu* GetSubMenu(int nPos) 若弹出菜单位于指定的位置,则返回CMenu 对象的指针,其中CMenu对象要包含弹出菜单的句柄;否则返回NULL。如果CMenu 对象不存在,那么将创建临时CMenu对象,但返回的CMenu指针不应被存储。nPos指定包含在菜单中的弹出菜单的位置。对于第一个菜单项,开始位置值为0。
2.BOOL AppendMenu(UINT nFlags, UINT nIDNewItem=0, LPCTSTR lpszNewItem= NULL) 在末尾添加一项,若nFlags为MF_SEPARATOR表示增加一个分隔条,这样其他两个参数将会被忽略;若nFlag为MF_STRING表示添加一个菜单项。nIDNewItem为该菜单的ID命令值;若nIDNewItem为MF_POPUP表示添加一个弹出菜单项,这时nIDNewItem为另一菜单的句柄HMENU。lpszNewItem为菜单文字说明。
3.BOOL InsertMenu(UINT nPosition,UINT nFlags ,UINT nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL) 用于在指定位置插入一菜单,变量nPosition指定插入位置。如果nFlags 包含MF_BYPOSITION 则表明插入在nPosition 位置,如果包含MF_BYCOMMAND表示插入在ID为nPosition的菜单处。
4.BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem=0 ,
LPCTSTR lpszNewItem = NULL) 用于修改某一位置的菜单,如果nFlags包含MF_BYPOSITION,
则表明修改nPosition位置的菜单,如果包含MF_BYCOMMAND表示修改ID为
nPosition处的菜单。
5.BOOL RemoveMenu(UINT nPosition, UINT nFlags) 用于删除某一位置的菜单。如果 nFlags 包含MF_BYPOSITION 则表明删除nPosition 位置的菜单,如果包含MF_BYCOMMAND表示删除ID为nPosition处的菜单。
6.BOOL AppendMenu(UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp) 和BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp)可以添加位图菜单,但这样的菜单在选中时是反色显示,并不美观。
7.UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck) 返回菜单项以前的状态: MF_CHECKED 或MF_UNCHECKED 。如果该菜单项不存在,那么将返回0xFFFFFFFF。nIDCheckItem指定由nCheck确定的将要选择的菜单项。nCheck指定是否选中菜单项,并决定菜单中各菜单项的位置。参数nCheck可以是MF_CHECKED或MF_UNCHECKED与MF_BYPOSITION或MF_BYCOM MAND的组合。这些标志可通过使用位与运算进行组合。其中MF_CHECKED与MF_UNCHECKED用来进行状态转换,在菜单项之前放置默认的选中标记。
简而言之,调用一系列函数将游戏启动(初始化变量)、选择位图、加载位图、游
戏模式选择(位图分割)、小块图片随机排序、静态控件显示位图等一系列操作连接起来。
2.2 程序简介
2.2.1 类图说明
1.主对话框类及成员函数:
2.“关于”对话框的类及成员函数:
3.图片载入的类及成员变量和函数;
4.图片分割及拼图移动类及成员函数:
5.静态网址链接类:
6.全局变量及全局函数
第二部分详细设计
2.1 详细设计过程(包含关键代码及截图)
2.1.1 创建初始界面
新建一个MFC AppWizard(exe)工程,将其命名为Picture,在第一步选择Dialog based,如图3-1所示,接下来直接点Finish。