C课程设计吃豆子.pdf

上传人:zh****71 文档编号:126719393 上传时间:2020-03-27 格式:PDF 页数:19 大小:431.41KB
返回 下载 相关 举报
C课程设计吃豆子.pdf_第1页
第1页 / 共19页
C课程设计吃豆子.pdf_第2页
第2页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C课程设计吃豆子.pdf》由会员分享,可在线阅读,更多相关《C课程设计吃豆子.pdf(19页珍藏版)》请在金锄头文库上搜索。

1、 面向对象程序设计 课程设计 题目 吃豆子游戏程序 院系 数学与计算科学学院 专业 信息与计算科学 姓名学号 覃荣平 1200710128 组长 梁隆 1200710123 柳祖发 1200710124 施华官 1200710127 指导老师 宁黎华 日期 2014 年12 月 30 桂林电子科技大学课程设计报告用纸 日 心得体会 通过这次课程设计 我从对MFC 的陌生到能熟练运 用基本的函数 了解其编程的具体实现方法 我对于面 象对向编程有了更深刻的认识 通过四个人的团队合作 我从主持谐调各方面工作 如听取各方面意见 看成员 整理好的资料 到担任代码编写 学会了团队合作的重 要性 团队合作在

2、写大的程序时比单个人完成有很大的 优点 我会继续在面向对象编程上下功夫 因为学无止 境 桂林电子科技大学课程设计报告用纸 摘要 MFC 是 Windows 编程的面向对象化 是对 Windows 函数的简单封装 使用 MFC 编程可以在短时间内编写一个Windows 程序 而不必写大量 Windows 代码 所以我使用 MFC 编写了一个吃豆子程序 该程序实现了一个 能过使用方向键控制消除屏幕上存在的豆子的功能 当用户按键盘向上 下 左 右键或每格一秒钟 嘴的状态发生改变 或是从一个方向张开向另一个方 向 或是由张开变成闭合状态 从而实现嘴一张一合前进 当嘴所经过位置有豆 子 豆子被消除而不再

3、出现 所有豆子被 吃 完时 程序弹出对话框 You win Exit 用户点确定后可退出程序 实现方法 嘴的张开与闭合分别用 MFC 的 Pie 和 Ellipse 函数实现 豆子被存储在一个标记数组中 豆子被吃时 数组相应元素标记为零 在OnDraw 函数中画出每个豆子和嘴的原始位置 在响应键盘上下左右方向虚拟键 VK UP VK DOWN VK LEFT VK RIGTH 的函数中控制豆子移动和嘴 的方向 程序开始时在响应WM CREATE 消息的函数中设置一个 TIMER 方向键消息和TIMER 消息统一由一个判断函数处理从而实现自动 前进时的沿当前方向前进 关键字 程序设计豆子 MFC

4、 桂林电子科技大学课程设计报告用纸 Abstract MFC is a Windows based object oriented programming it is a simple package of Windows function using the MFC programming can make us write a Windows program in a short time without having to write a lot of Windows code so I use MFC written a eat beans program in this progra

5、m we can use the arrow keys to control the mouth to move to eliminating the beans on the screen when the user presses the keyboard up down left right or each time one second goes by the state of the mouth changed it change from one direction to another direction or from an opening state to a closed

6、state So we can obtain a mouth moving forward with it s lips keeping closing and opening if a bean is in the way of the mouth it will be eliminated by setting it s element in the mark array as zero when all beans have bean eaten a dialog box prompts You win Exit after the user clicks OK the game ter

7、minates Implementation method We can use the MFC s Pie function to draw a open mouth while the Ellipse function to draw the closed mouth all beans would be stored in a 2d array if it exist we mark the corresponding element nonzero mouth and all beans can be drew in the OnDraw 桂林电子科技大学课程设计报告用纸 functi

8、on of MFC the mouth present direction can be changed by the direction message updated in the VK UP VK DOWN VK LEFT VK RIGTH s and the self define TIMER s response function after that we can judge the next position the mouth should go according to the direction message thus we get a mouth moving with

9、 it s mouth open and closing alternately Key words programming Eat beans MFC 目录 引言 CRC 分析过程陈述 程序介绍与展示 程序测试 结果分析与总结 参考文献 桂林电子科技大学课程设计报告用纸 引言 在本次课程设计中 课题组主要是想通过吃豆子游戏的开发 让自身在 软件开发的知识水平提升一个档次 特别是对软件开发形成一种概念 同时 加强培养团队合作意识 这个课设的要求是要课题组用MFC 编写一个吃豆子 的小游戏 这个游戏是用方向键控制一个 小怪兽 移动并吃掉界面上的所 有的 小豆子 随后经历了一个星期的分析与讨论后

