1、C+面向对象课程设计面向对象课程设计报告报告 院(系) :院(系) : 计算机工程学院 专业:专业: 学 生 姓名:学 生 姓名: 班级:班级: 学号:学号:201007206 题目题目: 俄罗斯方块 起迄日期:起迄日期: 2012.6.182012.6.29 设计地点:设计地点: 计算机学院机房 指指 导导 教教 师:师: 完成日期: 2012 年 6 月 29 日 目 录 一、需求分析. 3 1.课程设计内容.3 2.程序实现功能.3 二、设计内容.3 1 俄罗斯方块主功能框架图4 2. 主函数及各功能模块流程图4 三、调试分析.26 1.实际完成情况27 2.上机过程中出现的问题及其解决
2、方案 27 3.程序中可以改进、扩充的功能及设计实现构想27 四、用户手册27 五、设计总结 31 六、参考文献 32 七、附录 32 一、需求分析 1. 课程设计目的 俄罗斯方块是由阿列谢.帕基特诺发明的, Tetris 游戏在一个 m*n 的矩形形框内进行的, 矩形框的顶部会随机的出现一个有四个小方块组成的砖块,每过一段时间,就会下落一格, 知道他碰到底部,然后再过一个时间下落另一个砖块,依次进行,砖块是随机出现的。当发 现底部砖块是满的话,则消去它从而得到相应设置的分数,当砖块到达顶部的时候,游戏结 束。选择俄罗斯方块进行 C+面向对象程序设计课程设计主要是在学习 C+这门面向对象 语言
3、的基础上,在完成 C+面向对象程序设计各部分实验的基础上,通过自学 MFC,掌握一 种可视化编程的方法, 并通过实践加深对可视化编程与 C+面向对象程序设计语言特点的认 识与理解。同时,可以提高运用 C+编程语言解决实际问题的能力;锻炼实际的编程能力、 创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及 编写软件设计文档的能力。 2. 程序实现的功能 【1】 实现方块的变形、下落、左移、右移消行等基本的功能。 【2】 实现方块的直接丢下、暂停、判断分数以及等级设置功能。 【3】 友好的地用户界面,七种基本的方块图形设计功能。 【4】 设置快捷键实现游戏的暂停和播放
4、音乐功能。 二、设计内容 俄罗斯方块 方 块 移 动 操 作 功 能 方 块 移 动 控 制 主 界 面 显 示 功 能 方 块 显 示 功 能 播 放 音 乐 功 能 游 戏 规 则 判 断 功 能 等 级 管 理 功 能 游 戏 等 级 选 择 游 戏 升 级 功 能 1.俄罗斯方块主功能框架图 2.主函数及各功能模块流程图 【1】主程序流程图 菜 单 显 示 功 能 方 块 旋 转 控 制 开始 显示封面 响应开始菜单函数 画出游戏界面以及等级 分数显示 随机产生方块 方块的移动及变形 能否变形和移动 以及到达顶端 是否消行 计算分数判断 是否升级 升级 更新速度 【2】主程序函数调用图
5、 判断输赢 OnGamezStart() SetTimer() russia.GameStart() OnTimer() russia.DrawBK Move() DrawWill() Meet() LineDelete() Win() Change() 【3】键盘响应方块移动及操作模块算法流程图 代码实现部分: void CTetrisView:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) /没有开始 if(!m_bStart) return; if(m_bPause=TRUE) 开始 是否按下左方 向键 能 否 左 移 是否按下右方 向键 能 否 右移 是否按上方向 键 能否变换 是否按下下 方向键 能 否 下 移 左移 右移 下移 return; switch(nChar) case VK_LEFT: russia.Move(KEY_LEFT); break; case VK_RIGH