C语言设计论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 2 章 课程设计内容................................................................................................................. 2 2.1 程序功能介绍.................................................................................................................. 2 2.2 程序整体设计说明.......................................................................................................... 2 2.2.1 设计思路.............................................................................................................. 2 2.2.2 数据结构设计及用法说明.................................................................................. 3 2.2.3 程序结构.............................................................................................................. 4 2.2.4 各模块的功能及程序说明.................................................................................. 4 2.2.5 程序结果.............................................................................................................. 5 2.3 程序源代码及注释.......................................................................................................... 5
图形关闭 游戏开始,重新,关闭 两种空格子的显示 显示红旗 画笑脸
游戏开始画面 游戏结束画面 游戏过程 显示胜利 图形开始 鼠标左键按下 统计每个格子周围的雷数 得到当前位置
3
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
void MouseOff(void) void MouseOn(void) void MouseSetXY(int x,int y) int RightPress(void) int ShowWhite(int i,int j)
这样的 8 个雷区决定的。 扫雷程序还会自动展开已确定没有雷的雷区。如果 a[3,4] 周围雷数为 1,a[2,3]已被标示为地雷,那么 a[24],a[25],a[33],a[35],a[43],a[44],a[45] 将 被展开,一直波及到不可确定的雷区。这也是实现的关键。我们可以把数组的元素设定 为一个类对象,它们所属的类设定这样的一个事件:在被展开时,检查周围的雷数是否 与周围标示出来的雷数相等,如果相等则展开周围未标示的雷区。这样新的雷区展开又 触发这个事件,就这样递归下去,一直蔓延到不可展开的雷区。相信在了解以上两个要 点后,把雷区这个类编写完全(如添加是否有雷标记,是否展开标记,周围雷数等,双 击,左右单击的鼠标事件等),实现扫雷程序应是十分简单的一件事。
2.2.1 设计思路
首先我们在雷区上随机地放上雷,没有雷的地方被点击后就会显示一个数字表示它 周围有几个雷,这是怎么实现的呢?我们可以把整个雷区看成一个二维数组 a[i,j],如雷 区:
11 12 13 14 15 16 17 18 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 我要知道 a[34]周围有几个雷,就只有去检测 a[23],a[24],a[25] a[33], a[35] a[43],a[44],a[45]
第 3 章 课程设计总结................................................................................................................. 14 参考资料 ......................................................................................................................................15
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 1 章 课程设计的目的与要求
1.1 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程
序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对 C 语言课程的基本知识的理解和掌握 2. 掌握 C 语言编程和程序调试的基本技能 3. 利用 C 语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用 C 语言解决实际问题的能力
1.2 课程设计的实验环境 硬件要求能运行 Windows 2000/XP 操作系统的微机系统。C 语言程序设计及相应的开
发环境。 1.3 课程设计的预备知识
熟悉 C 语言及 C 语言开发工具。 1.4 课程设计要求
1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告
目录
第 1 章 课程设计的目的与要求................................................................................................. 1 1.1 课程设计目的................................................................................................................. 1 1.2 课程设计的实验环境..................................................................................................... 1 1.3 课程设计的预备知识..................................................................................................... 1 1.4 课程设计要求................................................................................................................. 1
2.2.2 数据结构设计及用法说明
void Close(void) void Control(void) void DrawEmpty(int i,int j,int mode,int color) void DrawRedflag(int i,int j) void DrawSmile(void) void GameBegain(void) void GameOver(void) void GamePlay(void) void GameWin(void) void Init(void) int LeftPress(void) int MineStatistics(int i,int j) void MouseGetXY(void)
1
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 2 章 课程设计内容
2.1 程序功能介绍 扫地雷是一个广泛游戏,扫雷的游戏规则:扫雷就是要把所有非地雷的格子揭开即胜
利;踩到地雷格子就算失败。当鼠标点击到棋盘范围外时,视为无效,无响应。 游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并
显示出方格中的数字;方格中数字则表示其周围的 8 个方格隐藏了几颗雷;如果点开的 格子为空白格,即其周围有 0 颗雷,则其周围格子自动打开;如果其周围还有空白格, 则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一个已打开格 子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键打开其周围剩余的 无雷格。扫雷可以充分锻炼你的逻辑思维能力、抽象思维能力、想象力、判断力、反应 速度。 2.2 程序整体设计说明
(1)掌握 C 语言编程的基础知识。
(2)较熟练地编写 C 语言应用程序。

(3)了解 C 语言的常用标准函数、编程技巧、异常处理。


(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。


(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能
报 力都有一个很大的提高。 告

(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素
任 务 质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
指百度文库导 教 师 评 语 及 成 绩
成绩:
指导教师签字: 2009 年 12 月 31 日
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
(3)void GamePlay(void):该模块完成游戏的主过程,调用递归显示算法,标示红旗, 判断失败等任务。
(4)int MineStatistics(int i,int j):以单元格的坐标为参数,返回单元格周围的雷的数目。
4
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
(5)int ShowWhite(int i,int j):参数是所点击方格的坐标,如果点击的方格周围没有雷, 则调用该模块。它会显示周围雷的数目,如果周围仍没有则递归调用,直到周围不再有 空白格。
2
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
这 8 个雷区是否放上了雷,仔细观察它们成在数学关系。 抽象出来就是:a[i,j]的雷的 个数就是由
a[i-1,j-1],a[i-1,j],a[i-1,j+1] a[ i ,j-1], a[ i ,j+1] a[i+1,j-1],a[i+1,j],a[i+1,j+1] (如果超出边界再加以判断)
鼠标光标隐藏 鼠标光标显示 设置当前位置 鼠标右键按下 显示无雷区的空白部分
2.2.3 程序结构
图 2.1 扫地雷游戏流程图
2.2.4 各模块的功能及程序说明
(1)void Control(void):该模块是控制程序的框架,决定是否初始化游戏画面并执行 游戏过程,以及是否重新开始游戏或退出。
(2)void GameBegain(void):该模块用以初始化游戏画面,调用画图模块、画格子模块 等,完成显示笑脸图标、描绘方格棋盘、初始化鼠标位置等任务。
辽宁工业大学
C 语言程序设计 课程设计(论文)
题目:
扫地雷游戏
院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 2009.12.14 至 2009.12.26
院(系):
学号
程序设计 (报告)
题目
课程设计(报告)任务及评语
教研室:
学生姓名
专业班级
扫地雷游戏
程序设计的任务与要求:
相关文档
最新文档