10、课题组正式进入课题系统实质性 的开发阶段 课题组把程序开发的过程分为程序分析 程序设计 程序实现 和程序测试四个阶段 在程序分析中 对程序进行了可行性分析 需求分析 以及功能分析 在结束这阶段的工作后转入系统设计阶段 在系统设计中 主要是明确整个程序的界面模块 算法实现 以及极限问题等 系统的实现 历经一个半月 主要是实现系统设计中的所有模块功能 最后利用了一周的 时间对程序中的各个模块进行了测试 最终完成系统的测试 在完成开发工作后 课题组的任务立刻转向课设论文的写作 课题组各 成员课设论文的写作内容原则上就是其在设计开发中所承担的主要任务 最 后总结成了本篇论本 桂林电子科技大学课程设计报

11、告用纸 一 CRC 分析过程陈述 CEatBeanView类 dispose 对 TIMER发送的消息和向上 向下 向左 向右键来响 应判断的主要处理函数 Draw All Bean s 画所有的存在的豆子 Draw One Bean int int 画一个豆子 Draw Backgrou nd Blocks 画 背 景 网 格 Draw Main 负 责 画 程 序 运 行 中 个 一 个 帧 包 括 画 背 景 画 所 有 豆 子 画 嘴 Draw Mouth 画 嘴 Draw Mouth Cl osing 画嘴关的状态 Draw Mouth Op en 画嘴开的状态 桂林电子科技大学课程

12、设计报告用纸 Draw One Bean 画 以 x y 为 坐 标 的 豆 子 Draw Segment 画 一 条 线 段 Generate All Rand Beans 生 成 随 机 的 所 有 豆 子 用 于 初 始 化 Generate Rand Array 生 成 乱 序 随 机 数 组 Generate Rand Positive Integer 生 成 最 大 值 为 max 的 正 整 数 OnCreate WM CREATE消息响应函数 OnDraw 用于在程序客户区绘图 其中 dispose 函数用得最多 OnMoveleft OnMoveright都调用 dispos

13、e 函 数来处理消息 按键向上 向下 向左 向右 消息响应函数 函数功能 桂林电子科技大学课程设计报告用纸 void OnMoveleft 向左键的消息处理函数 void OnMoveright 向右键的消息处理函数 void OnMovedown 向下键的消息处理函数 void OnMoveup 向上键的消息处理函数 void OnCreate WM CREATE消息处理函数 void OnTimer WM TIMER的消息处理函数 void OnTimetogo 自定义消息 WM TIMETOGO的消息 处理函数 嘴的图形是一个圆形与一个扇形交替显示 圆形表示嘴闭合的情况 扇形 表示嘴张开

14、的形状 绘制圆形和扇形的函数为CDC 类的成员函数 Ellipse和 Pie 豆子可以存储在一个数组中 数组的数据是每个豆子圆心的坐标 在 OnDraw 函数中画出每个豆子和嘴的原始位置 键盘上下左右方向键的虚拟键 码分别为 VK UP VK DOWN VK LEFT VK RIGTH 在程序开始时的WM CREATE 的响应函数中设置一个TIMER 在 CView的派生类中对方向键和TIMER消息用 统一函数处理 dispose 中处理为 若是 TIMER消息则嘴前进方向与当前方向 一致再处理前进 若是方向消息则嘴前进方向为方向键所指方向 1 3 功能说明 一 UML类图 数据 分析 此程序

15、的设计按面向对象的方法进行 系统具有良好的界面 必要的交互信 息 简约美观的效果 使用人员能快捷简单地进行操作 本游戏实现了一个能 过使用方向键控制消除屏幕上存在的物体 即所谓嘴 来到达另一个地方来消除 另一地方存在的物体即所谓豆子 嘴有张合状态 张开时可以有四个方向的张开 类 似一个大嘴巴 闭合时就是一个圆形 嘴若是接受方向消息时 方向消息与当 前方向不一致 则嘴在转向过后保持开的状态 当所有豆子被吃完后 弹出对 对话框显示 You win Exit 用户写确定后可退 背景画法实现 桂林电子科技大学课程设计报告用纸 先实现画一条线段的函数 void CEatBeanView Draw Seg

16、ment int pax int pay int pbx int pby CDC pDC GetDC pDC MoveTo b1 pax pay pDC LineTo b1 pbx pby 再画横向和纵向的各从 1到length 1和width 1的线段 从而实现画背景网络 豆子画法实现 1 嘴张开实现 嘴张开有四个方向 要实现可以使用CDC 类的 Pie 函数画一个张开角度 为 270 0 的扇形 void CEatBeanView Draw Mouth Open int x int y CDC pDC GetDC CBrush p p CBrush pDC SelectStockObject LTGRAY BRUSH switch Current Direction 查 看 当 前 嘴 的 方 向 case u 方 向 向 上 的 情 况 pDC Pie b x b y b x 1 b y 1 b x 1 b y 1 b x b y 1 break 桂林电子科技大学课程设计报告用纸 case l 方 向 向 左 的 情 况 pDC Pie b x b y b x 1 b y 1 b

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号