标签:
/*
信息:20133075 张勋 《随机生成30道四则运算题目》
要求:除整数外,还要支持真分数的四则运算
设计思路:
1.通过radom函数生成自然数,给变量赋值
2.另一个变量是真分数,分子比分母小
3.随机生成四则运算符
4.注意除数为0情况
注意:
这是两个函数!一个是srand函数!这是在调用rand()这个函数之前使用的!
rand()是一个产生随机数的函数!而srand是一个设置随机数种子的函数!通常这两
个函数是一起使用的!来完成产生随机数的功能!而time(NULL)这个函数的返回值是作
为srand函数的参数的!意思是以现在的系统时间作为随机数的种子来产生随机数!至
于NULL这个参数。只有设置成NULL才能获得系统的时间!
*/
#include<iostream>
#include<time.h>
#include<string>
using namespace std;
int main()
{
//以现在的系统时间作为随机数的种子来产生随机数
srand(time(NULL));
char X;
cout << "请您选择四则运算题的难度:(1或2)\n" ;
cout << "1.简单(纯整数的运算)\n"<<"2.困难(包含真分数的四则运算)\n";
cin >> X;
//1.简单(纯整数的运算)
if (X == ‘1‘)
{
for (int count = 0; count < 30;count++)
{
int a = 0, b = 0;
a = rand() % 100;
b = rand() % 100;
//随机产生四则运算符
int sign = 0;
sign = (rand() % 100) % 4;
string opera_sign[4] = { "+", "-", "*", "/" };
//当b=0且运算为除法时重新生成
while (b == 0 & sign == 3)
{
b = rand() % 100;
}
switch (sign)
{
case 0:cout << a << opera_sign[sign] << b << "=" << endl; break;
case 1:cout << a << opera_sign[sign] << b << "=" << endl; break;
case 2:cout << a << opera_sign[sign] << b << "=" << endl; break;
case 3:cout << a << opera_sign[sign] << b << "=" << endl; break;
}
}
}
//2.困难(包含真分数的四则运算)
if (X == ‘2‘)
{
for (int count = 0; count < 30; count++)
{
int a1 = 0, b1 = 0, a2 = 0, b2 = 0;
a1 = rand() % 100;
b1 = rand() % 100;
a2 = rand() % 100;
b2 = rand() % 100;
//判断是否为真分数
while (a1>b1||b1==0)
{
a1 = rand() % 100;
b1 = rand() % 100;
}
while (a2>b2||b2==0)
{
a2 = rand() % 100;
b2 = rand() % 100;
}
//随机产生四则运算符
int sign = 0;
sign = (rand() % 100) % 4;
string opera_sign[4] = { "+", "-", "*", "/" };
switch (sign)
{
case 0:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
case 1:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
case 2:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
case 3:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
}
}
}
}
运行程序后,会产生如下提示:
选择简单,可产生:
选择困难级别,可产生真分数运算:
本道题,需要注意的是:对 srand(time(NULL))函数的使用,可以保证每次运行时,系统产生的结果不一样!
这是两个函数!一个是srand函数!这是在调用rand()这个函数之前使用的!
rand()是一个产生随机数的函数!而srand是一个设置随机数种子的函数!通常这两
个函数是一起使用的!来完成产生随机数的功能!而time(NULL)这个函数的返回值是作
为srand函数的参数的!意思是以现在的系统时间作为随机数的种子来产生随机数!至
于NULL这个参数。只有设置成NULL才能获得系统的时间!
*/
标签:
原文地址:http://www.cnblogs.com/X-knight/p/5248250.html