ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

打印四则运算题目的“软件”

2021-09-18 20:32:57  阅读:148  来源: 互联网

标签:case 四则运算 题目 int 打印 break nextInt fh input


(1)题目要求

1.题目避免重复;
2.可定制(数量/打印方式);
3. 输入大的数量值,测试一下系统是否崩溃,反向查找系统是否优化的余地;
4.定制操作数的个数;
5.定制是否有乘除法;
6.定制是否有括号(随机加入);
7.定制数值范围(确定操作数的取值范围);

(2)源代码

package sizeyunsuan;

import java.util.*;

public class sizeyunsuan {
    
    
    public static int[] randomCommon(int n,int min, int max) //生成随机数
    {
        int[] result = new int[n];
        int count = 0;
        while(count < n) {
            int num = (int) (Math.random() * (max - min)) + min;
            boolean flag = true;
            for (int j = 0; j < n; j++) {
                if(num == result[j]){
                    flag = false;
                    break;
                }
            }
            if(flag){
                result[count] = num;
                count++;
            }
        }
        return result;
    }
    
    public static char fh(int panduan) //生成随机运算符
    {
        
        Random r = new Random();
        int yunsuanfu= r.nextInt(100);
        char fh=' ';
        if(panduan==1) //有乘除
        {
            switch(yunsuanfu%4)
            {
            case 0:fh='+';break;
            case 1:fh='-';break;
            case 2:fh='*';break;
            case 3:fh='/';break;
            }
        }
        else if(panduan==2) //无乘除
        {
            switch(yunsuanfu%2)
            {
            case 0:fh='+';break;
            case 1:fh='-';break;
            }
        }
        return fh;
    }
    
    public static void main(String[] args) {
        
        System.out.println("请输入题目个数:");
        Scanner input = new Scanner(System.in);
        int num=input.nextInt();
        
        System.out.println("请输入操作个数(1.两个 2.三个)");
        int czs=input.nextInt();
        
        System.out.println("请输入数值范围:");
        int a=input.nextInt();
        int b=input.nextInt();
        if((b-a)<num*(czs+1)) //系统崩溃条件
        {
            System.out.println("系统崩溃!");
            System.exit(0);
        }
        
        System.out.println("是否需要乘除运算(1.是 2.否)");
        int cc=input.nextInt();
        
        Random r = new Random();
        int x,y,z;
        
        if(czs==1) //操作数为2时
        {
            int []arr1 =randomCommon(num*2,a,b);
            
            
            for(int i=0;i<num*2;i++)
            {
                x=arr1[i];
                y=arr1[i+1];
                i++;
                System.out.println(""+x+fh(cc)+y+"=");
            }
            
        }
        else if(czs==2) //操作数为3时
        {
            System.out.println("是否需要括号运算(1.是 2.否)");
            int kh=input.nextInt();
            int []arr2 =randomCommon(num*3,a,b);
            
            for(int i=0;i<num*3;i++)
            {
                x=arr2[i];
                y=arr2[i+1];
                z=arr2[i+2];
                i+=2;
                
                if(kh==1) //随机加括号
                {
                    int kuohao= r.nextInt(99);
                    switch(kuohao%2)
                    {
                    case 0:System.out.println("("+x+fh(cc)+y+")"+fh(cc)+z+"=");break;
                    case 1:System.out.println(""+x+fh(cc)+"("+y+fh(cc)+z+")=");break;
                    case 2:System.out.println(""+x+fh(cc)+y+fh(cc)+z+"=");break;
                    }
                }
                else if(kh==2) //无括号
                {
                    System.out.println(""+x+fh(cc)+y+fh(cc)+z+"=");
                }
                
            }
        }
     }    
}

(3)问题&措施

1.问题:输出部分显示如下第一个数后的运算符无法显示

 措施:此处主要是由于java输出中“+”的运用问题,若输出开始无引用输出,系统会自动认为输出“+”相连变量的和,而非分别输出变量。

            因此只需在输出开头加上“ ""+ ”即可。

 

标签:case,四则运算,题目,int,打印,break,nextInt,fh,input
来源: https://www.cnblogs.com/qiuyutingyyds/p/15310098.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有