二柱子的生成小学生四则运算题程序
一、程序要求
1、自动生成30道小学生四则运算题
2、除了整数外,还要可以生成真分数的四则运算
二、程序设计思想
程序分两个部分:整数部分和分数部分
1、定义变量:第一个数(分子)、第二个数(分子)、第一个数的分母、第二个数的分母、运算符号;
2、用时间做种子,使每次产生随机数都不一样;
3、产生分支,分别输出整数四则运算、分数的四则运算;
4、分支1,产生整数随机数:第一个数、第二个数;
5、产生随机算符:用数字0-3代表+、-、*、/,即产生4以内的随机数;
6、输出整数运算式,其中减法需要大数减小数,除法的除数不能为0;
7、分支2,产生分数随机数:第一个数的分子、第二个数的分子、第一个数的分母、第二个数的分母、运算符号(同上);
8、输出分数运算式,其中分数的分母不能为0且分子小于分母,减法同上,除法的除数不能为0,即除法的除数的分子分母都不能为0。
三、源程序
//李俏,2016.3.3 //随机生成四则运算 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<time.h> using namespace std; void main() { int first,second,firstm,secondm; int sign,i,j; srand((int)time(NULL)); //用时间做种子,每次产生随机数都不一样 for(i=0;i<30;i++) { j=rand()%2; //选择生成整数运算还是分数运算 if(j==0) //选择整数 { first=rand()%100; second=rand()%100; sign=rand()%4; switch(sign) { case 0: //整数加法 cout<<first<<"+"<<second<<"="<<endl; break; case 1: //整数减法 if(first>second) cout<<first<<"-"<<second<<"="<<endl; else cout<<second<<"-"<<first<<"="<<endl; break; case 2: //整数乘法 cout<<first<<"*"<<second<<"="<<endl; break; case 3: //整数除法 if(second!=0) cout<<first<<"/"<<second<<"="<<endl; else cout<<second<<"/"<<first<<"="<<endl; break; } } else //选择分数 { first=rand()%100; second=rand()%100;//分子 firstm=rand()%100; secondm=rand()%100;//分母 sign=rand()%4; switch(sign) { case 0://分数加法 if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm) cout<<first<<"/"<<firstm<<" + "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; case 1://分数减法 if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm&&(first/firstm)>(second/secondm)) cout<<first<<"/"<<firstm<<" - "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; case 2://分数乘法 if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm) cout<<first<<"/"<<firstm<<" * "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; case 3://分数除法 if(firstm!=0&&secondm!=0&&first!=0&&second!=0&&first<firstm&&second<secondm) cout<<first<<"/"<<firstm<<" / "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; } } } }
四、结果截图