一、设计思路
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]<<'='<<' ';
if(k[i]==1)
cout<<a[i]<<'-'<<b[i]<<'='<<' ';
if(k[i]==2)
cout<<a[i]<<'*'<<b[i]<<'='<<' ';
if(k[i]==3)
cout<<a[i]<<'/'<<b[i]<<'='<<' ';
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();
}
三、截图
四、总结
在实验过程中,输出结果一直出错,花了大量时间才发现是因为大括号放错位置,
这主要在于我以前没养成良好的编程习惯,我一定要吸取这次的教训。
五、计划表