• 软件工程个人作业01


    1.撰写一篇博文要求将程序的设计思想,源程序代码、运行结果截图以及分析一下个人上课未按时完成的原因。

    1》设计思想

    1)首先确定这个程序的功能,即进行整数四则运算和真分数四则运算,所以先要确定写两个大的模块

    2)整数运算部分,就是进行一个循环,为30次,然后每次循环产生两个进行运算的数(0~100) ,还要产生一个随机数用来表示运算符,即产生0~3的随机数,分别代表加减乘除。然后如果进行除法,如果分母为零,则对其加1.然后将结果显示出来。

    3)真分数运算部分,进行30次循环,每次循环先产生四个随机数,用来表示分子,分母。然后为了结果为真分数,要将分子分母比较大小,然后将分子变为较小的数。然后保证分母不为零,分母为零则加1.然后进行约分,保证为最简分数。最后将结果显示出来。

    4)设置退出程序以跳出循环。

    2》源程序代码

    //简单的四则运算,用随机数实现
    //2016 3 7 Sunzhe
    #include<iostream>
    using namespace std;

    void main()
    {
        int x;//进行选择的数
        q:cout<<"请选择要进行的运算:1.整数运算 2.真分数运算 3.退出程序"<<endl;
        cin>>x;
       switch(x)//进行整数的运算
     {
         case 1:
         {
          for(int i=0;i<30;i++)
          {
            int n=rand() %4;//产生随机数,运算符的

            int a=rand()%100;//产生1~100随机数
            int b=rand()%100;//产生1~100随机数

            if(n==0){
              cout<<a<<"+"<<b<<"="<<endl;
            }
            else if(n==1){
               cout<<a<<"-"<<b<<"="<<endl;
            }
            else if(n==2){
               cout<<a<<"*"<<b<<"="<<endl;
            }
            else{
              if(b==0){
                  b++;
                  }
              cout<<a<<"/"<<b<<"="<<endl;
             }
          }
        goto q;
        }
        case 2:
        {
          for(int i=0;i<30;i++)
          {
            int c=rand()%100;//产生1~100随机数
            int d=rand()%100;//产生1~100随机数
            int e=rand()%100;//产生1~100随机数
            int f=rand()%100;//产生1~100随机数


            //保证为真分数
            if(c>d)
            {
              int t;
              t=d;
              d=c;
              c=t;
            }
            if(e>f)
            {
              int s;
              s=f;
              f=e;
              e=s;
            }
            if(d==0){d++;} //分母不为零
            if(f==0){f++;} //分母不为零
            //约分化为最简
            for(int a=c;a>0;a-- )
            {
               if(c%a==0&&d%a==0)
               {
                  c=c/a;
                  d=d/a;
                  break;
               }
            }
            for(int b=e;b>0;b-- )
            {
                if(e%b==0&&f%b==0)
                {
                    e=e/b;
                    f=f/b;
                    break;
                 }
            }

            int n=rand() %4; //产生运算符的随机数

            if(n==0){
                cout<<c<<"/"<<d<<"+"<<e<<"/"<<f<<"="<<endl;
            }
            else if(n==1){
                cout<<c<<"/"<<d<<"-"<<e<<"/"<<f<<"="<<endl;
            }
            else if(n==2){
                cout<<c<<"/"<<d<<"*("<<e<<"/"<<f<<")="<<endl;
            }
            else
            {
                cout<<c<<"/"<<d<<"/("<<e<<"/"<<f<<")="<<endl;
             }
          }
          goto q;
        }
        case 3:
        {
          exit(0);
        }

      }
    }

    3》运行结果截图

    4》分析一下个人上课未按时完成的原因

    主要是对随机数的产生这块掌握的不是很熟练,要查阅有关资料才能写出相应代码,还有就是刚开始考虑不太周全,没有考虑到确保真分数及真分数的约分等问题。

  • 相关阅读:
    0. 序列
    Megacli 常用
    4. Storm可靠性
    3. Storm编程框架
    2. Storm消息流
    1.1 Storm集群安装部署步骤
    poj3723,最 大 生成树
    次短路
    无间道之并查集
    最小生成树二Kruscal算法
  • 原文地址:https://www.cnblogs.com/sz20142898/p/5251681.html
Copyright © 2020-2023  润新知