算术练习题(java)

package test;
import java.util.Random;
import java.util.Scanner;

class Numbers{
    int a;
    int b;
    int c;
    char d;
    int result;
    static Random r=new Random();//省内存
    Numbers(int max){
        this.a=r.nextInt(max);
        this.b=r.nextInt(max);
        this.c=r.nextInt(4);
        switch (c) {
            case 0:
                d = '+';
                result = a + b;
                break;
            case 1:
                d = '-';
                if (a < b) {
                    Numbers.temp(this);
                }
                result = a - b;
                break;
            case 2:
                d = '*';
                result = a * b;
                break;
            case 3:
                d = '/';
                if (a < b ) {
                    Numbers.temp(this);
                }
                if(b==0){
                    b=1;
                }
                result=a/b;
                a=result*b;
                break;
        }
    }
    public static void temp(Numbers n){
        int t=n.a;
        n.a=n.b;
        n.b=t;
    }

}
public class problem {



    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请用数字输入你的年级:");
        Scanner s = new Scanner(System.in);
        int grade = s.nextInt();
        System.out.println("准备好开始作答:");
        switch (grade) {
            case 1:
                deal(10); break;
            case 2:
                deal(20); break;
            case 3:
                deal(100); break;
        }

    }


    static void deal(int max) {
        int i = 0;
        while (true) {
            i++;
            Numbers n=new Numbers(max);
            System.out.println(" " + n.a + n.d + n.b + "= ");//不加" ",会被认为a+b的和
            float input;
            Scanner scan = new Scanner(System.in);
            input = scan.nextInt();
            while (input != n.result) {
                System.out.println("回答错误,请重新作答");
                System.out.println(" " + n.a + n.d + n.b + "= ");
                input = scan.nextFloat();
            }
            if (i % 5 == 0) {
                System.out.println("恭喜你,已经答对 " + i + " 道题了!!!");
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值