一、设计思路
1.题目避免重复:比较运算中第一个数,如果相同,下一个数取
2.可定制(数量/打印方式):数量可以从键盘输入,可选择一行输出几题
3.控制参数,由用户进行选择,用户选择(0是,1否),根据选择调用判断
二、代码
#include<iostream.h>
#include<stdlib.h>int a[200],b[200],k[200];int i,j,c;void shuchu(int dy) //输出题目{ if(dy==0) { if(k[i]==0) cout<<a[i]<<'+'<<b[i]<<'='<<endl; if(k[i]==1) cout<<a[i]<<'-'<<b[i]<<'='<<endl; if(k[i]==2) cout<<a[i]<<'*'<<b[i]<<'='<<endl; if(k[i]==3) cout<<a[i]<<'/'<<b[i]<<'='<<endl; } else { if(k[i]==0) cout<<a[i]<<'+'<<b[i]<<'='<<'\t'; if(k[i]==1) cout<<a[i]<<'-'<<b[i]<<'='<<'\t'; if(k[i]==2) cout<<a[i]<<'*'<<b[i]<<'='<<'\t'; if(k[i]==3) cout<<a[i]<<'/'<<b[i]<<'='<<'\t'; if((i+1)%dy==0) cout<<endl; }}void yaoqiu() //对出题的要求询问 { int cc,fw,zf,ys,ts,dy; cout<<"请选择是否有乘除法:(0为是,1为否)"<<endl; cin>>cc; while(cc!=0&&cc!=1) { cout<<"输入错误,请重新输入!"<<endl; yaoqiu(); } cout<<"请输入取值范围:(输入范围0~x的最大数x)"<<endl; cin>>fw; while(fw<=0) { cout<<"输入错误,请输入正整数"<<endl; yaoqiu(); } cout<<"请选择加减有无负数:(0为有,1为无)"<<endl; cin>>zf; while(zf!=0&&zf!=1) { cout<<"输入错误,请重新输入!"<<endl; yaoqiu(); } if(cc==0) { cout<<"请选择除法有无余数:(0为有,1为无)"<<endl; cin>>ys; while(ys!=0&&ys!=1) { cout<<"输入错误,请重新输入!"<<endl; yaoqiu(); } } cout<<"你想要一次出几道题?"<<endl; cin>>ts; while(ts<=0) { cout<<"输入错误,请重新输入!"<<endl; yaoqiu(); } cout<<"请选择打印方式:(1为逐行打印,输入其他数字(2,3,4,5...)则为一行有2,3,4,5...道题)"<<endl; cin>>dy; while(dy<=0) { cout<<"输入错误,请重新输入!"<<endl; yaoqiu(); } for(i=0;i<ts;i++) { for(j=0;j<i;j++)// 排重 { if(a[j]==a[i]) a[i]++; } a[i]=rand()%fw; b[i]=rand()%fw; if(cc==0) { k[i]=rand()%4; } else { k[i]=rand()%2; } if(zf==1) { if(b[i]>a[i]) { c=b[i]; b[i]=a[i]; a[i]=c; } } if(ys==0) { huchu(dy); } if(ys!=0) { if(k[i]==3&&b[i]==0) //除数不能为0 { b[i]++; } while(a[i]%b[i]!=0) b[i]++; shuchu(dy); } }}void main(){ yaoqiu();}三、截图
四、总结
在实验过程中,输出结果一直出错,花了大量时间才发现是因为大括号放错位置,
这主要在于我以前没养成良好的编程习惯,我一定要吸取这次的教训。
五、计划表