河北工业大学vc课程设计.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河北工业大学vc课程设计.doc

30自动出题20以内退位减法.doc 大小:175K 河北工业大学计算机软件技术基础(VC)2012年课程设计报告 学院?城市学院?班级??电信c班?姓名??学号?1?成绩____ 一、题目: 自动出题20以内退位减法(30) 二、设计思路 1、总体设计 分析程序的功能 让计算机随机输出100个20以内的退位减法,其中1~50题为诸如15-6=?形式的退位减法;51~75题为1?-4=7形式的退位减法;76~100题为:16-?=7形式的退位减法。利用随机函数生成运算数,然后获取符合范围的运算数,生成算式并保存正确答案。 ?使用循环语句把所需要使用的数字用数组记录下来,由于每个算式中要出现两个随机的数字,所以应采用二位数组。 算式的格式有一定的要求,即每个算式中不能出现两个两位数的数字,即每个算式中只能出现两个一位数的数字和一个两位数的数字。 算式的种类分为三种,每种算式不同,所存储的数字也不一样。 在输出的过程中随机输出,所以要采用随机函数。 2)系统总体结构: 首先利用二维数组把三种情况下可能出现的使用数字记录下来,然后利用随机函数随机生成符合要求和数目的数字,然后在用正确的表达形式让系统输出,从而达到预期的效果。 由计算机随即输出100个20以内的退位减法,并且退位减法是形势不一样,分为三种形势第一种15-6=这种输出50个,第二种1?-5=8这种形势随机出现25个,第三种17-?=9这种形势随机输出25个。 2、各功能模块的设计:说明各功能模块的实现方法 1)利用数组把三种不同情况下的退位减法算式中所需要的数字记录下来,记录过程分为三个小模块,没个模块记录不同形式的算式所需要的数字。 算式一共有145中可能,而且需要使用二维数组所以定义e[145][2].算式一共分为三类,第一类“15-7=?”,第二类“1?-5=8”,第三类“10-?=3”。 用e[0][0]到e[44][2]来记录第一种算式出现的所有数字,例如:15-7=?在此算式中e[k][0]代表算式中的15,e[k][1]代表算式中的7,即e[k][0]代表此类算式中出现的第一个随机数所对应的数,e[k][1]代表此类算式中出现的第二个随机所对应的数字;用e[45][0]到e[89][2]?来记录第二种算式出现的所有数字,例如:1?-5=8在此算式中e[k][0]代表算式中的5,e[k][1]代表此类算式中出现的第二个随机所对应的数字;用e[90][0]到e[134][1]?此类算式中出现的第三个随机所对应的数字;例如10-?=3,在此算式中e[k][0]代表算式中的10,e[k][1]代表算式中的3,即e[k][0]代表此类算式中出现的第一个随机数所对应的数,e[k][1]代表此类算式中出现的第二个随机所对应的数字.算式对数字有要求,每次都只能输出一个二位数字,两个一位数字,所以被减数减减数之后必须为为一位数字,因此在数据的存储过程使用for循环语句。第一种类型的算式第一个出现的必须为大于等于10的二位数所以“for(i=10;i19;i++)?????????”但是必须要求减去第二个数后的得数为一位数,因此在“for(int?j=(i+1)%10;j10;j++)???????”来记录所有可能出现的数字。但是第二种和第一种不一样它随机输出的两个数字都为一位数所以用“for(i=1;i10;i++) for(int?j=10-i;j10;j++)”来记录第二种可能出现的数字。第三种类型同第一种类型。 2)输出模块 利用随机函数把符合要求的算式以正确的形式输出并且保证不同形式的算式所输出的个数符合题目要求。 输出过程需要掉应随机函数,但是随机函数需要变量因子来控制每次所输出的算式不一样因此采用时间随机函数“srand(time(NULL));”这样就可以实现每次运行程序输出的结果不同。第一种算式要求输出50个因此采用循环“for(i=0;i50;i++)??????????”第二种和第三种的算式需要输出25个,因此采用循环“for(i=0;i25;i++)?????????”。随机函数可能不在所需要的区间之内,当不在区间内的情况下把所随机出现的数字进行减一处理“i—”直到所得的数字在所要求的区间内为止,则进行输出“coute[b][0]-e[b][1]=????????;?”??“b”为随机出现的数字即“b=rand()”,倘若直接使用rand()即?if(rand()=0rand()45)??所得的随机函数会超过135,因此程序会出现越界现象,使得程序无法运行。因此定义“b=rand()”让b进行比较,若不在区间内的情况下进行减一,直到数字在所需要的区间为止。为了美观,每行输出5个算式“if(a%5==0)?coutendl;”这样可以保证若是出现的算式

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档