- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言程序设计》实验大作业反思报告
PAGE 10
《C语言程序设计》实验大作业反思报告
大作业题目
类型
游戏
班 号
学 号
所在院系
学 期
2020年春季学期
任课教师
实验类型
综合设计型
实验目的:
掌握程序设计的基本算法和简单数据结构基础,能够综合运用基本控制语句、算法和数据结构,以及自顶向下、逐步求精的模块化设计方法,能够设计具有一定规模的系统级C语言程序,提高系统编程能力;
针对计算相关的复杂工程问题,能够使用恰当的算法和数据结构,完成计算、统计、排序、检索、匹配等相关的软件系统的构造、测试与实现;
掌握常用的程序调试和测试方法。
实验要求:
采用自顶向下、逐步求精的模块化设计思想设计一个小型信息库管理系统,或者闯关式游戏程序。
要求解释说明采用了什么数据结构和算法,为什么选择这种数据结构或算法,系统实现过程中遇到了哪些问题,这些问题是如何解决的,还有什么问题尚未解决,今后打算从哪几个方面进行改进,本设计的亮点和难点在哪里,实验结果如何,有哪些收获和学习体会;
编写程序完成以下实验大作业内容并完成实验大作业反思报告。
实验内容:
在游戏初始化界面,屏幕会显示16个方格(4*4),其中随机两个方格会出现2或4这两个数字,2与4出现的机率比为9:1。在游戏开始后,玩家通过键盘输入a, d ,w ,s四个选项来控制格子中数字左移,右移,上移,下移。当输入一个选项后,所有的数字块都会向所选择的方向靠拢,相同的数字块相撞时,会相加合并为一个数字块,除此之外,在每做出一次选择后,程序会在空白位置随机产生一个新的数字块2或4,2与4出现的几率之比为9:1。同时,程序会将所有相撞产生的新数字块相加,作为玩家的分数,随着每次移动而更新。当所有数字块都被填满且相邻数字块都不相等时程序会判定为游戏结束,并显示“GAME OVER!”字样。
实验环境:
操作系统:Win10
集成开发环境:Codeblocks17.12
外部库:无
输入输出设计:
程序的输入数据为a ,d ,w ,s ,四个英文小写字母,为字符型变量。程序的输出部分包括构成游戏的外框的图形以及随时更新的数据,为整型变量。程序加入了对于非法输入数据的处理,在loop _ Game函数的入口处采用了switch选择控制结构,同时通过switch的选择控制结构来检查用户输入数据的有效性,当输入的字符为除a, d ,w ,s之外的字符时,程序将不会改变游戏界面以及游戏分数的显示,会自动选择重新回到读取键盘输入的部分,只有当输入字符为a ,d ,w ,s中的一个时,程序才会继续进行后续的数字块移动以及分数累加等操作。程序的输出部分构成4*4网格的外框形状,以及数字块中的随时更新的数字,以及在方格上方所显示的游戏的分数,以及在游戏结束时所显示的“GANE OVER!”字样。为保证游戏的健壮性,当方块内数字累加至超过四位数时,数字将会以科学计数法的方式显示,而不会出现乱码或者程序无法运行等情况。
系统设计与实现:
系统功能模块划分
对系统进行自顶向下的模块分解,画出系统各个功能模块之间的结构图如下:
函数功能和外部接口设计
本系统总计设计了13个函数,每个函数的功能和接口设计如下表所示:
序号
函数名
函数功能
函数参数
函数返回值
1
read_keyboard
读取键盘输入的变量
无
key_code
2
loop_Game
游戏循环
cmd
无
3
reset_Game
重置游戏
无
无
4
add_rand_num
添加随机数
无
随机数
5
get_null_count
获取空位置数量
无
空位置数量n
6
check_Game_over
检查游戏是否结束
无
if_Game_over
7
Move_left
左移
无
If_need_add_num
8
Move_right
右移
无
If_need_add_num
9
Move_up
上移
无
If_need_add_num
10
Move_down
下移
无
If_need_add_num
11
clear_screen
清屏
无
无
12
refresh_show
刷新界面
无
无
13
init_Game
初始化游戏
无
无
各个函数之间的调用关系如下所示:
数据结构
结构体数组+指针,链表
算法
递推,查找,文件操作
5.程序流程图
系统总体流程图如下:
实验过程中遇到的问题及解决方法与思路:
问题1:开始部分函数体和数据设置较多,导致后面程序的编写过程中出现了许多错误,例如函数名和数据名的大小写等出现错误。
原因:函数名和数据的设计为了追求简洁而无法记住其意义,并且设置过多。
解决方法:在纸上将函数名和数据名都记好,以防后面编写时出现遗忘,此外,应当按照函数名以及数据名的具体作用进行设置,
您可能关注的文档
- C语言大作业报告——推箱子.doc
- C语言大作业报告——学生信息管理系统.doc
- C语言大作业报告——手机通讯录系统.doc
- C语言大作业报告——贪吃蛇游戏.doc
- C语言大作业报告——剧院座位管理系统.docx
- 部编版小学六年级《道德与法治》上册第8课《我们受特殊保护》优质课件.pptx
- 12.1 全等三角形 (教学课件)— 初中数学人教版八年级上册.pptx
- 13.1.1 轴对称-初中数学人教版八年级上册课件.pptx
- 部编版小学五年级道德与法治上册第3课《主动拒绝烟酒与毒品》优质课件.pptx
- 小学道德与法治部编版六年级上册第一单元第1课《感受生活中的法律》.pptx
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
文档评论(0)