四则运算报告

Posted on 2018-10-08 10:47  咳咳你  阅读(137)  评论(0编辑  收藏  举报

运用了随机生成数字然后循环实现了程序的运行,虽然在百度查的总体思想,但自己也锻炼了很多

import java.util.*; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class l{ public static int gongyue(int x,int y){ int gongyue=1; int min=Math.min(x, y); for(int i=min;i>0;i--){ if((x%i==0) && (y%i==0)) { gongyue=i; break; } }//for return gongyue; } //判断输入的与答案是否相等 public static int yanzheng(String x,double k){ int m=0; String n=String.valueOf(k); if(x.equals(n)){ m=1;//1为相等 } else m=0; return m; } public static void main(String[] args) throws ScriptException { Scanner scan=new Scanner(System.in); String fuhao[]=new String[4]; fuhao[0]="+"; fuhao[1]="-"; fuhao[2]="*"; fuhao[3]="/"; int i,j,k,m=0; int M=100;int N1=100; System.out.println(); System.out.print("整数的四则运算题目的数量:"); int N=scan.nextInt(); ScriptEngine se=new ScriptEngineManager().getEngineByName("JavaScript"); int dui=0;//做对的题目 String zuocuo="";//做错的题目 String suan[]=new String[N];//算式 double key[]=new double[N];//答案 String K[]=new String[N]; System.out.println(); System.out.println("一、整数的四则运算。"); for(i=0;i<N;i++){ int x=(int)(Math.random()*M); int x2=(int)(Math.random()*M); int y=(int)(Math.random()*M); int y2=(int)(Math.random()*M); int z=(int)(Math.random()*4); int zz=(int)(Math.random()*4); int zzz=(int)(Math.random()*4); String output=x+fuhao[z]+y+fuhao[zz]+x2+fuhao[zzz]+ y2; suan[i]=output+" ="; //key[i]=(double) se.eval(output); } //避免重复 for(j=0;j<N;j++){ for(k=j+1;k<N-1;k++){ if(suan[j].equals(suan[k])) { int x2=(int)(Math.random()*M); int x22=(int)(Math.random()*M); int y2=(int)(Math.random()*M); int y22=(int)(Math.random()*M); int z2=(int)(Math.random()*4); int zz2=(int)(Math.random()*4); int zzz2=(int)(Math.random()*4); String output= suan[k]=x2+" "+fuhao[z2]+" "+y2+" "+fuhao[zz2]+" "+x22+" "+fuhao[zzz2]+" "+ y22; suan[k]=output+" ="; key[i]=(int)se.eval(output); } } } for(m=0;m<N;m++){ System.out.print(m+1+". "+suan[m]); K[m]=scan.next(); if(yanzheng(K[m],key[m])==1){ dui++; } else{ zuocuo+=" "+(m+1); } System.out.println(); } System.out.println("做对了"+dui+"道题,题号"+zuocuo+"的答案错误。"); } }