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.数字的选取和运算符的选取都是用数字来表示的,选取第一个数字的时候用if语句来实现随机产生两个数字1,2用来表示整数和真分数并输出,选取运算符是用1-4四个数字分别表示+-*/,用switch语句来实现并输出。第二个数字的选取同第一个数字选取一样。

4.最后再加上for语句来实现随机产生30个运算题目。

三、程序代码:

//1301-2 20133056  吕兰兰  随机产生30道四则运算题目

#include<iostream>

#include<ctime>

using namespace std;

int  main()

{

int num_a,num_b,num_c,num_d;//随机产生4个1-100的整数

double a,b;//用来表示真分数

int c,d,e;//用来随机产生数字,c用来判断选择的是整数还是分数,d用来选择+-*/,e用来选择第二个数字是整数还是分数

srand(time(0));

for(int i=1;i<31;i++)

{

num_a=rand()%100+1;

num_b=rand()%100+1;

//求第一位真分数,产生的整数要比第一位整数小

do

{

num_c=rand()%100+1;

}while (num_c>=num_a);

a=num_c/num_a;

//求第二位真分数,产生的整数要比第二位整数小

do

{

num_d=rand()%100+1;

}while(num_d>=num_b);

b=num_d/num_b;

//选择第一位数字,为

c=rand()%2+1;

if(c==1)

{

cout<<num_a<<" ";

}

if(c==2)

{

cout<<"("<<num_c<<"/"<<num_a<<")"<<" ";

}

//产生四种运算符

d=rand()%4+1;

switch(d)

{

case 1:cout<<"+ ";break;

case 2:cout<<"- ";break;

case 3:cout<<"* ";break;

case 4:cout<<"/ ";break;

}

//随机产生第二位的数字,可以为整数或分数

e=rand()%2+1;

if(e==1)

{

cout<<num_b;

}

if(e==2)

{

cout<<"("<<num_d<<"/"<<num_b<<")";

}

cout<<"=";

cout<<endl;

cout<<endl;

}

}

四、用时:

程序编写用了90分钟,后来修改错误和完善代码用时半个小时,总用时2个小时。

五、体会:

好开心,自己独立的编出一道程序。原来编程序很好入手的只要自己提前把思路理清,我是按着老师所说的“拆分发”将每一步要做的一一列清楚,程序很好编。编程第一次程序成功输出结果错误,输出的都是相同的数字,后来发现是srand(time(0));使用错误,Do…while语句输出真分数时能输出1,经过仔细的推算很快就发现错误点,这次程序编写成功发现,程序最主要的还是思路,有的程序用简单的语句就能实现,有的就比较复杂。

时间: 2024-12-20 04:19:47

30道四则运算的相关文章

课堂练习之每天出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道四则运算练习题

习题要求:随机生成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道四则运算-NEW

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

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

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

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

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

随机生成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道四则运算(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

30道四则运算题的第一次升级

/**作者:程鹏远题目:30道2年纪四则运算题目 要求:减法结果不为负数,除法能整除,除数不为0:*/ #include <iostream.h> #include <stdlib.h>int main(){ int a,b,c; for(int i=0;i<30;i++) { cout<<"第"<<i+1<<"题: "; a=rand()%100;//x+rand()%(y-x+1)随机生成[x,y