您的位置:首页 > 其它

四则运算2

2016-03-12 10:51 260 查看
计划我的测试

1、当选定随机数的范围为1-100时选择有或者没有乘除法,输出打印都能够成功。

2、当选定的随机数的范围包括0时并且选定有乘除法时,程序是否能排除0做除数的情况。

3、当用户已经选择不需要乘除法时,是否还有必要进行有无余数的选择和计算。

4、当设定打印题数为0时,是否能够正确的执行。

5、当选择允许可以有负数时是指题目中的数字可以有负数,还是运算结果可以有。

6、在第一项的选择随机数范围时,是可以设定的无限大或是无限的小。

针对第一个计划的测试,我得到了如下结果:



这个测试我选定的随机数范围是1-100,选择的无乘除法,得到的结果正确。

针对第二个计划的测试,我得到了如下的结果:



其中我把随机数的范围包括了0,并且选择了有乘除法,经过了多次试验并没有出现除数为0的现象,当然这并不排除偶然的现象。

针对第三个计划的测试,我得到了如下结果:



当我选择不需要乘除法时,就不用选择是否需要有余数这项,同时程序也不会做相关的运行和计算。

针对第四个计划的测试,我得到了如下结果:



当我选定打印数目为0时,输出的结果确实没有打印出来。

针对第五个计划的测试,我得到了如下结果:



当选择可以有负数时,从运行结果中可以发现,是既可以生成负数,又可以减法计算后的结果允许有负数。

针对第六个计划的测试,我得到了如下结果:



可以看出最大也不是无限的可以大,最多只能到100000.

代码:

#include <iostream>
#include<stdlib.h>
#include <ctime>
#include <cmath>
using namespace std;

void main()
{
int i, j;
int daYinShu;
int b[1000], c[1000], d[1000];
int e, min, max, pj;
int aa;//各参数为定义量
int bb;//各参数为定义量
int cc;//各参数为定义量
int s;//各参数为定义量
srand((unsigned)time(NULL));
cout << "请输入你想打印的题数:" << endl;
cin >> daYinShu;
cout << "请输入随机数的范围值,min与max的值分别为:" << endl;
cin >> min >> max;
pj = max - min;//通过用户输入的最大值最小值,得到范围域
cout << "是否需要乘除?(回答1或0):" << endl;
cin >> aa;
/*cout<< "请选择需要整数还是分数?(整数1分数2)" << endl;
cin >> num;
int num1 = rand() % 100;//随机生成0-100里的整数
int num2 = rand() % 100;//随机生成0-100里的整数
int num3 = rand() % 100;//随机生成0-100里的整数
int num4 = rand() % 100;//随机生成0-100里的整数
int f;
if(num=2)
{
int a = num1;
int b = num2;
if (num1 > num2)//判断是否为真分数
{
int e = a;
a = b;
b = e;
}
cout << "("<< a << "/" << b <<") ";
f = num1 % 4 + 1;
switch (f)
{
case 1:cout << "+  "; break;
case 2:cout << "-  "; break;
case 3:cout << "× "; break;
case 4:cout << "÷ "; break;
}
int c = num3;
int d = num4;
if (num3 > num4)
{
int k = c;
c = d;
d = k;
}
if(d != 0 && c != 0)
cout <<"("<< c << "/" << d <<")"<<"="<<endl;
}*/
if (aa == 1)
{
cout << "是否需要除法要得到余数?(回答1或0):" << endl;
cin >> bb;
cout << endl;
}
cout << "是否需要负数?(回答1或0):" << endl;
cin >> cc;
if (aa == 1)
{
for (i = 0; i < daYinShu; i++)//判断是否重复
{
b[i] = rand() % pj + min;
c[i] = rand() % pj + min;
d[i] = rand() % 4;
for (j = 0; j < i; j++)
{
while (b[j] == b[i] && c[j] == c[i]&&d[i]==d[j])
{
b[i] = rand() % pj + min;
c[i] = rand() % pj + min;
d[i] = rand() % 4;
}
}
}
for (i = 0; i < daYinShu; i++)
{
e = rand() % 2;
switch (d[i])
{
case 0:
cout << b[i] << " + " << c[i] << " = " << endl;
break;
case 1:
if (cc == 0)
{
if (b[i] < c[i])
{
s = b[i];
b[i] = c[i];
c[i] = s;
}
else
cout << b[i] << " - " << c[i] << " = " << endl;
break;
}
else
cout << b[i] << " - " << c[i] << " = " << endl;
break;
case 2:
if (e == 0)
{
cout << b[i] << " * " << c[i] << " = " << endl;
break;
}
else if (e == 1)
{
cout << b[i] << " * ( - " << c[i] << " ) = " << endl;
break;
}
case 3:
if (c[i] == 0)//分母不能为零
{
i--;
break;
}
else if (bb == 1)
{
if (b[i] % c[i] != 0)
{
cout << b[i] << " / " << c[i] << " = " << endl;
break;
}
else
{
i--;
break;
}
}
else if (bb == 0)
{
if (b[i] % c[i] != 0)
{
cout << b[i] << " / " << c[i] << " = " << endl;
break;
}
else
{
i--;
break;
}
}
break;
}
}
}
else
{
for (i = 0; i < daYinShu; i++)//判断是否重复
{
b[i] = rand() % pj + min;
c[i] = rand() % pj + min;
d[i] = rand() % 2;
for (j = 0; j < i; j++)
{
while (b[j] == b[i] && c[j] == c[i])
{
b[i] = rand() % pj + min;
c[i] = rand() % pj + min;
d[i] = rand() % 2;
}
}
}
for (i = 0; i < daYinShu; i++)
{
switch (d[i])
{
case 0:
cout << b[i] << " + " << c[i] << " = " << endl;
break;
case 1:
if (cc == 0)
{
if (b[i] < c[i])
{
s = b[i];
b[i] = c[i];
c[i] = s;
}
else
{
cout << b[i] << " - " << c[i] << " = " << endl;
break;
}
}
else
{
cout << b[i] << " - " << c[i] << " = " << endl;
break;
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: