zoukankan      html  css  js  c++  java
  • 小学生数学题系统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();
        }
    }

      

  • 相关阅读:
    区块链在零售业和银行业的广泛应用
    云存储平台产品浅析
    LINUX操作系统知识:进程与线程详解
    hibernate实现分页
    Hibernate 映射文件的配置 核心文件的配置 一对一 一对多 多对多 hibernate检索策略 Hibernate中session的关闭问题总结
    留言系统项目总结
    jquery 进行dom操作
    数据库 的outfile 备份与还原 视图 事物 触发器 mysql函数和自定义函数
    数据库的子查询、连接查询
    三 级城市,部门,员工,列表联动的问题解决,获取列表的被选中option对象问题
  • 原文地址:https://www.cnblogs.com/hxtblogs/p/7711399.html
Copyright © 2011-2022 走看看