四则运算随机生成

这次题目要求是随机生成四则运算题目,缓存到文件中,然后显示在控制台中,由用户输入答案,然后电脑判断用户输入的结果是否正确,最后输出用户总共做对了几道题,做错了几道题。

题目思路:

首先,我们要随机生成四则运算的题目,每生成一道题目,就应该计算出它的答案,然后调用把题目传输到文件中的函数以及把答案传输到文件中的函数。然后在主函数中把文件中的题目通过输出函数显示在控制台上。用户每输入一个结果,就会自动显示下一个题目。同时正确答案存一个数组中,用户输入的答案存一个数组。然后判断用户输入的答案是否正确。以下是代码:

package szys;

import java.io.*;
import java.util.Random;
import java.util.Scanner;

public class szys {

    public static void outartical(File file,String x[]) throws IOException
    {
            Scanner input=new Scanner(System.in);
            StringBuilder result=new StringBuilder();
            String a=null;
            String b=null;
            String c=null;
            String d=null;
            int i=0;
            //构造一个BufferedReader类来读取文件
            BufferedReader br=new BufferedReader(new FileReader(file));
            String s=null;
            while((s=br.readLine())!=null)//使用readLine方法,一次读一行
            {
                System.out.println("第"+(i+1)+"道题:");
                System.out.println(s);
                System.out.print("答案:");
                x[i]=input.next();
                i++;
                System.out.println("**********");
            }
            br.close();
    }
    public static void outartical2(File file,String x[]) throws IOException
    {
            Scanner input=new Scanner(System.in);
            StringBuilder result=new StringBuilder();
            String a=null;
            String b=null;
            String c=null;
            String d=null;
            int i=0;
            //构造一个BufferedReader类来读取文件
            BufferedReader br=new BufferedReader(new FileReader(file));
            String s=null;
            while((s=br.readLine())!=null)//使用readLine方法,一次读一行
            {
                x[i]=s;
                i++;
            }
            br.close();
    }

    public static void shuru (int l) throws IOException
    {
        FileWriter fw = null;
        FileWriter fd=null;
        try {
            //创建字符输出流
            fw = new FileWriter("poem.txt");
            fd=new FileWriter("daan.txt");

            int x;
            int y;
            int z;//随机产生1~4的数字
            //记录题目个数
            char s;//分别对应加减乘除
            String m=null;
            int b = 0;
            Random random=new Random();

            for(int i=1;i<=l;i++)
            {
                x=0;y=0;z=0;
                x=random.nextInt(100)+1;//随机产生1~100数字
                y=random.nextInt(100)+1;//随机产生1~100数字
                z=random.nextInt(4)+1;//随机产生1~4数字
                switch(z)
                {
                    case 1:m=x+"+"+y+"=";
                       b=x+y;
                       break;
                    case 2://System.out.println(x+"-"+y+"=");
                        ///break;
                     if(x>=y)
                     {
                         m=x+"-"+y+"=";
                         b=x-y;
                     }
                      else
                          {
                            m=y+"-"+x+"=";
                            b=y-x;
                          }

                    break;
                    case 3:m=x+"*"+y+"=";;b=x*y;
                    break;
                    case 4:m=x+"/"+y+"=";b=x/y;
                    break;
                }
              fw.write(m+"\r\n");
              fd.write(String.valueOf(b)+"\r\n");
            }
        } catch (IOException ioe) {
            ioe.printStackTrace();
        } finally {
            //使用finally块来关闭文件输出流
            if (fw != null&&fd!=null)
            {
                fw.close();
                fd.close();
             }
           }
    }

    public static void main(String []args) throws IOException {
        Scanner input=new Scanner(System.in);
        int l=0,k1=0,k2=0;
        String x[]=new String[150];
        String y[]=new String[150];
        int x1[]=new int[150];
        int y1[]=new int[150];
         System.out.println("题数:");
           l=input.nextInt();
        shuru(l);
        File file = new File("poem.txt");
        outartical(file,x);
        File file1 = new File("daan.txt");
        outartical2(file1,y);
        for(int i=0;i<l;i++)
        {
            x1[i]=Integer.parseInt(x[i]);
            y1[i]=Integer.parseInt(y[i]);
        }
        for(int i=0;i<l;i++)
        {
            if(x1[i]==y1[i])
            {
                System.out.println("第"+(i+1)+"道题正确!");
                k1++;
            }
            else
            {
                System.out.println("第"+(i+1)+"道题错误!");
                k2++;
            }
        }
        System.out.println("共答对"+k1+"道题!");
        System.out.println("共答错"+k2+"道题!");
    }
}
    

完成时间:5点

问题:文件的运用

原文地址:https://www.cnblogs.com/liyuchao/p/9964861.html

