• 软件工程个人作业03


    对上周程序进行了修改。

    package p2;
    import java.util.Scanner;
    import java.text.DecimalFormat;  
    public class Size {
        public static void main(String[] args) {
            System.out.println("请输入需要的题目数量(最大数目为1000):");
            Scanner number=new Scanner(System.in);
            int n=number.nextInt();
            System.out.println("运算结果保留两位小数 !");
            yunsuan(n);
        }
        //生成随机数
        public static int random(int m,int n){     //n为随机数个数
            int value=m+(int)(Math.random()*n);//随机数最小为1
            return value;
        }
        //选择题目要求
        public void xuanze(){
            System.out.println("请选择 :");
            Scanner xuanze=new Scanner(System.in);
            int xz=xuanze.nextInt();
        }
        //约分
        public static int yf(int a, int b) {
            int gcd = 1;
            if(b >= a) {
                int temp = a;
                a = b;
                b = temp;
            }
            for(int i = b;i>=1;i--) {
                if(a % i == 0 && b % i == 0) {
                    gcd = i;
                    break;
                }
            }
            return gcd;
        }
        //运算
        public  static void yunsuan(int m){
            System.out.println("请输入运算数字取值范围:");
            Scanner Nu=new Scanner(System.in);
            int M=Nu.nextInt();
            Scanner Num=new Scanner(System.in);
            int N=Num.nextInt();
            double value1,value2,value3,value4,y;
            String result1="",result2="";
            double result = 0;
            int a,b,c,d;
            String ysf=null;
            for(int i=0;i<m;i++)
            {
                //取随机数
                a=random(M,N);
                b=random(M,N);
                c=random(M,N);
                d=random(M,N);
                value1=(double)a;value2=(double)b;value3=(double)c;value4=(double)d;
                 
                y=random(1,4);     //运算符            
                //真分数运算
                if((value1%value2!=0&&value1<value2&&value3<value4)||(value1<value2&&value3<value4&&value3%value4!=0))  
                {
                    if(y==1) {ysf="+";result = (value1*value4+value2*value3)/(value2*value4);}
                    else if(y==2) {ysf="-";result = (value1*value4-value2*value3)/(value2*value4);}
                    else if(y==3) {ysf="*";result = (value1*value3)/(value2*value4);}
                    else if(y==4) {ysf="÷";result = (value1*value4)/(value2*value3);}    
                    DecimalFormat  dq   = new DecimalFormat("######0"); 
                    result2=dq.format(value1)+"/"+dq.format(value2)+" "+ysf+" "+dq.format(value3)+"/"+dq.format(value4)+" =";                 
                    System.out.print(result2);    
                    Scanner number1=new Scanner(System.in);
                    String n1=number1.nextLine();               
                    DecimalFormat    df   = new DecimalFormat("######0.00");   //保留两位小数
                    String resultn=df.format(result); 
                    if(!n1.equals(resultn))System.out.println("X!正确答案为:"+resultn);
                }                             
                else
                {            
                    if(y==2&&value1<value2)
                    {    
                        if(y==1) {ysf="+";result=value1+value2;}
                        else if(y==2) {ysf="-";result=value1-value2;}
                        else if(y==3) {ysf="*";result=value1*value2;}
                        else if(y==4) {ysf="÷";result=value1/value2;} 
                        DecimalFormat dq = new DecimalFormat("######0");   
                      //    dq.format(value1); dq.format(value2); dq.format(value3); dq.format(value4); 
                       result1=dq.format(value1)+" "+ysf+" "+dq.format(value2)+" =";
                       System.out.print(result1);
                          Scanner number1=new Scanner(System.in);
                       double n1=number1.nextDouble();
                       if(!(n1==result))System.out.println("X!正确答案为:"+result);
                    }
                    else m++;
                }
                    
            }    
            System.out.println("答题结束。");
        }
    }
     

    这个程序需要答一道题再出下一道题,所以不能实现10000道题的测试。

    不知道怎么实现在所有题目都输出后再进行答题。不知道怎么控制运算符的数量。离老师的规定要求还有很远。

  • 相关阅读:
    ul做导航栏
    论布局,bfc,margin塌陷和合并,经典bug
    mon-hom
    新浪下拉菜单模仿
    JQ筛选方法,筛选父子元素
    JQuery筛选选择器
    JQuery隐式迭代
    python 和 C# DES加密
    交互设计[1]--设计心理学
    javascript学习(9)——[设计模式]单例
  • 原文地址:https://www.cnblogs.com/chen160340/p/6590960.html
Copyright © 2020-2023  润新知