码迷,mamicode.com
首页 > 其他好文 > 详细

程序生成30道四则运算(包括整数和真分数)

时间:2016-03-06 17:10:25      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

题目:

花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”, 分别满足下面的各种需求。下面这些需求都可以用命令行参数的形式来指定:

 除了整数以外,还要支持真分数的四则运算。 (例如:  1/6 + 1/8 = 7/24)

 

在软件工程课上,对于这道题目看了之后发现还是很简单的主要注意:

(1)使用随机函数生成运算数

(2)运算符号的随机确定

(3)考虑除数是否为0若为0将如何处理

(4)真分数的生成方法

思考之后我写了如下代码:

#include<iostream>
using namespace std;
#include<time.h>
#include<string>

int main()
{
int count=0 ;
srand(time(NULL));//用系统当前时间设置rand()随机序列种子,保证每次运行随机序列不一样
char ch;
while(count<30)
{
cout<<"选择做整数运算(输入‘a‘)或真分数运算(输入‘b‘)"<<endl;
//产生整数的运算
cin>>ch;
if(ch==‘a‘)
{cout<<"开始产生四则运算:"<<endl;
int shu1=0,shu2=0;
//随机数产生0-100
//shu1=srand(1000);


shu1=0+rand()%100;
shu2=0+rand()%100;

int sum=0;
int fushu=0;
string fuhao[4]={"+","-","*","/"};
fushu=((0+rand()%4)+4)%4;
//cout<<fushu<<endl;

//判断shu2是否为0和是否为除法 若为则重新生成
while(shu2==0&fushu==3)
{
shu2=0+rand()%100;
}
//随机产生的符号
switch(fushu)
{
case 0:cout<<shu1<<fuhao[fushu]<<shu2<<endl;break;
case 1:cout<<shu1<<fuhao[fushu]<<shu2<<endl;break;
case 2:cout<<shu1<<fuhao[fushu]<<shu2<<endl;break;
case 3:cout<<shu1<<fuhao[fushu]<<shu2<<endl;break;
}
}

//产生真分数的运算
if(ch==‘b‘)
{
int zhenfens1_m=0,zhenfens1_z=0,zhenfens2_m=0,zhenfens2_z=0;

zhenfens1_m=0+rand()%100;
zhenfens1_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfens1_m<zhenfens1_z)
{
zhenfens1_m=0+rand()%100;
zhenfens1_z=0+rand()%100;
}

zhenfens2_m=0+rand()%100;
zhenfens2_z=0+rand()%100;

//判断产生的真分数正确性
while(zhenfens2_m<zhenfens2_z)
{
zhenfens2_m=0+rand()%100;
zhenfens2_z=0+rand()%100;
}

string fuhao[4]={"+","-","*","/"};
int fushu=((0+rand()%4)+4)%4;
//cout<<fushu<<endl;

//判断shu2是否为0和是否为除法 若为则重新生成
//随机产生的符号
switch(fushu)
{
case 0:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<endl;break;
case 1:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<endl;break;
case 2:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<endl;break;
case 3:cout<<"("<<zhenfens1_z<<"/"<<zhenfens1_m<<")"<<fuhao[fushu]<<"("<<zhenfens2_z<<"/"<<zhenfens2_m<<")"<<endl;break;
}

}
count++;
}
}

 

粘贴后程序全部顶格了。。

但是我写的程序没有类的封装还有也不好扩展,所以还有很大缺陷,若有朋友看了我的代码可以给我一下建议。

程序生成30道四则运算(包括整数和真分数)

标签:

原文地址:http://www.cnblogs.com/ly199553/p/5247658.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!