• 软件工程个人作业02


    四则运算2 程序设计思想:

        在程序1的基础上添加要求:是否有乘除法,是否有括号(这个没有完成),数值范围,加减有无负数,除法有无余数。

        在数组中存放运算符,添加一个只有加和减符号的数组,无乘除法的情况下,用这个数组即可实现。

        数值范围:在生成随机数的时候,生成随机范围内的数。

        加减有无负数:生成a,b两个随机数,a>b时生成的式子a在前。

        除法有无余数:添加判断,如果生成的两个随机数相除有余数的话,重新生成即可。

    源代码

    package ER;
    
    import java.util.Scanner;
    
    public class Sisr2 {
    
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String A[]=new String[4];
            A[0]="+";
            A[1]="-";
            A[2]="x";
            A[3]="÷";
            String B[]=new String[2];
            B[0]="+";
            B[1]="-";
            int a,b,c,d;
            System.out.println("选择题目类型:1.分数练习;0.整数练习");
            Scanner in=new Scanner(System.in);
            int k;
            k=in.nextInt();
            if(k==0){
                System.out.println("请输入生成题目的数量:");
                int x,y,m,n,z,l;
                x=in.nextInt();
                System.out.println("是否有乘除法:1.是;0.否");
                y=in.nextInt();
                System.out.println("请输入计算范围:");
                m=in.nextInt();
                n=in.nextInt();
                System.out.println("加减有无负数:1.有;0.无");
                z=in.nextInt();
                System.out.println("除法有无余数:1.有;0.无");
                l=in.nextInt();
                
                    if(y==0&&z==0&&l==0){
                        for(int i=0;i<x;i++){ 
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            if(a>b){
                                System.out.println(a+B[(int)(Math.random()*2)]+b);
                            }
                            else if(a<b){
                                System.out.println(b+B[(int)(Math.random()*2)]+a);
                            }
                        }    
                    }
                    if(y==0&&z==0&&l==1){
                        for(int i=0;i<x;i++){ 
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            if(a>b){
                                System.out.println(a+B[(int)(Math.random()*2)]+b);
                            }
                            else if(a<b){
                                System.out.println(b+B[(int)(Math.random()*2)]+a);
                            }
                        }
                    }
                    if(y==0&&z==1&&l==0){
                        for(int i=0;i<x;i++){ 
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            System.out.println(a+B[(int)(Math.random()*2)]+b);
                        }
                    }
                    if(y==0&&z==1&&l==1){
                        for(int i=0;i<x;i++){ 
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            System.out.println(a+B[(int)(Math.random()*2)]+b);
                        }
                    }
                    if(y==1&&z==0&&l==0){
                        int j=1;
                        while(j==x){
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            if(a%b==0){                        
                                System.out.println(a+A[(int)(Math.random()*4)]+b);
                                j++;
                            }
                            else if(b%a==0){
                                System.out.println(b+A[(int)(Math.random()*4)]+a);
                                j++;
                        }
                    }
                    }
                    if(y==1&&z==0&&l==1){
                        for(int i=0;i<x;i++){
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            if(a>b){
                                System.out.println(a+A[(int)(Math.random()*4)]+b);
                            }
                            else if(a<b){
                                System.out.println(b+A[(int)(Math.random()*4)]+a);
                            }
                        }
                    }
                    if(y==1&&z==1&&l==0){
                        int j1=1;
                        while(j1==x){
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            if(a%b==0){
                                System.out.println(a+A[(int)(Math.random()*4)]+b);
                                j1++;
                            }
                            else if(b%a==0){
                                System.out.println(b+A[(int)(Math.random()*4)]+a);
                                j1++;
                            }
                    }
                    }
                    if(y==1&&z==1&&l==1){
                        for(int i=0;i<x;i++){ 
                            a =(int)(Math.random()*(m-n))+n;
                            b =(int)(Math.random()*(m-n))+n;
                            System.out.println(a+A[(int)(Math.random()*4)]+b);
                        }
                    }
                }
            if(k==1){
                System.out.println("请输入生成题目的数量:");
                int x,y,m,n,z,l;
                x=in.nextInt();
                System.out.println("是否有乘除法:1.是;0.否");
                y=in.nextInt();
                System.out.println("请输入计算范围:");
                m=in.nextInt();
                n=in.nextInt();
                System.out.println("加减有无负数:1.有;0.无");
                z=in.nextInt();
                System.out.println("除法有无余数:1.有;0.无");
                l=in.nextInt();
                if(y==0&&z==0&&l==0){
                    for(int i=0;i<x;i++){ 
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        if(a/b>c/d){
                            System.out.println(a+"/"+b+" "+B[(int)(Math.random()*2)]+" "+c+"/"+d);
                        }
                        else if(a/b<c/d){
                            System.out.println(c+"/"+d+" "+B[(int)(Math.random()*2)]+" "+a+"/"+b);
                        }
                    }    
                }
                if(y==0&&z==0&&l==1){
                    for(int i=0;i<x;i++){ 
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        if(a/b>c/d){
                            System.out.println(a+"/"+b+" "+B[(int)(Math.random()*2)]+" "+c+"/"+d);
                        }
                        else if(a/b<c/d){
                            System.out.println(c+"/"+d+" "+B[(int)(Math.random()*2)]+" "+a+"/"+b);
                        }
                    }
                }
                if(y==0&&z==1&&l==0){
                    for(int i=0;i<x;i++){ 
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        System.out.println(a+"/"+b+" "+B[(int)(Math.random()*2)]+" "+c+"/"+d);
                    }
                }
                if(y==0&&z==1&&l==1){
                    for(int i=0;i<x;i++){ 
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        System.out.println(a+"/"+b+" "+B[(int)(Math.random()*2)]+" "+c+"/"+d);
                    }
                }
                if(y==1&&z==0&&l==0){
                    int j=1;
                    while(j==x){
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        if(a/b % c/d==0){                        
                            System.out.println(a+"/"+b+" "+A[(int)(Math.random()*4)]+" "+c+"/"+d);
                            j++;
                        }
                        else if(c/d % a/b==0){
                            System.out.println(c+"/"+d+" "+A[(int)(Math.random()*4)]+" "+a+"/"+b);
                            j++;
                    }
                }
                }
                if(y==1&&z==0&&l==1){
                    for(int i=0;i<x;i++){
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        if(a/b>c/d){
                            System.out.println(a+"/"+b+" "+A[(int)(Math.random()*4)]+" "+c+"/"+d);
                        }
                        else if(a/b<c/d){
                            System.out.println(c+"/"+d+" "+A[(int)(Math.random()*4)]+" "+a+"/"+b);
                        }
                    }
                }
                if(y==1&&z==1&&l==0){
                    int j1=1;
                    while(j1==x){
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        if(a/b % c/d==0){
                            System.out.println(a+"/"+b+" "+A[(int)(Math.random()*4)]+" "+c+"/"+d);
                            j1++;
                        }
                        else if(c/d % a/b==0){
                            System.out.println(c+"/"+d+" "+A[(int)(Math.random()*4)]+" "+a+"/"+b);
                            j1++;
                        }
                }
                }
                if(y==1&&z==1&&l==1){
                    for(int i=0;i<x;i++){ 
                        a =(int)(Math.random()*(m-n))+n;
                        b =(int)(Math.random()*(m-n))+n;
                        c =(int)(Math.random()*(m-n))+n;
                        d =(int)(Math.random()*(m-n))+n;
                        System.out.println(a+"/"+b+" "+A[(int)(Math.random()*4)]+" "+c+"/"+d);
                    }
                }
            }
        }
    
    }

    运行结果截图:

      现在分数计算也有问题了,起初没问题 ,再添加括号的时候出现问题,生成不了题目,排查错误过程中也没找到解决办法,只能先放弃括号这个要求。

    事件记录日志:

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/7

    13:50

    15:17

    30min

    57min

    编程

    作业2

    3/7

    19:04

    20:00

    20min

    36min

    编程

    Jave web

    3/8

    15:10

    17:30

    15min

    125min

    编程

    作业2

    3/10

    19:00

    22:00

    30min

    150min

    编程

    作业2

    3/11

    12:30

    15:00

    10min

    140min

    编程

    作业2

    备注:3/10日 程序崩溃- -,重新编写。

    缺陷记录日志:

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    3/7

    1

    编码

    编译

    5min

    修复被除数为0的情况

    3/7

    2

    编码

    编译

    10min

    修复分数不能生成式子

    3/10

    3

    编码

    编译

    30min

    添加括号,修改代码使程序崩溃,没有修复

    周活动总结表:

    任务

    日期

    听课(min)

    编写程序

    (min)

    阅读课本(min)

    准备考试(min)

    日总结

    (min)

    周日3/5

    周一

    200

    200

    周二

    100

    100

    200

    周三

    125

    30

    155

    周四

    90

    90

    周五

    150

    150

    周六

    140

    140

  • 相关阅读:
    linux查看CPU和内存信息
    linux yum命令详解
    查看文件中关键字前后几行的内容
    vue.js+web storm安装及第一个vue.js
    android GPS: code should explicitly check to see if permission is available
    ASP.NET MVC Identity 使用自己的SQL Server数据库
    阿里云服务器,tomcat启动,一直卡在At least one JAR was scanned for TLDs yet contained no TLDs就不动了
    ASP.NET MVC4 MVC 当前上下文中不存在名称“Scripts”
    python 将windows字体中的汉字生成图片的方法
    Java android DES+Base64加密解密
  • 原文地址:https://www.cnblogs.com/zhouzh/p/6535934.html
Copyright © 2020-2023  润新知