首页 > 代码库 > 四则运算题目生成程序(基于控制台)
四则运算题目生成程序(基于控制台)
题目描述:
能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
- 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
- 运算符为 +, ?, ×, ÷
- 并且要求能处理用户的输入,并判断对错,打分统计正确率
- 要求能处理用户输入的真分数, 如 1/2, 5/12 等
- 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
功能设计:
1. 通过随机数的生成,实现+, ?, ×, ÷的确定
2. +, ?, ×, ÷分别赋予整数与真分数两种计算,通过随机数的生成来决定是哪种数
3. 分数通过拆分“分子”、“/”、“分母”,置于各数组中,再通过字符串的连接或复制实现以分数的形式输出,计算则根据具体生成的运算符进行“分子与分子”、“分母与分母”的相关计算
代码说明:
1. 整数除法与分数计算需要使用到的最小大公因数与最小公倍数的函数
int gys(int fz,int fm) { int tmp; if(fz==fm) return fz; if(fz<fm) { tmp=fz; fz=fm; fm=tmp; } while(fz%fm!=0) { tmp=fz; fz=fm; fm=tmp%fm; } return fm; }
int gbs(int n,int m) { int i; for (i=n; ; i++) if (i%n==0&&i%m==0) break; return i; }
2.分数减法,可对输出的分数进行约分
case 5:{ m1=rand()%10+1; m2=rand()%10+1; m3=rand()%10+1; m4=rand()%10+1; count1++; if(m1>=m2){ sum2=m1; m1=m2; m2=sum2; } g=gys(m1,m2); m1=m1/g; m2=m2/g; if(m1==m2) itoa(1,string2,10); else{ itoa(m1,string2,10); itoa(m2,string3,10); strcat(string2,"/"); strcat(string2,string3);} if(m3>=m4){ sum2=m3; m3=m4; m4=sum2; } g=gys(m3,m4); m3=m3/g; m4=m4/g; if(m3==m4) itoa(1,string4,10); else{ itoa(m3,string4,10); itoa(m4,string5,10); strcat(string4,"/"); strcat(string4,string5);} cout<<string2<<"-"<<string4<<"="; cin>>string1; g=gbs(m2,m4); sum1=(g/m2*m1)-(g/m4*m3); sum2=g; if(sum1<0){ sum1=-sum1; g=gys(sum1,sum2); sum1=sum1/g; sum2=sum2/g; itoa(sum1,string4,10); itoa(sum2,string5,10); strcat(string0,string4); strcat(string0,"/"); strcat(string0,string5); strcpy(string4,string0);} else{ sum1=sum1/g; sum2=sum2/g; g=gys(sum1,sum2); itoa(sum1,string4,10); itoa(sum2,string5,10); strcat(string4,"/"); strcat(string4,string5); } if(string4=="1/1") itoa(1,string4,10); if(strcmp(string1,string4)==0){ cout<<"True"<<endl; count2++;} else cout<<"False,The Ture is:"<<string4<<endl; break; }
测试运行:
码市地址:https://coding.net/u/yxy526832016/p/szys/git
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student(/hour) | Time (%)(/hour) |
· Planning | 计划 | 1.5 | 1.5 |
· Estimate | 估计这个任务需要多少时间 | 30 | 40 |
· Analysis | 需求分析 (包括学习新技术) | 3 | 4 |
· Coding Standard | 代码规范 | 0.5 | 0.5 |
· Design | 具体设计 | 1.5 | 2 |
· Coding | 具体编码 | 24 | 30 |
· Test | 测试(自我测试,修改代码,提交修改) | 2.5 | 2 |
Reporting | 报告 | 1 | 1 |
四则运算题目生成程序(基于控制台)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。