软件工程个人作业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+"="); } } } }
运行结果截图:
分析一下个人上课未按时完成的原因:
这个学期第一次写代码,不知如何开始,想到的情况不够全面。