Loading


一、实验思路

利用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();// 关闭输入流 

	}

	
}
四、实验总结
本次实验用时过长,对于文件的使用还并不熟悉,在课上时没有稳住心态基于求成,又有好多都不会以至于出现了许多错误,后来通过课件和网上的资料,逐渐了解到文件的读写方法,另外随机数的使用也应该加强,

  

posted on 2018-11-15 19:49  一氓  阅读(176)  评论(0编辑  收藏  举报