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("指定文件不存在");//处理异常 } } }