西安文理学院信息工程学院 课程设计报告
设计名称: 数据结构课程设计 设计题目: 实现一个N*M的扫雷游戏 学生学号: 专业班级: 软件13级四班 学生姓名: 樊秀琳 学生成绩: 指导教师(职称): 谢巧玲(讲师) 课题工作时间:至 说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。信息工程学院课程设计任务书 学生姓名 樊秀琳 学号 专业班级 软件工程13级四班 设计题目 实现一个N*M的扫雷游戏 内容概要:(包含要求采用的设计环境或开发环境(软、硬环境),采用的关键技术等),系统/设计所包含的基本功能等) 程序在eclipse
文献资料: [1]张跃平.JAVA2实用教程(第三版)[M].清华大学出版社,2006 [2]张跃平.JAVA课程设计(第二版)[M].清华大学出版社,2009 [3]叶核亚.数据结构(Java)(第二版)[M].电子工业大学出版社,2008
设计要求:(设计所必须达到的基本功能要求、文档格式要求及其他等)
工作期限:设计工作自2015年6月22日至201年7月3日止。 指导教师: 院长:
日 期:2015年6月22日 信息工程学院课程设计进度安排表 学生姓名: 樊秀琳 学号: 专业: 软件工程 班级: 13级四班 起止日期 内 容 备注
6月22日~ 6月 23日 下任务书;收集、阅读、整理相关参考文献,并进行归纳和概括总结,完成项目/任务背景介绍部分文字内容。 6月24日~6月26日 系统功能设计和模块设计、系统体系结构构建。 6月27日~6月30日 各功能模块编码实现,系统各功能模块调试与维护。
7月1日~7月2日 系统功能集成、系统调试与测试,按照模板要求撰写课程设计/项目设计报告。
7月3日 课程设计/项目设计分组答辩,提交课程设计/项目设计报告以及相关文档,进行成绩评定。
指导教师签名: 2014年6月22日成绩评定表 学生姓名: 樊秀琳 学号: 专业: 软件工程 班级: 13级四班 类别 合计 分值 各项分值 评分标准 实际得分 合计得分 平时表现 10 10 按时参加设计指导,无违反纪律情况。
完成情况 30 20 按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10 能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量 35 10 报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5 课题背景介绍清楚,综述分析充分。 5 设计方案合理、可行,论证严谨,逻辑性强,具有说服力。 5 符号统一;图表完备、符合规范要求。 5 能对整个设计过程进行全面的总结,得出有价值的结论或结果。 5 参考文献数量在2篇以上,格式符合要求,在正文中正确引用。
答辩情况 25 10 在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15 在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩: 分 指导教师: (签字) 日期:2014 年7月 3 日 摘 要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse目 录 摘 要 --------------------------------------------------------------- 第一章 课题背景(或绪论、概述) ------------------------------------ 0 设计目的 ------------------------------------------------------- 0 基本理论依据和主要工作内容 -------------------------------------- 0 第二章 设计简介及设计方案论述 -------------------------------------- 1 功能需求 -------------------------------------------------------- 1 功能模块 -------------------------------------------------------- 1 第三章 详细设计 ---------------------------------------------------- 1 总体设计 ------------------------------------------------------- 1 --------------------------------------------- 错误!未定义书签。 主要技术 ------------------------------------------------------- 2 第四章 设计结果及分析 ---------------------------------------------- 3 设计结果截图 ---------------------------------------------------- 3 参考文献 ------------------------------------------------------------ 3 源代码 -------------------------------------------------------------- 4第一章 课题背景(或绪论、概述) 设计目的 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 基本理论依据和主要工作内容 扫雷游戏主要用了一个10行10列的二维数组,刚开始利用random随机布雷。 每一个程序最主要的是算法。扫雷游戏算法的重点是一开始统计好每个格子周围有多少雷,当鼠标左键点在格子上时做出判断,如果周围8个格子有雷则显示出雷数,如果没有雷则显示空白格(在四个角的格子显示周围3个格子,其它边缘的格子显示周围5个的状态),我们在主函数中用两个for语句来判断周围雷数。我们还加了鼠标处理函数。 如果格子上有雷则调用函数actionpeformed (),显示“你踩到地雷了,按确定重来", "踩到地雷”,游戏结束。若所有的雷都标出,且所有的格子都处理过,则调用函数isWin (),显示“您挖完了所有的雷,您胜利了!", "胜利",游戏结束。游戏结束后,按任意键出去。 第二章 设计简介及设计方案论述 功能需求 1.本游戏结构较为简单,可以自行设置设置雷数,以此来控制扫雷的难度系数; 2.提示区下方将显示总雷数,并可以通过点击右键来标明疑似有雷的区域的数目; 3.单击鼠标左键于未知区域,如果未知区域有雷,游戏提示:“你踩到地雷了,按确定重来”;如果没有雷,当需要检测的单元格本身无地雷的情况下,统计周围的地雷个数,则显示周围雷数,然后判断是否挖完所有的雷;如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止,并显示周围雷的数目; 4.单击鼠标右键于未知区域,则显示F,将其标识有雷。在该位置再次单击右键则视为不确定,显示Q,单击第三次,取消设置,Q消失; 5.如果该数字方块周围地雷已经完全标识出,双击该数字所在方块,将快速翻开所有周围不是地雷的方块,并显示,直到有雷为止; 6.将雷全部扫完后,会出现一个提示框,显示游戏胜利。 功能模块 (1)游戏界面 (2)布雷 (3)鼠标事件 (4)地雷判断 (5)游戏胜利(结束) (6)游戏失败(结束) (7)游戏设置(地雷数量) 第三章 详细设计
总体设计 游戏的操作方面主要以鼠标为主,当鼠标左键单击方块时即表示打开方块,当鼠标右键单击方块时即表示标识或疑似地雷,反复单击右键则方块会以“未标识→标识→疑似”三者关系不断循环。游戏者可以通过地雷区内的数字提示