zoukankan      html  css  js  c++  java
  • 随机生成30道四则运算

       本次作业的题目是随机生成30道四则运算的题目,要求有整数和真分数。

       设计思想:   1.随机生成数

                        2.四则运算符随机生成

                        3.在除法的时候,被除数不能为0

                        4.随机生成整数四则运算和真分数之间的四则运算

                        5.在真分数运算时,分母不能为0,分子要小于分母,并且在真分数除法运算时,被除数分子也不能为0

                        6.循环生成30道题

       遇到的问题:1.考虑问题不全面,有时候考虑了分子不能为0的情况,但是会缺失一些数字

                        2.没有问题的分类,除法考虑的问题应该分个类,进行判断。

      解决的办法:1.和同学进行交流,发现问题的不足,并且重新修改,缺失的情况补上并且完善它。

    //2016 3.6 杨涛  软件工程作业 随机生成30道四则运算 包括整数和真分数
    #include <iostream> 
    #include <stdlib.h> 
    #include <time.h> 
    
    using namespace std;
    
    int main()
    {
        int a, b, c, d, i, j;
        srand((unsigned)time(NULL));
        for (j = 30; j > 0; j--)
        {
            char operator_lib[4] = { '+', '*', '/', '-' }; //定义运算符的可选类型
            int rand_oper_idx = rand() % 4;                //然后随机生成,上述数组的下标就可以了。
            char cur_oper = operator_lib[rand_oper_idx];                
            i = rand() % 2;
            switch (i)
            {
            case 0:
                a = rand() % 100; //a取值为0~99
                c = rand() % 100; //c取值为1~99
                if (cur_oper == '/')
                {
                    if (c == 0)
                    {
                        c = rand() % 99+1;                    
                    }
                    cout << a << cur_oper << c << " = " << endl;
                }
                else
                cout << a << cur_oper << c << " = " << endl;
                break;
            case 1:
                a = rand() % 99 + 1; //a取值为1~99
                b = rand() % a;    //保证b小于a        
                c = rand() % 99 + 1; //c取值1~99
                d = rand() % c ;  //保证d小于d 0~c-1
                if (cur_oper == '/')
                {
                    if (d == 0)
                    {
                        d = d + 1;
                        c = rand() % 98 + 2;
    
                    }
                    cout << b << "/" << a << " " << cur_oper << " " << d << "/" << c << "=" << endl;
                }
                else
                    cout << b << "/" << a << " " << cur_oper << " " << d << "/" << c << "=" << endl;            
                break;
            }
        }
        return 0;
    }

    感悟:别看这小小的程序,也有很多的门道在里面,我花的时间还是挺久的,而且同学也帮助了我,以后会多加练习编程,发现编程还是很有意思的,特别是成功了之后很有成就感。

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/GloryYT/p/5247368.html
Copyright © 2011-2022 走看看