程序生成30道四则运算(包括整数和真分数)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序生成30道四则运算(包括整数和真分数)相关的知识,希望对你有一定的参考价值。
题目:
花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”, 分别满足下面的各种需求。下面这些需求都可以用命令行参数的形式来指定:
除了整数以外,还要支持真分数的四则运算。 (例如: 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道四则运算(包括整数和真分数)的主要内容,如果未能解决你的问题,请参考以下文章