软件工程个人作业01

问题描述:

 

1.程序设计思想:

  首先,我用java语言来完成。1.我要用两个类来完成,一个类包含需要自动生的数据,判断及随机生成数的方法,和输出方法;2.在另一个类中循环30次调用上面的类及方法。3.自动生成的数据,进行运算的数在0-99之间,以及运用随机数代表+-*/;和题目中是否有分数;4,判断/运算的第二个数不为0和分母不为0.

 

2.源程序代码:

class Zidong{
    int x=(int)(Math.random()*100);  //产生第一个数或者第一个数的分子
    int x1;
    int y=(int)(Math.random()*100);  //产生第二个数或者第二个数的分子
    int y1;
    int z=(int)(Math.random()*4);   //随机产生加减乘除的四则运算(0+;1-;2*;3/)
    int m=(int)(Math.random()*3);   //随机第一个数是否为分数;0代表分数,1,2代表整数
    int n=(int)(Math.random()*3);   //随机第一个数是否为分数;0代表分数,1,2代表整数
    
    public void Panduan(){    //对随机数进行判断,并保证随机题目的正确性
        if(m==0)              //第一个数是分数
        {
            x1=(int)(Math.random()*100);      //若只为真分数,则进行分子分母比较大小、交换
            while(x1==0)       //保证分母不为0
                {x1=(int)(Math.random()*100);}
        }
        if(n==0)               //第二个数是随机数
        {    
            y1=(int)(Math.random()*100);     //若只为真分数,则进行分子分母比较大小、交换
            while(y1==0)       //保证分母不为0
                {y1=(int)(Math.random()*100);}
        }
        if(z==3)               //对于第二个数不是分数的除法运算,保证不为0
          {
             while(y==0)
                {y=(int)(Math.random()*100);}
          }
    }
    
    public void Show(){    //输出方式
        if(z==0)           //+法运算情况输出
            if(m==0&&n==0)
               {System.out.println(x+"/"+x1+" + "+y+"/"+y1+"=");}
            else if(m==0&&n!=0)
               {System.out.println(x+"/"+x1+" + "+y+"=");}
            else if(n==0&&m!=0)
               {System.out.println(x+" + "+y+"/"+y1+"=");}
            else
               {System.out.println(x+" + "+y+"=");}
        if(z==1)            //-法运算情况输出
            if(m==0&&n==0)
               {System.out.println(x+"/"+x1+" - "+y+"/"+y1+"=");}
            else if(m==0&&n!=0)
               {System.out.println(x+"/"+x1+" - "+y+"=");}
            else if(n==0&&m!=0)
               {System.out.println(x+" - "+y+"/"+y1+"=");}
            else
               {System.out.println(x+" - "+y+"=");}
        if(z==2)             //*法运算情况输出
            if(m==0&&n==0)
               {System.out.println("("+x+"/"+x1+") * ("+y+"/"+y1+")=");}
            else if(m==0&&n!=0)
               {System.out.println("("+x+"/"+x1+") * "+y+"=");}
            else if(n==0&&m!=0)
               {System.out.println(x+" * ("+y+"/"+y1+")=");}
            else
               {System.out.println(x+" * "+y+"=");}
        if(z==3)              // /法运算情况输出
            if(m==0&&n==0)
               {System.out.println(x+"/"+x1+" / ("+y+"/"+y1+")=");}
            else if(m==0&&n!=0)
               {System.out.println(x+"/"+x1+" / ("+y+")=");}
            else if(n==0&&m!=0)
               {System.out.println(x+" / ("+y+"/"+y1+")=");}
            else
               {System.out.println(x+" / ("+y+")=");}
    }
}
public class Suiji {

    public static void main(String[] args) {
        for(int i=0;i<30;i++)
        {
            Zidong a=new Zidong();
            a.Panduan();
            a.Show();
        }

    }

}

3.运行结果截图:

 

4.分析未完成原因:

  对于java语言已经有点不熟悉,设计思路还没有完全清楚。其次对于随机数的运用不是很了解。时间有些短暂,因此代码没有写完。

 

posted @ 2016-03-08 21:37  Fanyalei  阅读(132)  评论(0编辑  收藏  举报