时间: 2024-10-19 10:35:05

四则运算随机生成的相关文章

判断随机生成的四则运算结果

功能:1.随机生成一个四则运算 2.用户输入式子结果后判断是否正确(结果取整) #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stack> using namespace std; int n,t,n1; struct ZX { char a; bool b;//if b=0 括号 if b=1 数字 } ; stack<ZX>s1; void atersz(ZX

个人项目——四则运算题目的随机生成

任务:实现一个自动生成小学四则运算题目的命令行程序. 一.时间预估及实际花费时间 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 15h Development 开发 · Analysis · 需求分析 (包括学习新技术) 2h · Design Spec · 生成设计文档 0.5h · Design Review · 设计复审 (和同事审核设计文档) 0.5h · Coding

基于c编写的关于随机生成四则运算的小程序

基于http://www.cnblogs.com/HAOZHE/p/5276763.html改编写的关于随机生成四则运算的小程序 github源码和工程文件地址:https://github.com/HuChengLing/- 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 主要功能:运算小学四则运算,可以选择加减乘除以及混合运算. 设计思想:首先思考运算数字范围,考虑小学生的运算能力,然后分类运算方法,分为加减乘除混合运算, 然后可以选择是

软件工程课堂练习-随机生成30道四则运算练习题

习题要求:随机生成30道四则运算题 以下是程序代码: 1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "time.h" 4 #include "stdlib.h" //随机器函数头文件 5 6 void print() 7 { 8 srand((int)time(0)); 9 for(int i=0;i<=29;i++) 10 { 11 int x; 12 in

随机生成30道100以内的四则运算题

设计思路: 1.利用随机数法随机生成两个随机数 1.1控制随机数在100以内 1.2随机数不等于0 2.运算符的问题 1.1运用求余方式得到的1,2,3,4分别表示“+”,“-”,“*”,“/” 3.真分数的表示方法 1.1还是利用随机数法生成两个随机数 1.2比较生成的随机数的大小,小的作为分子,大的作分母,得到真分数 4.输出运算结果,用1,2分别表示整数运算和有真分数参与的运算 在有真分数参与时,是在一定程度上的随机,并不是完全的随机,有待改进 代码: #include <iostream

随机生成30道100以内的四则运算题目

1.题目要求:除了整数以外,还要支持真分数的四则运算. 2.设计思路: (1)操作数的产生: a.利用宏定义定义随机函数. b.引用随机随机函数产生随机数,并定义随机数的取值范围. (2)运算符问题的解决: a.引用随机函数产生0~3四个随机数 b.引用swatch.case结构,随机选择运算符号:0:加 1:减 2:乘 3:除 (3)运行结果的输出: 利用for循环结构,顺序输出30道四则运算题目,并显示在屏幕上. (4)未解决问题: 随机产生真分数计算的问题还没有解决,希望通过以后的努力可以

随机生成30道四则运算题目

1.题目要求:随机生成30到四则运算题,其中不能超过2位运算,包含真分数. 2.设计思路 (1)先随机产生四个数,前两个数用作整数的四则运算,然后前两个数再作为第一个分数,后两个数作为第二个分数. (2)利用switch\case函数分别对每种情况进行表示,利用除以7的余数表示8中不同的情况,前四种表示整数的加减乘除运算,后四种表示分数的加减乘除运算. (3)利用for循环产生30个运算式. 3.程序代码: //2016/3/3 王宗泽 #include<iostream> #include&

随机生成30道四则运算-NEW

补充:紧跟上一个随机生成30道四则运算的题目,做了一点补充,可以有真分数之间的运算,于是需要在原来的基础上做一些改进. 首先指出上一个程序中的几个不足:1.每次执行的结果都一样,所以不能每天给孩子出30道一样的题吧!2.没有考虑,如果随机出的是除法,且除数为0的情况.3.没有实现生成真分数的四则运算的功能. 经过分析,决定依次进行改进: 针对问题1:在程序中设置时间种子,即可使得每次程序运行的结果不同. 针对问题2:当判断要生成除法运算时,做一个判断,若除数为0,则重新生成. 针对问题3:定义一

个人项目-随机生成四则运算

本周做的是一个自己单独完成的小程序,用来随机生成小学四则运算的题目. 看到这个题目时,头脑有大概的一个编写代码的思路,但都言万事开头难,到真正开始的时候却不知从何下手.于是采取老师的建议参考别人的代码,然后再自己做修改.我在百度上搜索了实现该题目的代码,最终我采用的是百度知道的知道行家ahulxh老师的代码,该代码是在Windows系统上运行,开发环境为visaul c++ 6.0.首次运行老师的代码时出现了一个bug,显示的原因是缺少头文件#include<stdio.h>,修改以后再次运行