zoukankan      html  css  js  c++  java
  • 第一次课上作业——编写程序,输出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 }

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

  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/seven-seven/p/5247447.html
Copyright © 2011-2022 走看看