四则运算2

#include <iostream>
using namespace std;

void Chu(int a,int b,int m2,int min,int max,int i)
{
do b=rand();
while(b<min||b>max||b==0);
if(m2==2&&a%b!=0)
{
do b=rand();
while(b<min||b>max||b==0||a%b!=0);
}
cout<<i<<". "<<a<<"/"<<b<<"="<<endl;
}

void Fen(int m1,int m3,int min,int max,int i)
{
int a1,a2,b1,b2;
int s2,s3,s4;
a1=rand();
a2=rand();
do b1=rand();
while ((a1/b1)<min||(a1/b1)>max||b1==0);
do b2=rand();
while ((a2/b2)<min||(a2/b2)>max||b2==0);
s4=m1==1?rand()%4:rand()%2;
if(m3==1)
{

s2=rand()%2;
s3=rand()%3;
a1=s2==1?a1*(-1):a1;
a2=s3==1?a2*(-1):a2;
}
if(s4==0)
cout<<i<<". "<<a1<<"/"<<b1<<"+"<<a2<<"/"<<b2<<"="<<endl;
if(s4==1)
cout<<i<<". "<<a1<<"/"<<b1<<"-"<<a2<<"/"<<b2<<"="<<endl;
if(s4==2)
cout<<i<<". "<<a1<<"/"<<b1<<"*"<<a2<<"/"<<b2<<"="<<endl;
if(s4==3)
Chu(a1/b1,a2/b2,1,min,max,i);
}

int main()
{
int a[100],b[100];
int i,n,min,max,s1,s2,s3;
int m1,m2,m3,m4;
int m0;

cout<<" ***********************************************"<<endl;
cout<<" * *"<<endl;
cout<<" * -------四则运算-------- *"<<endl;
cout<<" * *"<<endl;
cout<<" ***********************************************"<<endl<<endl;

do{
cout<<"请输入题目数n:"<<endl;
cin>>n;
cout<<"请输入四则运算数字范围:"<<endl;
cin>>min>>max;
cout<<"请选择是否产生乘除法算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
cin>>m1;
cout<<"请选择是否产生有余数的算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
cin>>m2;
cout<<"请选择是否产生有负数的算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
cin>>m3;
cout<<"请选择是否产生有分数的算式:"<<endl<<"1.是"<<endl<<"2.否"<<endl;
cin>>m4;

for(i=1;i<=n;i++)
{
do a[i]=rand();
while(a[i]<min||a[i]>max);

do b[i]=rand();
while(b[i]<min||b[i]>max);


if(m1==1)
{
s1=rand()%4;
if(m4==1)
s1=rand()%5;
}
else s1=rand()%2;

if(m3==1)
{

s2=rand()%2;
s3=rand()%3;
a[i]=s2==1?a[i]*(-1):a[i];
b[i]=s3==1?b[i]*(-1):b[i];
}

if(s1==0)
cout<<i<<". "<<a[i]<<"+"<<b[i]<<"="<<endl;
if(s1==1)
cout<<i<<". "<<a[i]<<"-"<<b[i]<<"="<<endl;
if(s1==2)
cout<<i<<". "<<a[i]<<"*"<<b[i]<<"="<<endl;
if(s1==3)
Chu(a[i],b[i],m2,min,max,i);
if(s1==4)
Fen(m1,m3,min,max,i);
}

cout<<" ***********************************************"<<endl;
cout<<" * *"<<endl;
cout<<" * -------四则运算-------- *"<<endl;
cout<<" * *"<<endl;
cout<<" ***********************************************"<<endl<<endl;
cout<<" 请选择: "<<endl;
cout<<" 1.开始 "<<endl;
cout<<" 2.结束 "<<endl;
cin>>m0;
}
while(m0==1);

return 0;
}

编程总结:

跟之前的设计思路不太一样,没有用全是函数,因为循环加套用函数,很麻烦,实现不了啊。。。

然后我就把选择全放在主函数里,除法单独函数,在除法函数里判断有没有余数,负数就更简单了,直接产生随机数让两个数随机乘-1,

分数比较麻烦,要产生四个随机数,在有除法的情况下,其中3个数不能为0,输出也得和整数分开,所以就写成个函数,把主函数里的输出修改一下放进去了,

然后再主函数里调用就行了。基本就是这些情况吧,忘记写打印格式了。。。一开始想的挺简单,后来才发现根本完成不了,唉。。。

                                                                                                    时间记录日志

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3/13

10:10

11:30

10

80

听课

软件工程概论

 

11:30

12:00

 

30

构思

四则运算2

 

13:10

14:04

 

54

写博客

最初思路

3/18

19:00

22:38

 

218

编程

 

3/19

16:40

17:15

 

35

写博客

最后总结

posted @ 2015-03-19 17:20  夺命小五毛  阅读(146)  评论(0编辑  收藏  举报