软件工程实验一--编程随机生成30个四则运算,算数包括100以内的整数和真分数。

软件工程实验一:

——编程随机生成30个四则运算,算数包括100以内的整数和真分数。

实验思路:先利用rand()函数随机生成两个算数,包括100以内的整数和真分数,生成100以内的整数,用rand()%100,为了避免在除法运算中除数不能为零,所以运算符右边的整数直接用1+rand()%99;在随机生成真分数时,我先生成两个整数,来充当分子和分母,同样分母不能为零,用1+rand()%99。加减乘除四则运算有整数与整数之间的运算,分数与分数之间的运算,整数和分数之间的运算,分数和整数之间的运算,一共有16种情况,先随机生成一个整数,然后除以16取余数,余数一共有16种情况,作为switch 语句中的事件,来随机生成一个四则运算,再用一个for循环生成30个四则运算。

#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
 int Num_1,Num_2,i,j,a,b;    //定义两个整数变量Num_1,Num_2,在四则运算时做100以内的整数算数,定义i,a为整型,做真分数的分子,定义j,b为整型,做真分数的分母。  
    int x,y;                    //定义整型x,y,x为siwtch,case语句中的事件,y随机生成一个数。
 srand((unsigned)time(NULL));//运用srand函数设立随机种子,让种子和当前时间有关,避免每次生成的随机数相同。
    for(int k=0;k<30;k++)       //运用for循环,共循环30次,生成30随机运算。
  {
      Num_1=rand()%100;   //运用rand()函数随机生成100以内的整数。
   Num_2=1+rand()%99;  //运用rand()函数生成1到100以内的整数,作为第二个运算数,避免在除法运算中0的出现。
      i=rand()%100;       //用于随机生成第一个真分数的分子。
      j=1+rand()%99;      //用于随机生成第一个真分数的分母。
      a=rand()%100;       //用于随机生成第二个真分数的分子。
      b=1+rand()%99;      //用于随机生成第二个真分数的分母。
      y=1+rand();         //随机生成一个整数,用于除以15取余
         x=y%16;             //把取得的余数赋给x,整数和整数之间的四则运算,分数之间的四则运算,整数和分数之间的四则运算,分数和整数之间的四则运算
        switch(x)            //运用siwtch,case语句进行条件判断,随机生成。
          {
              case 0:cout<<Num_1<<"+"<<Num_2<<"="<<endl;break;//case0到case3是整数和整数之间的四则运算
              case 1:cout<<Num_1<<"-"<<Num_2<<"="<<endl;break;
              case 2:cout<<Num_1<<"*"<<Num_2<<"="<<endl;break;
              case 3:cout<<Num_1<<"/"<<Num_2<<"="<<endl;break;
              case 4:if(i<j)                                  //case4到case7是分数和分数之间的四则运算
                {
               if(a<b)
                           {cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<a<<"/"<<b<<")"<<"="<<endl;}
               else 
                  {cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<b<<"/"<<a<<")"<<"="<<endl;}
                }
              else
        {
         cout<<"("<<j<<"/"<<i<<")"<<"+"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
        } 
        break;
              case 5:if(i<j)
                {
               if(a<b)
      {cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<a<<"/"<<b<<")"<<"="<<endl;} 
               else
      {cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<b<<"/"<<a<<")"<<"="<<endl;}
                }
               else
                  {
       cout<<"("<<j<<"/"<<i<<")"<<"-"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
         } 
         break;
             case 6:if(i<j)
               {
              if(a<b)
        {cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<a<<"/"<<b<<")"<<"="<<endl;}
              else
        {cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<b<<"/"<<a<<")"<<"="<<endl;}
        
               }
              else
      {
       cout<<"("<<j<<"/"<<i<<")"<<"*"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
         }  
        break;
             case 7:if(i<j)
               {
              if(a<b)
        {cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<a<<"/"<<b<<")"<<"="<<endl;}
       else 
        {cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<b<<"/"<<a<<")"<<"="<<endl;}
        
               }
              else
      {
       cout<<"("<<j<<"/"<<i<<")"<<"/"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
         }
        break;
          case 8:if(i<j)                              //case8到case11是分数和整数之间的四则运算
                 cout<<i<<"/"<<j<<"+"<<Num_2<<"="<<endl;
             else
              cout<<j<<"/"<<i<<"+"<<Num_2<<"="<<endl;
       break;
          case 9:if(i<j)
                 cout<<i<<"/"<<j<<"-"<<Num_2<<"="<<endl;
              else
                 cout<<j<<"/"<<i<<"-"<<Num_2<<"="<<endl;
              break;
          case 10:if(i<j)
                 cout<<i<<"/"<<j<<"*"<<Num_2<<"="<<endl;
            else
           cout<<i<<"/"<<j<<"*"<<Num_2<<"="<<endl;
          break;
          case 11:if(i<j)
                  cout<<i<<"/"<<j<<"/"<<Num_2<<"="<<endl;
            else
            cout<<i<<"/"<<j<<"/"<<Num_2<<"="<<endl;
            break;
             case 12:if(a<b)                           //case12到case15是分数和整数之间的四则运算
                cout<<Num_1<<"+"<<"("<<a<<"/"<<b<<")"<<"="<<endl; 
            else
          cout<<Num_1<<"+"<<"("<<b<<"/"<<a<<")"<<"="<<endl;
            break;
             case 13:if(a<b)
               cout<<Num_1<<"-"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
            else
      cout<<Num_1<<"-"<<"("<<b<<"/"<<a<<")"<<"="<<endl;
            break;
             case 14:if(a<b)
                        cout<<Num_1<<"*"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
            else
      cout<<Num_1<<"*"<<"("<<b<<"/"<<a<<")"<<"="<<endl;
               break;
             case 15:if(a<b)
                       cout<<Num_1<<"/"<<"("<<a<<"/"<<b<<")"<<"="<<endl;
            else
         cout<<Num_1<<"/"<<"("<<b<<"/"<<a<<")"<<"="<<endl;
              break;
           }
     } 
}

