zoukankan      html  css  js  c++  java
  • 软件工程个人作业01

    题目:

    写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。

    思路:首先,运用随机数程序生成1-100之间的随机数(int型),在方法中通过随机的方法确定这个数是否为分数:如果为分数,则产生两个随机数相除,为保证为真分数,在生成算式之前进行判断,如果分母小于分子,则分母等于分子+分母。再判断是否重复:定义一个String类型数组,将生成的算式保存,每次输出之前先验证是否存在,如果存在则不输出,不计数。

    源程序:



    import java.util.*;

    public class Yunsuan01 {
        @SuppressWarnings("resource")
        public static void main(String args[])
        {
            Scanner sc = new Scanner(System.in);
            int num;
            System.out.println("请输入需要生成的个数:");
            num = sc.nextInt();
            String[] s = new String[100];//保存已有的运算式
            int ss = 0;//运算式个数计数
            char[] ch = new char[4];
            ch[0] = '+';
            ch[1] = '-';
            ch[2] = '*';
            ch[3] = '/';
            int a,b,a1,b1;
            double A,B,A1,B1;
            int k;
            String str;
            int flagA = 0,flagB = 0;//判断是否用真分数。
            for(int i = 0;i < num;i ++)
            {
                flagA = SuiJileixing();
                flagB = SuiJileixing();
                if(flagA == 1 && flagB == 1)
                {
                    a = SuiJi1();
                    b = SuiJi1();
                    k = SuiJiyunsuanfu();
                    str = a + " " + ch[k] + " " + b + " = ";
                    if(Check(s,str,ss) != 1)
                    {
                        s[ss] = str;
                        System.out.print(s[ss]);
                        A = (double)a;
                        B = (double)b;
                        show(A,B,k);
                        ss ++;
                    }
                }
                else if(flagA == 1 && flagB == 0)
                {
                    a = SuiJi1();
                    b = SuiJi1();
                    b1 = SuiJi1() + 1;
                    if(b < b1)
                    {
                        b = b;
                    }
                    else
                    {
                        b1 = b1 + b;
                    }
                    k = SuiJiyunsuanfu();
                    str = a + " " + ch[k] + " (" + b + "/" + b1 + ") = ";
                    if(Check(s,str,ss) != 1)
                    {
                        s[ss] = str;
                        System.out.print(s[ss]);
                        A = (double)a;
                        B = (double)b;
                        B1 = (double)b1;
                        show(A,B/B1,k);
                        ss ++;
                    }
                }
                else if(flagA == 0 && flagB == 1)
                {
                    a = SuiJi1();
                    a1 = SuiJi1() + 1;
                    b = SuiJi1();
                    if(a > a1)
                    {
                        a1 = a + a1;
                    }
                    k = SuiJiyunsuanfu();
                    str = "(" + a + "/" + a1 + ") " + ch[k] + " " + b + " = ";
                    if(Check(s,str,ss) != 1)
                    {
                        s[ss] = str;
                        System.out.print(s[ss]);
                        A = (double)a;
                        A1 = (double)a1;
                        B = (double)b;
                        show(A/A1,B,k);
                        ss ++;
                    }
                }
                else
                {
                    a = SuiJi1();
                    a1 = SuiJi1() + 1;
                    b = SuiJi1();
                    b1 = SuiJi1() + 1;
                    if(a > a1)
                    {
                        a1 = a + a1;
                    }
                    if(b > b1)
                    {
                        b1 = b + b1;
                    }
                    k = SuiJiyunsuanfu();
                    str =  "(" + a + "/" + a1 + ") " + ch[k] + " " + b + "/" + b1 + " = ";
                    if(Check(s,str,ss) != 1)
                    {
                        s[ss] = str;
                        System.out.print(s[ss]);
                        A = (double)a;
                        A1 = (double)a1;
                        B = (double)b;
                        B1 = (double)b1;
                        show(a/a1,b/b1,k);
                        ss ++;
                    }
                }

                
                
            }
            
        }
        
        public static int SuiJi1()
        {
            int a;
            a = (int)(Math.random()*100);
            return a;
        }
        public static int SuiJiyunsuanfu()
        {
            int a;
            a = (int) (Math.random()*4);
            return a;
        }
        public static int Check(String s[],String str,int ss)
        {
            int qqq = 0;
            for(int i = 0;i < ss;i ++)
            {
                if(str.equals(s[ss]))
                {
                    qqq = 1;
                    break;
                }
            }
            return qqq;
        }
        public static int SuiJileixing()
        {
            int flag = (int)(Math.random()*2);
            return flag;
        }
        public static void show(double a,double b,int k)
        {
            if(k == 0)
            {
                System.out.println(a + b);
            }
            if(k == 1)
            {
                System.out.println(a - b);
            }
            if(k == 2)
            {
                System.out.println(a * b);
            }
            if(k == 3)
            {
                System.out.println(a / b);
            }
        }
    }

    程序运行结果:

  • 相关阅读:
    postman使用详解
    如何测试一个水杯
    selenium3(java)之屏幕截图操作
    C语言随机点名程序
    关于测试执行的一些总结与思考
    小议SQL数据插入
    BS架构和CS架构的区别
    Oracle伪列(ROWNUM)的使用
    Loadrunner学习资料
    【Apache运维基础(2)】主配置文件说明
  • 原文地址:https://www.cnblogs.com/fychen0302/p/6506994.html
Copyright © 2011-2022 走看看