小学生数学题系统02"/>
小学生数学题系统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("\t正确");count++;}else if(key==2&&user_ans==(this.num01-this.num02)){System.out.println("\t正确");count++;}else if(key==3&&user_ans==(this.num01*this.num02)){System.out.println("\t正确");count++;}else if(key==4&&user_ans==div1){System.out.println("\t正确");count++;}else{System.out.println("\t错误");}}public void test(){user_calcu();judge();} }
转载于:.html
更多推荐
小学生数学题系统02
发布评论