编程实现随机生成30道随机整数或者真分数组合的两位数四则运算的计算题
将题目分解后的思路:
1.首先通过系统时间初始化随机数种子然后生成两个随机整数和两个随机真分数来组合进行四则运算。
2.再生成两个随机数用于除四取余进行四则运算整数和真分数组合和四种运算符号选择。
3.利用switch-case语句进行选择,外部switch-case语句进行整数和真分数四种情况组合,每种组合内部嵌套一个switch-case语句进行四则运算四种运算符号的选择并输出结果。
程序源代码:
//20133059 武于微 信1301-1班
#include<iostream>
#include<stdlib.h>
#include<ctime>
#define RAND_MAX 100
using namespace std;
void main()
{
int x1,x2,y1,y2,a,b,i;
float x3,x4;
srand(time(0)); //通过系统时间初始化随机数种子,若不设置则每次产生随机数相同
for(i=1;i<=30;i++)
{
x1=rand()%100; //产生随机整数
x2=rand()%100;
x3=rand()%100/100.0; //产生随机真分数
x4=rand()%100/100.0;
y1=rand()%100; //产生随机整数用于除四取余后进行四种运算符号和四种数的选择
y2=rand()%100;
a=y1%4;
b=y2%4;
switch(b) //用于随机整数和真分数四种组合情况的选择
{
case 0: //整数整数运算
switch(a) //用于四则运算四种符号的选择
{
case 0:
cout<<x1<<"+"<<x2<<"="<<endl;
break;
case 1:
cout<<x1<<"-"<<x2<<"="<<endl;
break;
case 2:
cout<<x1<<"*"<<x2<<"="<<endl;
break;
case 3:
if(x2==0) //用于分母是否为零的判断
{
for(;x2==0;)
{
x2=rand()%100;
}
}
else
cout<<x1<<"/"<<x2<<"="<<endl;
break;
default:
break;
}
break;
case 1: //分数分数运算
switch(a)
{
case 0:
cout<<x3<<"+"<<x4<<"="<<endl;
break;
case 1:
cout<<x3<<"-"<<x4<<"="<<endl;
break;
case 2:
cout<<x3<<"*"<<x4<<"="<<endl;
break;
case 3:
if(x4==0)
{
for(;x4==0;)
{
x4=rand()%100;
}
}
else
cout<<x3<<"/"<<x4<<"="<<endl;
break;
default:
break;
}
break;
case 2: //整数分数运算
switch(a)
{
case 0:
cout<<x1<<"+"<<x3<<"="<<endl;
break;
case 1:
cout<<x1<<"-"<<x3<<"="<<endl;
break;
case 2:
cout<<x1<<"*"<<x3<<"="<<endl;
break;
case 3:
if(x3==0)
{
for(;x3==0;)
{
x3=rand()%100;
}
}
else
cout<<x1<<"/"<<x3<<"="<<endl;
break;
default:
break;
}
break;
case 3: //分数整数运算
switch(a)
{
case 0:
cout<<x4<<"+"<<x2<<"="<<endl;
break;
case 1:
cout<<x4<<"-"<<x2<<"="<<endl;
break;
case 2:
cout<<x4<<"*"<<x2<<"="<<endl;
break;
case 3:
if(x2==0)
{
for(;x2==0;)
{
x2=rand()%100;
}
}
else
cout<<x1<<"/"<<x2<<"="<<endl;
break;
default:
break;
}
break;
default:
break;
}
}
}
原文:http://www.cnblogs.com/wuyw/p/5243286.html