作业2

#题目 自动生成四则运算题目

 

#主要功能 首先,你可以根据自己的需要写出自己想做的四则运算题的个数,写出个数以后你可以选择做整数四则运算还是真分数四则运算。当你输入1时会自动生成整数四则运算,否则真分数四则运算。

 

#设计思路 本程序分为三个部分:一、定义及条用的头文件 二、四则运算 三、随机数获得。 加减乘除四种运算的处理过程,通过主函数的switch开关语句和一个while循环来调用。

 

#源代码

```





#源代码

#include<iostream.h>

#include<stdlib.h>

#include<conio.h>



void DealFenshu(int m, int a[][2])

{

    for(int p=0;p<m;p++)

    {

        int i=(int)rand()%10;

        int j=(int)rand()%10;

        while(j==0||i>=j)

        {

            i=(int)rand()%10;

            j=(int)rand()%10;

        }

        int x=(int)rand()%10;

        int y=(int)rand()%10;

        while(y==0||x>=y)

        {

            x=(int)rand()%10;

            y=(int)rand()%10;

        }

        int k=(int)rand()%100/25;

        switch(k)

        {

            case 0:

                cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<x<<"/"<<y<<")"<<"=";

                a[p][0]=i*y+x*j;

                a[p][1]=j*y;

                break;

            case 1:

                cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<x<<"/"<<y<<")"<<"=";

                a[p][0]=i*y-x*j;

                a[p][1]=j*y;

                break;

            case 2:

                cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<x<<"/"<<y<<")"<<"=";

                a[p][0]=i*x;

                a[p][1]=j*y;

                break;

            case 3:

                a[p][0]=i*y;

                a[p][1]=j*x;

                cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<x<<"/"<<y<<")"<<"=";

            }

            

            if(p%5==4)

            {

                cout<<endl;

            }

            else

            {

                cout<<'\t';

            }

    }



}

void DisplayFenshu(int a[][2],int w,int m)

{

    if(w==1)

    {

        for(int q=0;q<m;q++)

        {

            if(a[q][0]==0)

                cout<<"0"<<'\t';

            else

                cout<<a[q][0]<<"/"<<a[q][1]<<'\t';

            if(q%5==4)

            {

                cout<<endl;

            }

        }

    }

    else

    {};

}

void DealInt(int m,int a[])

{

        

    for(int p=0;p<m;p++)

    {

    int i=(int)rand()%10;

    int j=(int)rand()%10;

    int k=(int)rand()%100/25;

    switch(k)

    {

    case 0:

        cout<<i<<"+"<<j<<"=";

            a[p]=i+j;

        break;

    case 1:

        cout<<i<<"-"<<j<<"=";

        a[p]=i-j;

        break;

    case 2:

        cout<<i<<"*"<<j<<"=";

        a[p]=i*j;

        break;

    case 3:

        try

        {

        a[p]=i/j;

        cout<<i<<"/"<<j<<"=";

        }

        catch(...)

        {

            p--;

        }

        



    }

        

        if(p%5==4)

        {

            cout<<endl;

        }

        else

        {

            cout<<'\t';

        }

    }

}

void DisplayInt(int a[],int w,int m)

{

    if(w==1)

    {

        for(int q=0;q<m;q++)

        {

            cout<<a[q]<<'\t';

            if(q%5==4)

            {

                cout<<endl;

            }

        }

    }

    else

    {};

}

int main()

{

    int p;

    do

    {

        system("cls");

        int a[1000],b[1000][2];

        int m,n,w;

        cout<<"请输入生成的四则运算题个数:";

        cin>>m;

        cout<<endl;

        cout<<"请输入要生成的四则运算种类(输入1为整数,否则为真分数):";

        cin>>n;

        cout<<endl;

        if(n==1)

        {

            DealInt(m,a);

            cout<<endl;

        }

        else

        {

            DealFenshu(m,b);

            cout<<endl;

        }

        cout<<"是否输出答案(输入1则输出答案否则不输出答案)"<<endl;

        cin>>w;

        if(n==1)

        {

            DisplayInt(a,w,m);        

        }

        else

        {

            DisplayFenshu(b,w,m);

        }

        cout<<endl;

        cout<<"是否继续生成运算题(输入1则生成否则不生成)"<<endl;

        cin>>p;

        cout<<endl;

    }while(1==p);



}



```

 

#程序运行截图

 

 

#总结 要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就必须树立目标,了解软件工程的过程和原则。这次作业重点注意在四则运算的返回结果时不能出错。今后我依然会认真完成老师留的作业,希望可以顺利通过这门课程,学有所得。

posted @ 2016-03-16 15:00  你瞅啥?  阅读(196)  评论(0编辑  收藏  举报