05-文件与流-课堂测试(四则运算)

编程思想

首先根据题目要求,需要写出一个程序,能够实现,随机生成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("指定文件不存在");//处理异常
        }

    }
    
}
原文地址:https://www.cnblogs.com/Qi77/p/9964872.html