1. 程式人生 > >05-文件與流-課堂測試(四則運算)

05-文件與流-課堂測試(四則運算)

exc 不存在 錯誤 調用 異常 tro color generated 四則運算

編程思想

首先根據題目要求,需要寫出一個程序,能夠實現,隨機生成100個四則運算,並將其輸入進入Test.txt文件中,然後從該文件中一行一行進行輸出,並於正確答案進行比較,判斷是否正確。

然後開始編程

1.實現隨機生成100道四則運算,並與正確答案進行比較,在控制臺進行輸入輸出;

2.連接文件,將隨機生成的100道四則運算,按行輸出到文件中;

3.一行一行將文件中的100道四則運算,重新輸出到控制臺上;

4.解決按行輸出算式計算結果,並與正確答案進行比較的問題(利用數組)。

最後完成題目。

遇到的問題

1.開始把問題想錯,程序只能實現,做一道題,將自己的答案與正確答案進行比較之後才能輸入至文本文件,而不能先將100道輸入文件,然後輸出。

2.在第4步按行比較判斷,程序總是拋出異常,最後發現是數組出了問題,給數組賦長度之後解決了問題。

開始與完成時間:14:00 - 16:30

源代碼

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.*;

public class suijishengcheng {
    
    //四則運算計算
    int a,b;
    public int add(int a,int b) {
        return a+b;
    }
    
public int reduce(int a,int b) { return a-b; } public int multiplication(int a,int b) { return a*b; } public int division(int a,int b) { if(b!=0) return a/b; else return 0; } public static void main(String[] args) {
int sum = 0;//記錄總成績,每題10分 int[] jieguo = new int[1000]; suijishengcheng sj = new suijishengcheng();//定義對象,便於四則運算加減乘除的調用 Scanner in = new Scanner(System.in); PrintWriter out = null;//輸出文件的使用 try { out = new PrintWriter("Test.txt"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } for (int i = 1;i <=100; i++) { int a = (int) Math.round(Math.random() * 100); int b = (int) Math.round(Math.random() * 100); int m= (int) Math.round(Math.random() * 3); switch(m) { case 0: {while(b==0){ b = (int) Math.round(Math.random() * 100); } jieguo[i] = sj.division(a, b); out.println(a+"/"+b+"="); break; } case 1: { jieguo[i] =sj.multiplication(a, b); out.println(a+"*"+b+"="); break; } case 2: jieguo[i] = sj.add(a, b); out.println(a+"+"+b+"="); break ; case 3: jieguo[i] = sj.reduce(a, b); out.println(a+"-"+b+"="); break ; } } //System.out.println("成績"+sum); //out.println("成績:"+sum); out.close(); try { FileReader fr = new FileReader("Test.txt");//需要讀取的文件路徑 BufferedReader br = new BufferedReader(fr); String s = br.readLine(); for(int j = 1;j<=100;j++) { while(s!=null)//如果當前行不為空 { System.out.println(s);//打印當前行 /*int c = in.nextInt(); if(c == jieguo[j]) { sum += 10; System.out.println("恭喜答案正確"); } else { System.out.println("抱歉,答案錯誤"); }*/ s= br.readLine();//讀取下一行 } } br.close();//關閉BufferReader流 fr.close(); //關閉文件流 }catch(IOException e)//捕捉異常 { System.out.println("指定文件不存在");//處理異常 } } }

05-文件與流-課堂測試(四則運算)