博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程个人作业02
阅读量:4350 次
发布时间:2019-06-07

本文共 5739 字,大约阅读时间需要 19 分钟。

1、设计思想:在四则运算01的基础上添加乘除、括号、数值范围、负数、和余数。

  是否乘除:用1234代替+-*/,fuhao = (int)(1+(Math.random()*num),num = 2表示无乘除,num = 2表示有乘除。

  是否括号:先写出一个四则运算混合表达式:第一个数随机给出,然后在for循环中随机取得符号(符号范围:+ ,-, *, /, +(,-(,*(,/(   这8个)和数字,并连起来成为一个表达式。在求出表达式的值。

  数值范围:设置num_max,num_min确定范围

  有无负数:若选择没有负数,两个数在相减之前,判断一下大小就好了

  有无余数:若选择有余数,结果输出 a/b+""+a%b

2、源程序代码:

package 四则运算2;import java.util.Scanner;public class Test {    public static void main(String[] args) throws Exception {        // TODO Auto-generated method stub                Scanner in = new Scanner(System.in);        System.out.println("请输入题目的数量:");        int n = in.nextInt();        System.out.println("请输入每行题目的数目:");        int num= in.nextInt();        //乘除法        System.out.println("请输入题目是否包含乘除法:1、有     2、没有");        int j = in.nextInt();        int k;//控制运算符号的数目,k=2没有乘除,反之有乘除        if(j==1)        {            k = 3;        }        else             k = 1;        //是否有括号        System.out.println("请输入题目是否包含括号:1、有     2、没有");        int if_kuohao = in.nextInt();                                //控制数值范围        System.out.println("请输入题目数值的最大范围:");        int num_max = in.nextInt();        System.out.println("请输入数值的最小范围:");        int num_min = in.nextInt();        System.out.println( "请输入加减结果是否允许有负数:1、有负数  2、没有负数");        int ifFushu = in.nextInt();        System.out.println( "请输入除法结果是否允许有余数(如:5/4= 1...1):1、有余数  2、没有余数");        int ifYushu = in.nextInt();        yunsuan(in,n,num,k,num_max,num_min,ifFushu,ifYushu,if_kuohao);        in.close();    }    //分数化简    public static String huajian(int a,int b){        if(a
0;i--){ if(a%i==0&&b%i==0){ a/=i; b/=i; break; }} if(a%b==0) return a/b+""; else return a+"/"+b; } else{ for(int i = b;i>0;i--){ if(a%i==0&&b%i==0){ a/=i; b/=i; break; }} if(b%a==a) return b/a+""; else return b+"/"+a; } } public static String yushu(int a,int b){ if(a%b==0) return a/b+""; else if(b%a==a) return b/a+""; else return a/b+"..."+a%b; } public static float opt(String s) throws Exception{ if(s == null || "".equals(s.trim())) { return 0f; } int a1=s.indexOf("+"); int a2=s.indexOf("-"); int a3=s.indexOf("*"); int a4=s.indexOf("/"); int a5=s.indexOf("("); if(a1==-1&&a2==-1&&a3==-1&&a4==-1){ if(s.trim()==null||"".equals(s.trim())){ throw new Exception("operate error"); } return Float.parseFloat(s.trim()); } if(a5!=-1){ int a6=s.indexOf(")"); if(a6==-1){ throw new Exception("括号不匹配"); }else{ float f=opt(s.substring(a5+1,a6).trim()); s=s.replace(s.substring(a5,a6+1), String.valueOf(f)); return opt(s); } } if(a1!=-1){ return opt(s.substring(0,a1))+opt(s.substring(a1+1,s.length())); } if(a2!=-1){ return opt(s.substring(0,a2))-opt(s.substring(a2+1,s.length())); } if(a3!=-1){ return opt(s.substring(0,a3))*opt(s.substring(a3+1,s.length())); } if(a4!=-1){ return opt(s.substring(0,a4))/opt(s.substring(a4+1,s.length())); } return Integer.parseInt(s.trim()); } //n为数的个数, public static float kuohao(int n,int num_max,int num_min) throws Exception{ int x=(int) (1+(Math.random()*num_max)); while(x
4) { num = 4; a = i; } else if(4-i>0) num = 4; //控制右括号 if(i-a>=1&&e==0) { p=(int)(1+(Math.random()*2)); if(p==1) biaodashi+=""; else { biaodashi+=")"; e=1; } } } for(int q = 0;q
b) { e = a; a = b; b = e; } if(c>d) { e = c; c = d; d = e; } String x1 = a+"/"+b; String y1 = c+"/"+d; System.out.print((i1+1+n)+": "); if(fuhao1 == 0&&ifYushu == 1){ System.out.print(x1+ " + " +y1+" "); a = a*d+b*c; b = b*d; result1[i1] = yushu(a,b); } else if(fuhao1 == 0&&ifYushu == 2) { System.out.print(x1+ " + " +y1+" "); a = a*d+b*c; b = b*d; result1[i1] = huajian(a,b); } else if(fuhao1 == 1&&ifYushu==1) { //有负数 if(ifFushu==1){ System.out.print(y1+ " - " +x1+" "); a = b*c-a*d; b = b*d; result1[i1] = yushu(a,b); } } //没有负数 if(ifFushu==2){ if(a/b
=n/3*2) System.out.println(as[i1]); a1++; if(a1%5==0) System.out.print("\r"); } } } } } 3、程序截图:

 

 

 

转载于:https://www.cnblogs.com/shouhutian/p/6531401.html

你可能感兴趣的文章