




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号:30河北工业大学计算机软件技术基础(VC)2015年课程设计报告学院 机械工程学院班级 机电141班 姓名 杨纳川 学号 140584 成绩_一、题目:自动出题20以内退位减法(30)二、设计思路1、总体设计1) 分析程序的功能让计算机随机输出100个20以内的退位减法,其中150题为诸如15-6=?形式的退位减法;5175题为1?-4=7形式的退位减法;76100题为:16-?=7形式的退位减法。利用随机函数生成运算数,然后获取符合范围的运算数,生成算式并保存正确答案。使用循环语句把所需要使用的数字用数组记录下来,由于每个算式中要出现两个随机的数字,所以应采用二位数组。算式的格式有一定的要求,即每个算式中不能出现两个两位数的数字,即每个算式中只能出现两个一位数的数字和一个两位数的数字。算式的种类分为三种,每种算式不同,所存储的数字也不一样。在输出的过程中随机输出,所以要采用随机函数。2)系统总体结构:首先利用二维数组把三种情况下可能出现的使用数字记录下来,然后利用随机函数随机生成符合要求和数目的数字,然后在用正确的表达形式让系统输出,从而达到预期的效果。由计算机随即输出100个20以内的退位减法,并且退位减法是形势不一样,分为三种形势第一种15-6=这种输出50个,第二种1?-5=8这种形势随机出现25个,第三种17-?=9这种形势随机输出25个。2、各功能模块的设计:说明各功能模块的实现方法设计分为两大模块模块函数名称存储阶段使用for循环输出阶段 srand(time(NULL);1)利用数组把三种不同情况下的退位减法算式中所需要的数字记录下来,记录过程分为三个小模块,没个模块记录不同形式的算式所需要的数字。算式一共有145中可能,而且需要使用二维数组所以定义e1352.算式一共分为三类,第一类“15-7= ”,第二类“1?-5=8”,第三类“10-?=3”。用e00到e442来记录第一种算式出现的所有数字,例如:15-7= 在此算式中ek0代表算式中的15,ek1代表算式中的7,即ek0代表此类算式中出现的第一个随机数所对应的数,ek1代表此类算式中出现的第二个随机所对应的数字;用e450到e892 来记录第二种算式出现的所有数字,例如:1?-5=8在此算式中ek0代表算式中的5,ek1代表此类算式中出现的第二个随机所对应的数字;用e900到e1341 此类算式中出现的第三个随机所对应的数字;例如10-?=3,在此算式中ek0代表算式中的10,ek1代表算式中的3,即ek0代表此类算式中出现的第一个随机数所对应的数,ek1代表此类算式中出现的第二个随机所对应的数字.算式对数字有要求,每次都只能输出一个二位数字,两个一位数字,所以被减数减减数之后必须为为一位数字,因此在数据的存储过程使用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”直到所得的数字在所要求的区间内为止,则进行输出“couteb0-eb1=0&rand()45) 所得的随机函数会超过135,因此程序会出现越界现象,使得程序无法运行。因此定义“b=rand()”让b进行比较,若不在区间内的情况下进行减一,直到数字在所需要的区间为止。为了美观,每行输出5个算式“if(a%5=0) cout=0&rand()45)”这样的语句,导致随机出现的数字不在所定义的区间之内,使得程序无法运行。通过与同学之间的讨论,令随机出现的数字为“b”让“b”与所需要的区间进行比较,若是不在区间之内就进行减一处理。这样既保证的不越界,也确保了程序的正确运行和输出。2)基础知识不牢固导致大量错误并难以修改。解决:重新翻书,以及请教其他成绩优秀的的同学,多交流。3)在程序运行的过程中出现了很多问题。解决:有很多的错误类型一样,细心认真的改错,实在不会的找同学帮忙或者在网上百度。4、你所设计的程序最终完成的功能让计算机随机输出100个20以内的退位减法,其中150题为诸如15-6=?形式的退位减法;5175题为1?-4=7形式的退位减法;76100题为:16-?=7形式的退位减法。能够由用户选择出拳,然后判断胜负并输出战果和统计信息。运行结果程序使用了时间随机函数,根据成寻运行时间的不同而得到不同的退位减法算式三、程序清单1)main函数void main()int k=0,i; /声明变量i,k并且声明k的初始值 int e1352; /声明在本程序中所需要的数组,以及数组元素的个数 for(i=10;i19;i+) for(int j=(i+1)%10;j10;j+) /对于第一种形式的算式可能出现的数据记录下来 ek0=i; /对于第一种情况下的算式例如:15-6= 把15定义为ek0 ek1=j; /对于第一种情况下的算式例如:15-6= 把6定义为ek1 k+; /k有45中可能每次加1把所有的可能都输入数组中。下同 for(i=1;i10;i+) for(int j=10-i;j10;j+) /对于第二种形式的算式可能出现的数据记录下来 ek0=i; /对于第二情况下的算式例如:1?-4=7 把4定义为ek0 ek1=j; /对于第二情况下的算式例如:1?-4=7 把7 义为ek1 k+; for(i=10;i19;i+) for(int j=(i+1)%10;j10;j+) /对于第三种形式的算式可能出现的数据记录下来 ek0=i; /对于第三种情况下的算式例如:12-?=9 把12定义为ek0 ek1=j /对于第三种情况下的算式例如:12-?=9 把9定义为ek1 k+; 2)srand函数 int a=0 ,b; srand(time(NULL); /随机数发生器的初始化函数 for(i=0;i=0&b45) /当随机函数出现的数值在大于等于0小于45之间进行下面的程序 couteb0-eb1= ; /把随机出来的第一种可能性的算式以正确的形式输出 a+; /每输出一个算式a加1 下同 if(a%5=0) coutendl; / 输出5个算式进行换行 下同 else i-; /如果随机出现的数字不在大于等于0小于46之间进行进行减1知道在此区间为止 for(i=0;i=45&b90) /当随机出现的数字在大于等于45小于90之间进行 cout1?-eb0=eb1 ; /把随机出来的第二种可能性的算式以正确的形式输出 a+; if(a%5=0) coutendl; else i-; /如果随机出现的数字不在大于等于45小于90之间进行减1知道在此区间为止 for(i=0;i=90&b135) /当随机出现的数字在大于等于90小于135之间 couteb0-?= eb1 ; /正确输出第三种形式的退位减法 a+; if(a%5=0) coutendl; else i-; /如果随机出现的数字不在大于等于90小于135之间进行减1知道在此区间为止 四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价基本实现任务书中要求的功能,但由于时间紧张等因素,该程序为实现退位减法算式的输出有些繁琐。在使用随即函数的时候遇到的问题最多,尤其是在判断阶段刚开始的时候没有另b=rand()然后每次程序都不能够运行,问了老师才知道是在省城随机函数时数组越界,对于这种情况也问了同学,最后得出了正确的结果。2、对课题提出更完善的方案增添用户输入自己的计算结果,当用户输入完以后由计算机自动输出正确的运算结果,让用户进行对照,或者有计算机输出计算结果是否正确。也可以根据使用者的需要进行输出输出使用者需要的退位减法的数量。五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。对于随即函数的使用有带提高,在程序输出的过程中由于没有掌握好随机函数的使用方法,从而使得程序经常出现错误,而却自己在随机函数方面了解比较少,所以浪费了大浪的时间。函数的调用有待提高,函数的调用对于我来说一直是个弱项,所以在这次的编程过程中尽量避免了使用调用函数,但这也突出了知识上的不足,课下可以在这方面进行突破。2、 收获和心得体会。课程设计加深了自己对c+这门课的理解,巩固了之前学的知识,同时也发现自己还有很多的地方要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030全球及中国职业健康软件行业发展研究与产业战略规划分析评估报告
- 2025至2030全球及中国磁力轴承离心式制冷机行业发展研究与产业战略规划分析评估报告
- 2025至2030全球及中国白炽障碍照明行业深度研究及发展前景投资评估分析
- 2025至2030全球及中国牙科实践管理行业发展研究与产业战略规划分析评估报告
- 2025至2030全球及中国汽车车身焊接总成行业发展研究与产业战略规划分析评估报告
- 甲戊肝诊断标准
- 2025至2030全球及中国染料渗透测试行业深度研究及发展前景投资评估分析
- 护理培训季度总结
- 2025至2030全球及中国无绳牙髓电机系统行业发展研究与产业战略规划分析评估报告
- 2025至2030全球及中国建筑项目服务行业发展研究与产业战略规划分析评估报告
- 3D打印局部加固构件-洞察及研究
- 2025年港股通知识测试题
- 英语四级考试大纲词汇【全本】
- 2024年西安市灞桥区事业单位招聘工作人员历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 公务员奖励审批表
- 基于PLC的恒压供水系统设计(有梯形程序图)
- 微机原理与接口技术(清华大学课件,全套)
- LY/T 2622-2016天麻林下栽培技术规程
- JJG 814-2015自动电位滴定仪
- FZ/T 07019-2021针织印染面料单位产品能源消耗限额
- D类 干粉灭火系统说明书
评论
0/150
提交评论