设计思想:从大到小,先把整个程序的框架搭盖起来,在慢慢往里面填充代码。
1.先编写最基本的随机数和四则运算.
2.把题目的数量定义为一个变量,并带入题目中。
3.是否有乘除法,定义一个变量,
“intk;
cout<<"是否有乘除法,若有则选1,没有则选2"<<endl;
cin>>k;”
4.随机数数值范围:C++的随机数函数为rand(), 可以获得一个非负整数的随机数。
要让随机数限定在一个范围,可以采用模除加加法的方式。
要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0<=rand()%(n-m+1)<=n-m
于是
0+m<=rand()%(n-m+1)+m<=n-m+m
即
m<=rand()%(n-m+1)+m<=n
5.是否有余数和是否有负数和是否有乘除法是一样的.
6.结束.
源代码:
//四则运算 //2015.3.19 #include <iostream> using namespace std; void main() { int i=0,j,k=0,n,m,l=0,p=0; int a[100],b[100],c[100]; cout<<"请输入题目数:"<<endl; cin>>j; cout<<"是否有乘除法,若有则选1,没有则选2"<<endl; cin>>k; cout<<"数值范围(例:输入1 99 则数值范围为1-99):"<<endl; cin>>m>>n; if(k==1){ cout<<"是否有负数,若有则选1,没有则选2"<<endl; cin>>l; cout<<"除法有无余数,若有余数则选1,没有则选2"<<endl; cin>>p; cout<<"输出的题目是:"<<endl; for(i=0;i<j;i++){ a[i]=rand()%(n-m+1)+m; b[i]=rand()%100; c[i]=rand()%(n-m+1)+m; if(b[i]>=0&&b[i]<=25) cout<<a[i]<<"+"<<c[i]<<"=___"<<endl; if(b[i]>=26&&b[i]<=50){ if(l==1){ cout<<a[i]<<"-"<<c[i]<<"=___"<<endl; } else { if(a[i]>c[i]) cout<<a[i]<<"-"<<c[i]<<"=___"<<endl; else cout<<c[i]<<"-"<<a[i]<<"=___"<<endl; } } if(b[i]>=51&&b[i]<=75) cout<<a[i]<<"*"<<c[i]<<"=___"<<endl; if(b[i]>=76&&b[i]<=100) { if(p==1){ if(c[i]!=0) cout<<a[i]<<"/"<<c[i]<<"=___"<<endl; else{ for(int y=0;;y++){ c[i]=rand()%(n-m+1)+m; if(c[i]!=0) break; } cout<<a[i]<<"/"<<c[i]<<"=___"<<endl; } } else { if(c[i]!=0&&a[i]%c[i]==0) cout<<a[i]<<"/"<<c[i]<<"=___"<<endl; else { for(int y=0;;y++){ a[i]=rand()%(n-m+1)+m; c[i]=rand()%(n-m+1)+m; if(c[i]!=0&&a[i]%c[i]==0) break; } cout<<a[i]<<"/"<<c[i]<<"=___"<<endl; } } } } } else { cout<<"是否有负数,若有负数则选1,否则选2"<<endl; cin>>l; cout<<"输出的题目是:"<<endl; for(i=0;i<j;i++) { a[i]=rand()%(n-m+1)+m; b[i]=rand()%100; c[i]=rand()%(n-m+1)+m; if(b[i]>=0&&b[i]<=50) cout<<a[i]<<"+"<<c[i]<<"=___"<<endl; if(b[i]>=51&&b[i]<=100) { if(l==1) cout<<a[i]<<"-"<<c[i]<<"=___"<<endl; else { if(a[i]>c[i]) cout<<a[i]<<"-"<<c[i]<<"=___"<<endl; else cout<<a[i]<<"-"<<c[i]<<"=___"<<endl; } } } } }
结果截图:
原文:http://www.cnblogs.com/liguoshuai/p/5295764.html