您的位置:首页 > 其它

四则运算2详细过程

2015-03-11 10:29 281 查看
一、设计思路

1.题目避免重复:

可以定义三个数组,第二道题的第一个数,第二个数,运算符不能与第一道题完全一样,第三道题不能与第二道题,第一道题一样,以此类推。

2.可定制(数量/打印方式)

数量可以从键盘输入,打印方式可以调整各题之间的间距或者直接换行。

3.控制参数,由用户的意愿进行选择,先设置用户选择(0,1),程序用判断语句获得用户的意愿,添加进相应的题目。

二、源代码

#include<iostream.h>

#include<stdlib.h>

int a[100],b[100],c[100];

int i;

void Display(int f) //输出题目

{

if(f==0)

{

if(c[i]==0)

cout<<a[i]<<'+'<<b[i]<<'='<<endl;

if(c[i]==1)

cout<<a[i]<<'-'<<b[i]<<'='<<endl;

if(c[i]==2)

cout<<a[i]<<'*'<<b[i]<<'='<<endl;

if(c[i]==3)

cout<<a[i]<<'/'<<b[i]<<'='<<endl;

}

else

{

if(c[i]==0)

cout<<a[i]<<'+'<<b[i]<<'='<<'\t';

if(c[i]==1)

cout<<a[i]<<'-'<<b[i]<<'='<<'\t';

if(c[i]==2)

cout<<a[i]<<'*'<<b[i]<<'='<<'\t';

if(c[i]==3)

cout<<a[i]<<'/'<<b[i]<<'='<<'\t';

if((i+1)%f==0)

cout<<endl;

}

}

void Carry() //执行全部过程,添加有出错处理

{

int j,k,t;

int m,n,o,d,e,f;

cout<<"请选择是否有乘除法:(0为是,1为否)"<<endl;

cin>>m;

if(m!=0&&m!=1)
{
cout<<"输入错误,请重新输入!"<<endl;
Carry();

exit(0);
}

cout<<"请输入取值范围:(0-?)"<<endl;

cin>>n;

cout<<"请选择加减有无负数:(0为有,1为无)"<<endl;

cin>>o;

if(o!=0&&o!=1)
{
cout<<"输入错误,请重新输入!"<<endl;
Carry();

exit(0);
}

if(m==0)

{

cout<<"请选择除法有无余数:(0为有,1为无)"<<endl;

cin>>d;

if(d!=0&&d!=1)
{
cout<<"输入错误,请重新输入!"<<endl;
Carry();

exit(0);
}

}

cout<<"请输入题目个数:"<<endl;

cin>>e;

if(e<=0)
{
cout<<"输入错误,请重新输入!"<<endl;
Carry();

exit(0);
}

cout<<"请选择打印方式:(0为逐行打印,输入其他数字则为该行几道题)"<<endl;

cin>>f;

if(f<0)
{
cout<<"输入错误,请重新输入!"<<endl;
Carry();

exit(0);
}

for(i=0;i<e;i++)

{

a[i]=rand()%n;

b[i]=rand()%n;

c[i]=rand()%4;

if(c[i]==3&&b[i]==0)//除数不能为0

{

b[i]++;

}

for(j=0;j<i;j++) //判断题目是否重复,若重复则a[i]++

if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i])

a[i]++;

if(m==0&&o==0&&d==0)

{

Display(f);

}

else if(m==1) //没有乘除法

{

if(c[i]>=2)

c[i]=c[i]-2;

Display(f);

}

else if(m==0&&o==1&&d==0) //无负数,且被除数大于除数

{

if(a[i]<b[i])

{

t=a[i];

a[i]=b[i];

b[i]=t;

}

Display(f);

}

else

{

if(c[i]==3)

{

if(a[i]<b[i])

{

t=a[i];

a[i]=b[i];

b[i]=t;

}

while(a[i]%b[i]!=0) //无余数

b[i]++;

}

Display(f);

}

}

}

void main()

{

Carry();

}

三、运行结果





四、错误原因

1.刚开始未能把三个数组以及变量i定义为全局变量,导致在Display函数中,无法把主函数中的值传到其他函数中;

2.功能是一点一点添加进去的,刚开始忘了把打印方式功能添加进去了,后来想起来又添加的;

3.除法没有余数,必然被除数要大于或等于除数,为了减少工作量,没有涉及既有负数又没有余数的题目。

五、备注

3月13日下午,进行了一下程序的修改,添加了错误处理机制,使得程序更加完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: