• 四则运算


    一、实验思路

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

      

    迷失在灿烂之中 消失在万里晴空
  • 相关阅读:
    iOS开发 | 自定义不规则label
    监控redis的操作命令
    HTML常用标签
    前端学习【第一篇】: HTML内容
    MySQL数据库修改字段的长度
    python模块之:paramiko
    使用pymysql操作mysql数据库
    Python开发【第九篇】: 并发编程
    JNI调用实例
    JVM性能调优入门
  • 原文地址:https://www.cnblogs.com/wxy2000/p/9966304.html
Copyright © 2020-2023  润新知