源代码:
import java.*; import java.util.*; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.util.Scanner; import java.util.Random; public class SS { Scanner input=new Scanner(System.in); public String getRandomString() {//length表示生成字符串的长度 int length=1; String base = "+-*/"; //生成字符串从此序列中取 Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } public static void main (String[] args)throws IOException { FileOutputStream fs = new FileOutputStream(new File("TEST.txt")); PrintStream p = new PrintStream(fs); FileInputStream fip = new FileInputStream("TEST.txt"); InputStreamReader reader = new InputStreamReader(fip, "UTF-8"); System.out.println("请输入你要生成的题目数量:"); Scanner input=new Scanner(System.in); Random random = new Random(); int a=input.nextInt();//输入四则运算的题目数量 SS b=new SS(); int sum; int count=0; double[] x=new double[a]; for(int i=0;i<a;i++) { if(i%4==0) { int m=random.nextInt(10)+1; int n=random.nextInt(20)+1; sum=n+m; p.print( n); p.print("+"); p.print( m); p.print("=&"); p.append("\r\n"); x[i]=sum; } if(i%4==1) { int m=random.nextInt(10)+1; int n=random.nextInt(20)+10; sum=n-m; p.print(n); p.print("-"); p.print( m); p.print("=&"); p.append("\r\n"); x[i]=sum; } if(i%4==2) { int m=random.nextInt(10)+1; int n=random.nextInt(20)+10; sum=n/m; p.print( n); p.print("/"); p.print( m); p.print("=&"); p.append("\r\n"); x[i]=sum; } if(i%4==3) { int m=random.nextInt(9)+1; int n=random.nextInt(9)+1; sum=n*m; p.print( n); p.print("*"); p.print( m); p.print("=&"); p.append("\r\n"); x[i]=sum; } } p.close(); int ch; double sum1; int j; for(j=0;j<a;j++) { while ((ch = reader.read())!= '&') { System.out.print((char)ch); } sum1=input.nextDouble(); if(sum1==x[j]) { System.out.println("true!"); count++; } else { System.out.println("flase!"); } } System.out.println("您的总分是:"+count); reader.close(); } }
运行结果:
此次测试自己没能在规定时间里完成,主要的障碍出现在随机产生运算符的方面以及将运算结果输入到文件当中,当解决了输入时又不能将结果从文件中输出到dos界面。在构造方法没能一个一个层次地去进行。以至于将所有框架弄到了一个方法中。使得程序过于杂乱,出现错误时修改了很多部分已没有改好。自己在理清构造方法关系方面的能力较薄弱。