本次作业的题目是随机生成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;
}

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