程序生成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++;
}
}

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

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

时间: 2024-08-24 18:34:14

程序生成30道四则运算(包括整数和真分数)的相关文章

30道四则运算题的第三次补充

30道四则运算题目 一.题目: 用C++编写程序,打印30道四则运算题目: 要求:1.题目避免重复:   2.可定制(数量/打印方式):   3.可以控制下列参数: 是否有乘除法.是否有括号. 数值范围.加减有无负数.除    法有无余数.否支持分数 (真分数, 假分数, …).是否支持小数 (精确到多少位).打印中每行的间隔可调整: 二.设计思路: 要求1:题目避免重复 C++中用函数srand()能够避免生成重复的随机数,一定的数值范围只能生成一定数量的随机运算题目:满足一个关系:num>(

课堂练习之每天出30道四则运算题目

1 /* 2 需求:每天出30道四则运算题目给小学生做 3 */ 4 5 class Rand 6 { 7 public static void sop(Object obj) 8 { 9 System.out.println(obj); 10 } 11 public static void main(String[] args) 12 { 13 sop("小学生二年级课后作业,每天30道四则运算练习:"); 14 15 int count = 0; 16 17 for (int i=

软件工程课后作业——用JAVA编写的随机产生30道四则运算

1 package com.java.sizeyunsuan; 2 3 public class lianxi { 4 String f() 5 { 6 int i=(int)(Math.random()*10); 7 int j=(int)(Math.random()*10); 8 if(i>=j) 9 { 10 int temp=i; 11 i=j; 12 j=temp; 13 } 14 return(i+"/"+j); 15 } 16 public static void

随机生成30道四则运算-NEW

补充:紧跟上一个随机生成30道四则运算的题目,做了一点补充,可以有真分数之间的运算,于是需要在原来的基础上做一些改进. 首先指出上一个程序中的几个不足:1.每次执行的结果都一样,所以不能每天给孩子出30道一样的题吧!2.没有考虑,如果随机出的是除法,且除数为0的情况.3.没有实现生成真分数的四则运算的功能. 经过分析,决定依次进行改进: 针对问题1:在程序中设置时间种子,即可使得每次程序运行的结果不同. 针对问题2:当判断要生成除法运算时,做一个判断,若除数为0,则重新生成. 针对问题3:定义一

程序实现自动生成30道四则运算题目

课堂上老师要求我们做这样一个题目,题目要求是自动生成30道四则运算题目,要求除整数加减乘除外,还有真分数加减乘除.刚开始听到这个题目一头雾水,有点复杂,但仔细拆分这个题目不难发现,这个题目可以简化成三个小问题,分别是随机数自动生成两个数,自动生成符号,还有输出结果.对于随机数自动生成两个数可以简化为随机数生成整数,随机数生成真分数,生成真分数可以简化到随机数生成分子和分母.对于自动生成符号,也可以简化为随机数生成1,2,3,4,分别代表+,—,*,/,输出结果可以用一个for循化,实现输出30道

30道四则运算

一.题目要求: 编写一道程序要求,随机给出30道四则运算题,可以是整数运算,也可以是分数运算. 二.设计思路: 1.首先能随机产生四个1-100的整数,并且要用时间种子函数避免伪随机: 2.真分数的产生是用除法来计算的,产生第一个(num_a)第二个(num_b)整数用来限制第三个(num_c)第四个(num_d)整数,其中第三个第四个整数要小于第一个第二个整数用Do….while 语句来实现,第一个真分数表示是a=num_c/num_a,第四个真分数b=num_d/num_b: 3.数字的选取

随机生成30道四则运算题

思路:首先随机生成两个操作数.将运算符存到数组c中,随机生成0-3的整数作为数组下标.即相当于随机产生运算符. 利用for循环输出30道四则运算题 #include<iostream.h>#include<stdlib.h>int main(){     int a,b,d,i;     char c[4]={'+','-','*','/'};     for(i=0;i<30;i++)     {           a=int(rand()%11);           

软件工程课堂练习-随机生成30道四则运算练习题

习题要求:随机生成30道四则运算题 以下是程序代码: 1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "time.h" 4 #include "stdlib.h" //随机器函数头文件 5 6 void print() 7 { 8 srand((int)time(0)); 9 for(int i=0;i<=29;i++) 10 { 11 int x; 12 in

随机产生30道四则运算(C语言)

利用自己熟悉的语言别写一段程序,要求能随机产生30道四则运算的算数题 以下是程序代码: 1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "math.h" 4 #include "stdlib.h" //随机器函数头文件 5 6 void print() 7 { 8 for(int i=0;i<=29;i++) 9 { 10 int x; 11 int a=ran