• 软件工程个人作业02(四则运算2)


        题目要求:

      是否有乘除法;
      是否有括号(最多可以支持十个数参与计算);
      数值范围;
      加减有无负数;
      除法有无余数!
        四则运算2的设计思想:因为题目要求可以选择是否有除法,是否有括号,加减有无负数,除法有无余数。所以这里考虑用if~~else语句来进行选择。目前程序无法完成生成题目是否有括号的要求。
        源程序代码:

    import java.util.Random;
    import java.util.Scanner;
    
    
    public class sizeyunsuan2 {
    /*是否有乘除法;
    是否有括号(最多可以支持十个数参与计算);
    数值范围;
    加减有无负数;
    除法有无余数!*/
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner in=new Scanner(System.in);
    char a1[]=new char[4];
    a1[0]='+';
    a1[1]='-';
    a1[2]='x';
    a1[3]='÷';
    char a2[]=new char[2];
    a2[0]='+';
    a2[1]='-';
    Random random=new Random();
    System.out.println("******小学生四则运算题目自动生成系统—整数部分—>******");
    System.out.println("运算是否需要包含乘法与除法?(1:是,0:否)");
    int flag1=in.nextInt();//是否包含乘除法
    System.out.println("加减有无负数?1:是,0:否");
    int flag2=in.nextInt();//加减有无负数
    System.out.println("请输入运算数的范围(即运算数最大能是多少:)");
    int range=in.nextInt();//题目运算数范围
    System.out.println("请输入所需题目个数:");
    int number=in.nextInt();
    if(flag1==0)//无乘除法 a2
    {
        if(flag2==1)//不含乘除法,加减有负数
        {
            for(int i=0;i<number;i++)
            {
                
                int a=random.nextInt(2*range);
                int b=random.nextInt(2*range);
                
                System.out.print("(");
                System.out.print(range-a);
                System.out.print(")");
                System.out.print(a2[(int) (Math.random()*2)]);
                System.out.print("(");
                System.out.print(range-b);
                System.out.println(")"+"=");
                
            }
        }
        else if(flag2==0) //不含乘除法,加减无负数
        {
            for(int i=0;i<number;i++)
            {
            int a=random.nextInt(range);
            int b=random.nextInt(range);
            System.out.print("(");
            System.out.print(range-a);
            System.out.print(")");
            System.out.print(a2[(int) (Math.random()*2)]);
            System.out.print("(");
            System.out.print(range-b);
            System.out.println(")"+"=");
            }
        }
    }
    else if(flag1==1)//有乘除法
    {
        System.out.print("乘除有无余数?1:是,0:否");
        int flag3=in.nextInt();//乘除有无余数
        if(flag2==1)//加减有负数
        {
            if(flag3==1)//乘除有余数
            {
                for(int i=0;i<number;i++)
                {
                    
                    int a=random.nextInt(2*range);
                    int b=random.nextInt(2*range);
                    
                    System.out.print("(");
                    System.out.print(range-a);
                    System.out.print(")");
                    System.out.print(a1[(int) (Math.random()*4)]);
                    System.out.print("(");
                    System.out.print(range-b);
                    System.out.println(")"+"=");
                    
                }
            }
            else if(flag3==0)//乘除无余数 ,加减有负数  
            {
                for(int i=0;i<number;i++)
                {
                    int a=random.nextInt(2*range);
                    int b=random.nextInt(2*range);
                    while((range-b)==0||(range-a)%(range-b)!=0)
                    {
                        a=random.nextInt(2*range);
                        b=random.nextInt(2*range);
                    }
                    System.out.print("(");
                    System.out.print(range-a);
                    System.out.print(")");
                    System.out.print(a1[(int) (Math.random()*4)]);
                    System.out.print("(");
                    System.out.print(range-b);
                    System.out.println(")"+"=");
                }
            }
        }
        else if(flag2==0)//有除法,加减无负数 
        {
            if(flag3==1)//有余数
            {
                
                for(int i=0;i<number;i++)
            {
                int a=random.nextInt(range);
                int b=random.nextInt(range);
                
                System.out.print("(");
                System.out.print(a);
                System.out.print(")");
                System.out.print(a1[(int) (Math.random()*4)]);
                System.out.print("(");
                System.out.print(b);
                System.out.println(")"+"=");
            }    
        }
            else if(flag3==0)//无余数
            {
                for(int i=0;i<number;i++)
                {
                    int a=random.nextInt(range);
                    int b=random.nextInt(range);
                    while(b==0||a%b!=0)//判断加减无负数,乘除无余数
                    {
                        a=random.nextInt(range);
                        b=random.nextInt(range);
                    }
                    System.out.print("(");
                    System.out.print(a);
                    System.out.print(")");
                    System.out.print(a1[(int) (Math.random()*4)]);
                    System.out.print("(");
                    System.out.print(b);
                    System.out.println(")"+"=");
                }
            }
        }
        
    }
    else 
    {System.out.println("输入有误!!");}
    
    System.out.println("********小学生四则运算题目自动生成系统—分数部分—>*********");
    System.out.print("是否需要乘除法?1:是,0:否");
    int flag4=in.nextInt();
    System.out.print("加减有无负数?1:是,0:否");
    int flag5=in.nextInt();
    System.out.print("请输入数值范围:(即最大的数字是多少)");
    int range1=in.nextInt();
    System.out.print("请输入题目数量:");
    int number1=in.nextInt();
    if(flag4==1)//有乘除法
    {
        if(flag5==1)//加减有负数
        {
            for(int i=0;i<number1;i++)
            {
            int a=random.nextInt(2*range1);
            int b=random.nextInt(range1);
            int c=random.nextInt(2*range1);
            int d=random.nextInt(range1);
            while(range1-a==0||range1-b==0||range1-c==0||range1-d==0)
            {
                a=random.nextInt(2*range1);
                b=random.nextInt(2*range1);
                c=random.nextInt(2*range1);
                d=random.nextInt(2*range1);
            }
            System.out.print("("+(range1-a));
            System.out.print("/");
            System.out.print(range1-b+")");
            System.out.print(a1[(int) (Math.random()*4)]);
            System.out.print("("+(range1-c));
            System.out.print("/");
            System.out.println(range1-d+")=");
            }
            
            
            
        }
        else if(flag5==0)//加减无负数
        {
            
            for(int i=0;i<number1;i++)
            {
            int a=random.nextInt(range1);
            int b=random.nextInt(range1);
            int c=random.nextInt(range1);
            int d=random.nextInt(range1);
            while(a==0||b==0||c==0||d==0)
            {
                a=random.nextInt(range1);
                b=random.nextInt(range1);
                c=random.nextInt(range1);
                d=random.nextInt(range1);
            }
            System.out.print("("+a+"/");
            System.out.print(b+")");
            System.out.print(a1[(int) (Math.random()*4)]);
            System.out.print("("+c);
            System.out.print("/");
            System.out.println(d+")=");
            }
                    
        }
    }
    else if(flag4==0)//无乘除法
    {
        if(flag5==1)//加减有负数
        {
            
            for(int i=0;i<number1;i++)
            {
            int a=random.nextInt(2*range1);
            int b=random.nextInt(2*range1);
            int c=random.nextInt(2*range1);
            int d=random.nextInt(2*range1);
            while(range1-a==0||range1-b==0||range1-c==0||range1-d==0)
            {
                a=random.nextInt(2*range1);
                b=random.nextInt(2*range1);
                c=random.nextInt(2*range1);
                d=random.nextInt(2*range1);
            }
            System.out.print("("+(range1-a));
            System.out.print("/"+(range1-b)+")");
            System.out.print(a2[(int) (Math.random()*2)]);
            System.out.print("("+(range1-c));
            System.out.print("/"+(range1-d));
            System.out.println(")=");
            }
            
        }
        else if(flag5==0)//加减无负数
        {
            
            for(int i=0;i<number1;i++)
            {
            int a=random.nextInt(range1);
            int b=random.nextInt(range1);
            int c=random.nextInt(range1);
            int d=random.nextInt(range1);
            while(b==0||d==0)
            {
                b=random.nextInt(range1);
                d=random.nextInt(range1);
            }
            if(a==0||c==0)
            {
                a=random.nextInt(range1);
                c=random.nextInt(range1);
            }
            
            System.out.print("("+a);
            System.out.print("/"+b+")");
            System.out.print(a2[(int) (Math.random()*2)]);
            System.out.print("("+c);
            System.out.print("/"+d);
            System.out.println(")=");
            }
        }
    }
        
    
    
    
    
    
    
        }
    
    }

    运行结果截图:

       

       

     项目计划日志:

    日期/任务

    听课

    阅读课本

    课下学习

    日总计

    周日3.5

    周一

    120m

    30m

    30m

    150m

    周二

    40m

    40m

    周三

    30m

    30m

    周四

    120m

    40m

    20m

    180m

    周五

    30m

    30m

    周六

    40m

    40m

    周总计

    240m

    70m

    190m

    520m

    时间记录日志:

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    C

    U

    3.6

    14:00

    16:00

    10m

    110m

    上课,编程

    软件工程课

    3.7

    19:00

    21:00

    20m

    100m

    看书,编程

    写软件工程作业

    3.8

    19:00

    21:00

    15m

    105m

    看书,编程

    学javaweb

    3.9

    16:00

    18:00

    10m

    110m

    上课

    Javaweb上课

    3.10

    18:00

    20:00

    30m

    90m

    构思,写java

    写四则运算程序

    缺陷记录日志:

    3/10:if~else 语句出现逻辑错误,后来发现及时改正。

  • 相关阅读:
    什么是回归测试?
    单元测试、集成测试、系统测试的侧重点是什么?
    一个测试工程师应具备那些素质?
    你所了解的的软件测试类型都有哪些,简单介绍一下。
    Python
    爬虫-urllib3模块的使用
    爬图片(附,源码)
    MySQL存储引擎:MyISAM和InnoDB的区别
    员工管理系统
    MySQL锁(二)表锁:为什么给小表加字段会导致整个库挂掉?
  • 原文地址:https://www.cnblogs.com/yibao/p/6533194.html
Copyright © 2020-2023  润新知