• 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("指定文件不存在");//处理异常
            }
    
        }
        
    }
  • 相关阅读:
    Integer vs int
    j2ee gradle构建
    ubuntu16.04更新node.js
    阿里云centos7服务器
    使用jdbc给一张表增加多行字段
    安装mysql后,java使用jdbc连接mysql数据库
    关于异常try{}catch(){}
    计算机基础单位
    java mongodb 增删改查 工具类
    java 操作mongodb查询条件的常用设置
  • 原文地址:https://www.cnblogs.com/Qi77/p/9964872.html
Copyright © 2020-2023  润新知