• 小学生数学题系统02


    采用面向对象程序设计的方式,设计小学数学考试系统的有关类

    (题目数量,题目类型(四则运算),题目内容都是随机产生),提供答题及自动评分的功能。

      

      思路:将每一道数学题抽象为一个对象,因此可以写出一个类来实现数学题。

          然后再Test中再用随机数来确定题目的数量,至于判分功能,再数学类中定义一个static类型的数据,这个static数据是所有数学类的对象所共享的,所以可以用来做计数器。

      

    package pro3;
    import java.math.BigDecimal;
    import java.util.*;
    
    public class Math01 {
        public static void main(String[] args) {
            Test t1=new Test();
            t1.print();
        }
    }
    class Test{
        private int key;
        private Math_test m[];
        public Test(){
            key=random(10);
            m=new Math_test[key];
            for(int i=0;i<key;i++){
                m[i]=new Math_test();
            }
        }
        private int random(int n){
            Random random=new Random();
            int i=random.nextInt(n)+1;
            return i;
        }
        public void print(){    
            for(int i=0;i<key;i++){
                m[i].test();
            }
            System.out.println("最终得分"+Math_test.count+"0分");
        }
    }
    class Math_test{
        public static int count;
        private int num01;
        private int num02;
        double user_ans,ans;
        int key;
        static{
            count=0;
        }
        public Math_test(){
            this.num01=random(100);
            this.num02=random(100);
        }
        private int random(int n){
            Random random=new Random();
            int i=random.nextInt(n)+1;
            return i;
        }
        private char operator(){
            key=random(4);
            switch(key){
            case 1:{return '+';}
            case 2:{return '-';}
            case 3:{return '*';}
            case 4:{return '/';}
            }
            return ' ';
        }
            
        private void user_calcu(){
            Scanner sc=new Scanner(System.in);
            System.out.print("请计算:"+this.num01+operator()+this.num02+"=");
            user_ans=sc.nextDouble();
        }
        public void judge(){
            float div=0;
            float div1=0;
            {//把float型的结果 四舍五入
                div=(float)this.num01/this.num02;
                BigDecimal b=new BigDecimal(div);
                BigDecimal b1=b.setScale(2, 4);
                div1=b1.floatValue();
            }
            if(key==1&&user_ans==(this.num01+this.num02)){
                System.out.println("	正确");
                count++;
            }else if(key==2&&user_ans==(this.num01-this.num02)){
                System.out.println("	正确");
                count++;
            }else if(key==3&&user_ans==(this.num01*this.num02)){
                System.out.println("	正确");
                count++;
            }else if(key==4&&user_ans==div1){
                System.out.println("	正确");
                count++;
            }else{
                System.out.println("	错误");
            }
        }
        public void test(){
            user_calcu();
            judge();
        }
    }

      

  • 相关阅读:
    2019 年值得关注的 23 个开发者博客
    牛津词典 2018 年度词汇 ——「有毒」!
    17 个关于雪花的有趣事实🌨❄️❄️❄️
    Google 里的软件工程学
    作为软件工程师,如何进行知识管理
    x == (x = y) 不等于 (x = y) == x ?
    Docker-compose编排微服务顺序启动
    Ubuntu 20.04 修改字体、调整缩放
    How To Upgrade Ubuntu To 20.10
    写给工程师的 Ubuntu 20.04 最佳配置指南
  • 原文地址:https://www.cnblogs.com/hxtblogs/p/7711399.html
Copyright © 2020-2023  润新知