11.14java課堂測試
阿新 • • 發佈:2018-11-15
原始碼:
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介面。在構造方法沒能一個一個層次地去進行。以至於將所有框架弄到了一個方法中。使得程式過於雜亂,出現錯誤時修改了很多部分已沒有改好。自己在理清構造方法關係方面的能力較薄弱。