时间: 2024-10-21 03:28:16

软件工程实验一--编程随机生成30个四则运算,算数包括100以内的整数和真分数。的相关文章

软件工程课堂练习-随机生成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道四则运算题目

1.题目要求:随机生成30到四则运算题,其中不能超过2位运算,包含真分数. 2.设计思路 (1)先随机产生四个数,前两个数用作整数的四则运算,然后前两个数再作为第一个分数,后两个数作为第二个分数. (2)利用switch\case函数分别对每种情况进行表示,利用除以7的余数表示8中不同的情况,前四种表示整数的加减乘除运算,后四种表示分数的加减乘除运算. (3)利用for循环产生30个运算式. 3.程序代码: //2016/3/3 王宗泽 #include<iostream> #include&

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

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

随机生成30个四则运算算式

package classWork;import java.lang.Math;public class MathTest1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub for(int i = 0;i < 30;i++) { int firNum = (int)(1 + Math.random()*98);//生成1到99的随机数 int se

随机生成30道四则运算

设计思路: 1.生成随机数 ①找到生成随机数函数 ②控制随机数产生的范围 ③输出随机数 2.解决随机运算符问题 ①用生成的随机数除4取余加1得1,2,3,4四个数(分别表示+,-,*,/四个符号) ②运用switch输出符号 3.真分数的解决 ①分子小于分母 ②生成的分子随机数小于分母随机数 4.真分数和整数运算同时输出 ①再运用一次随机函数,用1和2分别代表整数和真分数 代码: //随机生成30个1~99的加减乘除运算,包括真分数#include<iostream>#include<t

随机生成30道四则运算题程序设计

编程思路: 因为是低年级四则运算题,我考虑出一些100以内的加减乘除,又是随机生成,所以用上了rand函数,又有选择性的用到了switch  case结构,达到30道题的无序性.而且针对减法和除法的特殊情况做了些细节考虑. 源代码: #include<iostream.h>#include<stdlib.h>int main(){ int a,b,c; for(int i=1;i<31;i++){ a=rand()%100; b=rand()%100; c=rand()%4;

随机生成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语言)

1 #include "stdio.h" 2 #include "math.h" 3 #include "stdlib.h" 4 #include"time.h" 5 int main() 6 { 7 srand(time(NULL)); 8 int a,b,c,i; 9 char x[5]; 10 for(i=0;i<30;i++) 11 { 12 a=rand()%50; 13 b=rand()%50; 14 c=r

随机生成30道四则运算(一)

#include<iostream>#include<math.h>#include<time.h>using namespace std;void main(){ srand(time(0)); int a, b, c; for (int i = 0; i < 30; i++)  {      a = rand() % 100;      b = rand() % 100;      c = rand() % 4;      if (c == 0)      {