算术24游戏 实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录 1、任务书...............................1 2、需求分析.............................7 2.1程序的功能........................7 2.2输入输出的要求....................7 3、概要设计.............................7 4、详细设计.............................8 4.1各模块的类C码算法................8 4.2流程图.............................9 5、调试分析以及设计体会.................10 5.1调试分析...........................10 5.2心得体会...........................12 6、使用说明.............................13 7、附录.................................14 2、需求分析 2.1程序的功能 程序运行后产生4个扑克牌,对应4个整数,其中每个数字只能使用次;任意使用 + - * / ( ) ,构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏) 24算法游戏的功能模块不多,也比较容易实现。基本思想就是由程序先随机产生4张扑克牌,每张扑克牌对应一个整数,所以首先要有一个随机产生扑克牌的模块。接下来就是用户用程序产生的扑克牌来算24点了,所以要有一个输入用户去接表达式的模块。用户输入完成后,程序就开始计算表达式了,所以要有一个计算表达式的模块。程序计算完表达式后就要判断用户输入的表达式是不是为24点了,所以还有一个判断表达式正误的模块。这4个模块是逐步递进的,是要前一个模块的功能完成后,才能执行后一个模块,否则程序就将出错。程序所涉及的数据结构主要为整形和字符型,整形数据结构主要是用来计算表达式的,字符型数据结构主要是用来输入表达式的。程序所涉及的数据库结构主要有数组和栈,数组在计算表达式和产生扑克牌是都要用到,栈只是用来计算表达式的。 4、详细设计 4.1各模块的类C码算法 随机产生扑克牌函数 for(循环4次) { 随机产生一个1到13之间的数,用switch语句输出产生的数,作为扑克牌的数,再随机产生一个数,也用switch语句输出,作为扑克牌的花色。把产生的数和花色组装成一个扑克牌用图形的方式显示出来;} 将算术表达式转换为后缀表达式 While(从exp读取字符ch,ch!=’\0’) { ch为数字:将后续的所有数字均依次存放到postexp中,并以字符“#”标志数值串的结束; ch为做括号“(”:将次括号进栈道运算式栈op中; ch为右括号“)”:将运算符栈op中的左括号“(”以前的运算符依次出栈并存放到postexp中,然后将左括号“(”删除; ch为“+”或“-”:将运算符栈op中的左括号“(”以前的运算符依次出栈并存放到postexp中,然后将“+”或“-”进栈; ch为“*”或“/”:将运算符栈op中“*”或“/”运算符依次出栈并存放到postexp中,然后将“*”或“/”进栈;} 若字符串exp扫描完毕,则将运算符栈op中的所有运算符依次出栈并存放到postexp中。 计算后缀表达式 While(从postexp读取字符ch,ch!=’\0’) { ch为“+”:从栈st中出栈两个数值a和b,计算c=a+b;将c进栈; ch为“-”:从栈st中出栈两个数值a和b,计算c=b-a;将c进栈; ch为“*”:从栈st中出栈两个数值a和b,计算c=a*b;将c进栈; ch为“/”:从栈st中出栈两个数值a和b,若a不为零,计算c=b/a;将c 栈; ch为数字等:将连续的数字串转换成数值d,将d进栈;} 图 3.2.1 计算后缀表达式的流程图 图 3.2.2 5、调试分析以及设计体会 5.1调试分析 当程序编译没有错误的时候,我觉得我的程序快要成功了。可是在运行的时候老是产生四张一样的扑克牌,但是单步调试的时候又能够产生四张不一样的扑克牌,这个困难难了我好久,直到答辩的时候老师帮我找到了原因所在,解决我这个困难。当程序能够正确运行时,首先进入的是如图5.1.1所示的界面。 图 5.1.1 这时我们就可以输入算24的表达式了,如10/5*4*3就等于24,所以我们就可以计算出正确结果来了,并可以继续游戏,如图5.1.2所示。这时程序又会重新产生四张扑克牌,这次我来测试一下当输入了与所发的扑克牌不一致的牌,看程序能不

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档