一、实验思路
利用Random随机产生数字和运算符生成题目,然后利用BufferedWrite和File建立文件的输入输出流。
将题目的答案存入数组,题目存入文件。
由用户输入答案与正确答案比较,统计分数。
二、做题时间
课上课下一共三小时五十分钟左右
三、源代码
package xiaoxuesheng; /* * 信1705-1 * 20173500 * 王学云*/ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Random; import java.util.Scanner; public class Calculate { static Scanner in=new Scanner(System.in); public Calculate() { } public static void main(String[] args) throws IOException{ int score=0;//记录分数 int wrong=0;//记录错误题数 int[] daan=new int[100];//记录答案 int input;//小学生输入 File file=new File("Text.txt");//新建文件 if(!file.exists()) { file.createNewFile(); } BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(file)); //随机数 String[] operate = new String[] { "+", "-", "*", "/" };//运算符号 int[] numbers = new int[100]; for (int i = 1; i <= 100; i++) { numbers[i - 1] = i; } Random r = new Random(); int num1=numbers[r.nextInt(100)]; int num2=numbers[r.nextInt(100)]; for (int i = 0; i < 100; i++) {//i控制题目数量 switch(operate[r.nextInt(4)]) {//将答案存入数组 case "+":daan[i]=num1+num2; case "-":daan[i]=num1-num2; case "*":daan[i]=num1*num2; case "/":daan[i]=num1/num2; } bufferedWriter.write(num1 + operate[r.nextInt(4)] +num2 + "="); bufferedWriter.newLine(); bufferedWriter.flush(); bufferedWriter.close(); } BufferedReader bufferedReader=new BufferedReader(new FileReader(file)); String line=" ";//保存读取的内容 String end="0"; int i=0; while (((line = bufferedReader.readLine()) != null)||(end.compareTo("*") == 0)||(i <= 99)) { System.out.println(line); line = bufferedReader.readLine(); System.out.println(line); try { input = in.nextInt(); if(input == daan[i])//判断是否正确 { System.out.println("正确"); System.out.print(" "); score++; } else { System.out.println("错误,正确结果为"+daan[i]); System.out.print(" "); wrong++; } } catch(Exception e) { break; } i++; } System.out.println("得分为"+score+"分"+",做错"+wrong+"道题"); bufferedReader.close();// 关闭输入流 } }
四、实验总结
本次实验用时过长,对于文件的使用还并不熟悉,在课上时没有稳住心态基于求成,又有好多都不会以至于出现了许多错误,后来通过课件和网上的资料,逐渐了解到文件的读写方法,另外随机数的使用也应该加强,