软件工程个人作业01

软件工程个人作业01

题目:

像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。

设计思想:

    随机产生4个0-3之间的int型整数,控制随机输出4个运算符;随机产生两个0-1之间的整数,控制随机输出分数与整数的运算式;随机产生四个0-1之间的随机浮点数,乘以100取整作为两种运算式的运算数据。利用for循环生成30个运算式,其中需要考虑的是:①、整数除法运算式的分母不能为零,利用for循环产生不为0的数。②、分数运算式中的分母不能为0,利用for循环产生不为0的数。③、当分数的两个随机数相等时,输出为“1”。输出结果即可。

源程序代码:

import java.util.Random;
public class Calculate {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        for(int i=0;i<30;i++)
        {
            Random random =new Random();
            float a=random.nextFloat()*100;
            float b=random.nextFloat()*100;
            float c=random.nextFloat()*100;
            float d=random.nextFloat()*100;
            int m=random.nextInt(4);
            int n=random.nextInt(2);
            char f=' ';
            
            if(m==0) f='+';
            if(m==1) f='-';
            if(m==2) f='*';
            if(m==3) f='/';
            
            int a1=(int)a;int b1=(int)b;
            int c1=(int)c;int d1=(int)d;
            
            if(n==0)
            {
                for(int j=0;;)
                {
                    if(f=='/'&&b<=0.01){b=random.nextFloat()*100;b1=(int)b;}
                    else break;
                }
                System.out.println(a1+" "+f+" "+b1+"=");
            }
            if(n==1)
            {
                for(int j=0;;)
                {
                    if(b<1){b=random.nextFloat()*100;b1=(int)b;}
                    else break;
                }
                for(int j=0;;)
                {
                    if(d<1){d=random.nextFloat()*100;d1=(int)d;}
                    else break;
                }
                for(int j=0;;)
                {
                    if(c/d<1){c=random.nextFloat()*100;c1=(int)c;}
                    else break;
                }
                if(a1==b1)
                    System.out.println(a1/b1+" "+f+" "+c1+"/"+d1+"=");
                else
                    System.out.println(a1+"/"+b1+" "+f+" "+c1+"/"+d1+"=");
                if(c1==d1)
                    System.out.println(a1+"/"+b1+" "+f+" "+c1/d1+"=");
                else
                    System.out.println(a1+"/"+b1+" "+f+" "+c1+"/"+d1+"=");
            }
        }
    }
}

 

运行结果截图:

 

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

这个学期第一次写代码,不知如何开始,想到的情况不够全面。

 

posted @ 2016-03-09 17:34  没有比脚更长的路  阅读(172)  评论(2编辑  收藏  举报