MFC课程设计———扫雷

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

1.设计目的及要求 (2)

1.1设计目的及问题描述 (2)

1.2设计要求 (2)

1.3软件、硬件环境 (2)

2.课程设计步骤 (2)

3. 课程设计内容 (3)

3.1 概要设计 (3)

3.1.1 程序总体框架描述 (3)

3.1.2程序常用类声明 (4)

3.2主要技术 (5)

3.3系统设计结果(界面截图、操作流程) (5)

4.设计总结 (6)

4.1遇到的问题及如何解决 (6)

4.2体会 (7)

5.源代码 (7)

1.设计目的及要求

1.1设计目的及问题描述

利用VC++程序开发小型的应用程序,以检测自己一个学期对可视化学习的情况,以及了解自己在MFC学习中的不足,巩固和提高自己对MFC的理解和掌握。掌握C++编程和调试的基本技能,进一步提高自己的动手能力,和运用C++解决实际问题的能力。

本次我做的是一个简单的利用菜单打开位图和按钮打开位图的小应用程序。

1.2设计要求

1、完成应用程序界面设计与开发;

2、菜单方式启动对话框中预览位图应用程序设计;

3、工具栏方式启动对话框中预览位图应用程序设计;

4、相应功能模块流程图的设计、绘制

5、相应程序代码编写与调试。

1.3软件、硬件环境

软件:Windows 7操作系统,Microsoft Visual C++6.

2.课程设计步骤

3. 课程设计内容

3.1 概要设计

游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块,当鼠标指针对准未翻开的方块按下右键时即表示标示或疑示地雷,反复按下右键则方块会以未标示→标示→疑似三者关系不断循环。游戏者可以通过地雷区内的数字提示了解以数字为中心的其周边八个方格内所含的地雷数,假若翻开的方块显示数字“1”,则表示以其为中心的周边方块内藏有1个地雷。

当按下的方块不是地雷,且周边八个方块也都没有地雷时,方块会以被翻开方块的八个方向将空白方块翻开。

3.1.1 程序总体框架描述

1.创建程序

2.扫雷图形设计

3.扫雷构架组成

4.扫雷过程以及结束

设定

3.1.2程序常用类声明

定义新类:

对于雷,我们是单独定义一个类,这样有利于程序的操作。

class wkh

{

public:

//显示哪一个位图

int weitu;

//这个位置相应的值

int shumu;

};

视图类变量:

接着是在View类添加变量和函数:

//剩下雷数

int leftnum;

//雷数

int leinum;

//结束

int jieshu;

//计时

short second;

//开始计时

int secondstart;

//位图数组

CBitmap m_Bitmap[12];

//按扭位图数组

CBitmap m_anniu[4];

//雷区行数

int m_RowCount;

//雷区列数

int m_ColCount;

//最大雷区

wkh lei[50][50];

3.2主要技术

1.图形的设置

2.消息处理函数;

3.视图框架设置;

4.扫雷游戏算法。

5.菜单的设置。

3.3系统设计结果(界面截图、操作流程)

1.界面截图:

操作流程图

开始

开始计时

点到空格点到数字

点到雷

4.设计总结

4.1遇到的问题及如何解决

随着扫雷游戏的开发完成,本游戏中预期的主要功能也基本实现。本系统以Visual C++ 6.0作为前台开发工具,Visual C++ 6.0以简单、易用等优点成为开发本系统的首选工具。本论文阐述了扫雷游戏的分析与设计的全过程,并在论文中相应的位置插入了图片、流程图以及一些具有技巧性的程序代码,更加清晰的描述了该游戏是如何实现的。

扫雷游戏是一款益智类游戏,该游戏与那些网络游戏和3D游戏相比,它有编写简单容易上手等特点,非常适合人们在完成工作的时候适当的娱乐要求。这些小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。

由于我学习Visual C++ 6.0和MFC的时间比较短,其中的很多知识还没有了解和掌握,当然出现了很多错误,

在设计过程中出现鼠标不响应操作的现象,这是因为定义鼠标函数时出现了错误;

在设计过程中对位图的设置不够了解,总是不能调用位图,通过百度,才知道缺少了一部分代码;

对于分号、引号的符号出现了不少的错误,主要是中英文切换时没注意,导致编译出错;

完成程序之后,对程序进行编译,系统总是提示链接出错,经过仔细检查没有找到语句或定义错误,后来发现是电脑问题,我在任务管理器中结束wkh.exe。再次链接,错误就消除了。

4.2体会

在扫雷游戏中有些功能还不够完善,例如在扫雷游戏中不能实现游戏难度的选择和游戏的保存。希望在以后的工作和学习中不断的充实自己的知识结构,把扫雷游戏的功能进一步完善,使它成为一个更具有实用价值的游戏软件,同时也恳请老师给予批评指正。

5.源代码

// MainFrm.cpp : implementation of the CMainFrame class

//

#include "stdafx.h"

#include "wkh.h"

#include "MainFrm.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

//{{AFX_MSG_MAP(CMainFrame)

ON_WM_CREATE()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

static UINT indicators[] =

{

ID_SEPARATOR, // status line indicator

相关文档
最新文档