运用了随机生成数字然后循环实现了程序的运行,虽然在百度查的总体思想,但自己也锻炼了很多
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+"的答案错误。");
}
}