一、实验思路
利用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("\n");
score++;
}
else {
System.out.println("错误,正确结果为"+daan[i]);
System.out.print("\n");
wrong++;
}
}
catch(Exception e)
{
break;
}
i++; }
System.out.println("得分为"+score+"分"+",做错"+wrong+"道题");
bufferedReader.close();// 关闭输入流
}
}
四、实验总结
本次实验用时过长,对于文件的使用还并不熟悉,在课上时没有稳住心态基于求成,又有好多都不会以至于出现了许多错误,后来通过课件和网上的资料,逐渐了解到文件的读写方法,另外随机数的使用也应该加强,