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;
    }

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

  • 相关阅读:
    while循环&CPU占用率高问题深入分析与解决方案
    Jmeter 发送json
    HTTP请求各参数详解
    Fast Stone截图工具使用教程
    程序员必备神器(FastStoneCapture)
    千古第一败家子杨广(打击异己、毫无承担、无识人之明)
    在路上看和今天要解决的问题可能相关的书,顺便工作上实践一下,立码就记住了
    与Qt的联系方式:邮件,论坛,销售,Bug报告
    Qt for Automation
    Qt for WebAssembly
  • 原文地址:https://www.cnblogs.com/GloryYT/p/5247368.html
Copyright © 2011-2022 走看看