• 第一次课上作业——编写程序,输出30道四则运算题


    一、设计思路

    1、首先完成一个四则运算的出题程序,其次运用循环的方式完成30道题
    2、首先使用随机函数生成四则运算中的第一个数的随机数,随机数要求是整数和真分数,其他的数不支持

         2.1、首先生成一个随机数,取值为1或2,以此来确定四则运算中第一个随机数应该是整数还是真分数。若随机数为1则为整数,若随机数为2则为真分数。。

         2.2、若为四则运算中的数为真分数,则随机生成两个数,作为分子和分母,并使得分母大于分子。


    3、使用随机函数生成四则运算中的第二个数的随机数,此随机数的要求以及操作同第二步

    4、运用一定的方法完成运算符的选择:使用四个数字来代表不同的运算符,生成一个随机数,然后用这个随机数整除4取余数,通过case语句选择不同的运算符进行运算,并将四则运算中的所有元素(被加数、运算符、加数)组合起来构成四则运算并打印输出。

    二、源代码展示

      1 #include<iostream>
      2 #include<stdlib.h>            //调用随机函数void rand(void)时需要调用此库
      3 #include<time.h>              //调用随机函数void time()时需调用此库
      4 #define MIN 1
      5 #define MAX 99
      6 using namespace std;
      7 
      8 int main()
      9 {
     10  srand((int)time(0));
     11  int num1=1, num2=1;               //存储生成的随机变量
     12  int num1_1, num1_2;
     13  int num2_1, num2_2;
     14  int i = 0;                    //设置循环
     15  for (i = 0; i < 30; i++)
     16  {
     17   int true_false_num;      //生成随机数,用来判断是真分数还是假分数
     18   true_false_num = 1 + rand() % (2);       //为1则为整数,为2则为真分数
     19   if (1 == true_false_num)        //判断第一个数是什么类型的数
     20   {
     21    num1 = MIN + rand() % (MAX + 1);
     22   }
     23   else
     24   {
     25    
     26    num1_1 = MIN + rand() % (MAX-1);    //若为真分数,则分子必须小于99,所以应该%(MAX-1)
     27    num1_2 = num1_1 + rand() % (MAX - num1_1) + 1;        //此处应当注意分母不能为0,注意(MAX-num1_1)不能为0
     28    num1 = 0;
     29   }
     30   
     31   true_false_num = 1 + rand() % (2);
     32   if (1 == true_false_num)        //判断第一个数是什么类型的数
     33   {
     34    num2 = MIN + rand() % (MAX);
     35   }
     36   else
     37   {
     38    num2_1 = MIN + rand() % (MAX-1);
     39    num2_2 = num2_1 + rand() % (MAX - num2_1) + 1;
     40    num2 = 0;
     41   }
     42 
     43   int sign;        //设置四则运算符号的代号
     44   sign = 1 + rand() % (4);      //1,2,3,4分别代表不同的四则运算符号
     45 
     46   switch (sign)
     47   {
     48   case 1:
     49   {
     50       if (0 == num1)
     51        cout << "(" << num1_1 << "/" << num1_2 << ")";
     52       else
     53        cout << num1;
     54       cout << "+";
     55       if (0 == num2)
     56        cout << "(" << num2_1 << "/" << num2_2 << ")";
     57       else
     58        cout << num2;
     59       cout << "=" << endl;
     60       break;
     61 
     62   }
     63   case 2:
     64   {
     65       if (0 == num1)
     66        cout << "(" << num1_1 << "/" << num1_2 << ")";
     67       else
     68        cout << num1;
     69       cout << "-";
     70       if (0 == num2)
     71        cout << "(" << num2_1 << "/" << num2_2 << ")";
     72       else
     73        cout << num2;
     74       cout << "=" << endl;
     75       break;
     76 
     77   }
     78   case 3:
     79   {
     80       if (0 == num1)
     81        cout << "(" << num1_1 << "/" << num1_2 << ")";
     82       else
     83        cout << num1;
     84       cout << "*";
     85       if (0 == num2)
     86        cout << "(" << num2_1 << "/" << num2_2 << ")";
     87       else
     88        cout << num2;
     89       cout << "=" << endl;
     90       break;
     91 
     92   }
     93   case 4:
     94   {
     95       if (0 == num1)
     96        cout << "(" << num1_1 << "/" << num1_2 << ")";
     97       else
     98        cout << num1;
     99       cout << "/";
    100       if (0 == num2)
    101        cout << "(" << num2_1 << "/" << num2_2 << ")";
    102       else
    103        cout << num2;
    104       cout << "=" << endl;
    105       break;
    106 
    107   }
    108   }
    109  }
    110 
    111  //cout << "产生小数:" << 0+rand()/double(RAND_MAX);
    112  
    113 
    114  return 0;
    115 }

    以上程序中需要注意除数不能为零,否则运算式不能成立。

  • 相关阅读:
    bootstrap modal 移除数据
    bootstrap modal 点击头部移动
    js 四舍五入
    js 函数问题
    bootstrap 模态框事件
    Java自定义注解
    JAVA中的System.in
    java 流
    让Mustache支持简单的IF语句
    方法允许多个返回值(.Net Core最新特性,.Net Framework4.7.1版本也有)
  • 原文地址:https://www.cnblogs.com/seven-seven/p/5247447.html
Copyright © 2020-2023  润新知