1. 程式人生 > >四則運算隨機生成

四則運算隨機生成

cat 輸入 col nts exti rgs 方法 同時 package

這次題目要求是隨機生成四則運算題目,緩存到文件中,然後顯示在控制臺中,由用戶輸入答案,然後電腦判斷用戶輸入的結果是否正確,最後輸出用戶總共做對了幾道題,做錯了幾道題。

題目思路:

首先,我們要隨機生成四則運算的題目,每生成一道題目,就應該計算出它的答案,然後調用把題目傳輸到文件中的函數以及把答案傳輸到文件中的函數。然後在主函數中把文件中的題目通過輸出函數顯示在控制臺上。用戶每輸入一個結果,就會自動顯示下一個題目。同時正確答案存一個數組中,用戶輸入的答案存一個數組。然後判斷用戶輸入的答案是否正確。以下是代碼:

package szys;

import java.io.*;
import java.util.Random; import java.util.Scanner; public class szys { public static void outartical(File file,String x[]) throws IOException { Scanner input=new Scanner(System.in); StringBuilder result=new StringBuilder(); String a=null; String b
=null; String c=null; String d=null; int i=0; //構造一個BufferedReader類來讀取文件 BufferedReader br=new BufferedReader(new FileReader(file)); String s=null; while((s=br.readLine())!=null)//使用readLine方法,一次讀一行 { System.out.println(
"第"+(i+1)+"道題:"); System.out.println(s); System.out.print("答案:"); x[i]=input.next(); i++; System.out.println("**********"); } br.close(); } public static void outartical2(File file,String x[]) throws IOException { Scanner input=new Scanner(System.in); StringBuilder result=new StringBuilder(); String a=null; String b=null; String c=null; String d=null; int i=0; //構造一個BufferedReader類來讀取文件 BufferedReader br=new BufferedReader(new FileReader(file)); String s=null; while((s=br.readLine())!=null)//使用readLine方法,一次讀一行 { x[i]=s; i++; } br.close(); } public static void shuru (int l) throws IOException { FileWriter fw = null; FileWriter fd=null; try { //創建字符輸出流 fw = new FileWriter("poem.txt"); fd=new FileWriter("daan.txt"); int x; int y; int z;//隨機產生1~4的數字 //記錄題目個數 char s;//分別對應加減乘除 String m=null; int b = 0; Random random=new Random(); for(int i=1;i<=l;i++) { x=0;y=0;z=0; x=random.nextInt(100)+1;//隨機產生1~100數字 y=random.nextInt(100)+1;//隨機產生1~100數字 z=random.nextInt(4)+1;//隨機產生1~4數字 switch(z) { case 1:m=x+"+"+y+"="; b=x+y; break; case 2://System.out.println(x+"-"+y+"="); ///break; if(x>=y) { m=x+"-"+y+"="; b=x-y; } else { m=y+"-"+x+"="; b=y-x; } break; case 3:m=x+"*"+y+"=";;b=x*y; break; case 4:m=x+"/"+y+"=";b=x/y; break; } fw.write(m+"\r\n"); fd.write(String.valueOf(b)+"\r\n"); } } catch (IOException ioe) { ioe.printStackTrace(); } finally { //使用finally塊來關閉文件輸出流 if (fw != null&&fd!=null) { fw.close(); fd.close(); } } } public static void main(String []args) throws IOException { Scanner input=new Scanner(System.in); int l=0,k1=0,k2=0; String x[]=new String[150]; String y[]=new String[150]; int x1[]=new int[150]; int y1[]=new int[150]; System.out.println("題數:"); l=input.nextInt(); shuru(l); File file = new File("poem.txt"); outartical(file,x); File file1 = new File("daan.txt"); outartical2(file1,y); for(int i=0;i<l;i++) { x1[i]=Integer.parseInt(x[i]); y1[i]=Integer.parseInt(y[i]); } for(int i=0;i<l;i++) { if(x1[i]==y1[i]) { System.out.println("第"+(i+1)+"道題正確!"); k1++; } else { System.out.println("第"+(i+1)+"道題錯誤!"); k2++; } } System.out.println("共答對"+k1+"道題!"); System.out.println("共答錯"+k2+"道題!"); } }

完成時間:5點

問題:文件的運用

四則運算隨機生成