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

    一、实验题目:加减乘除

    二、程序设计思想:

      本程序共分为三大步:

      1、 定义两个类,一个是式子类,另一个是分数类,其中式子类中包含分数类的对象。

      2、 在主函数中,利用数组和查重函数,检验是否有重的式子,如果有则重新创建。在查重的时候,应该注意:加法和乘法中前后项相等也算式子相同。

      3、在输出最后式子的时候,利用了string类型的formcat函数,将式子实现了对齐排版输出,并且在输出的时候,逐级调用输出函数,整体式子调用个体式子,再调用分数的输出。

    三、程序代码:

    import java.util.Scanner;
    
    
    public class jiajianchengchu 
    {
        public static void main(String[] args)
        {
            Scanner scanner=new Scanner(System.in);
            System.out.print("请输入要生成的随机数个数:");
            int num=scanner.nextInt(),i;
            Shi[] shi=new Shi[num];
            System.out.print(String.format("%-6s","序号"));
            System.out.println(String.format("%-6s","算式"));
            for(i=0;i<num;i++)
            {
                shi[i]=new Shi();
                shi[i].chuangjian();
                chachong(i,shi);
                System.out.print(String.format("%-6s",i+1));
                shi[i].shuchu();
            }
        }
        
        static void chachong(int n,Shi[] x)
        {
            int i;
            for(i=0;i<n;i++)
            {
                if(x[n].equals(x[i]))
                {
                    x[n].chuangjian();
                    chachong(n,x);
                    break;
                }
            }
        }
    }
    
    class Shi
    {
        Fenshu a,c,value;
        int b;
        Shi()
        {
            a=new Fenshu();
            c=new Fenshu();
            value=new Fenshu();
        }
        void chuangjian()
        {
            a.chuangjian();
            b=(int)(Math.random()*4);
            c.chuangjian();
            while(c.zi==0&&b==3)
            {
                c.chuangjian();
            }
        }
        void shuchu()
        {
            if(b==0) System.out.println(String.format("%-20s",a.output()+"+"+c.output()+"="));
            if(b==1) System.out.println(String.format("%-20s",a.output()+"-"+c.output()+"="));
            if(b==2) System.out.println(String.format("%-20s",a.output()+"*"+c.output()+"="));
            if(b==3) System.out.println(String.format("%-20s",a.output()+"÷"+c.output()+"="));
        }
        
        boolean equals(Shi y)
        {
            if(a.equals(y.a)&&b==y.b&&c.equals(y.c)) return true;
            else if((b==0||b==2)&&a.equals(y.c)&&c.equals(y.a)) return true;
            else return false;
        }
    }
    
    class Fenshu
    {
        int zi,mu;
        
        Fenshu()
        {
        }
        
        boolean equals(Fenshu x)
        {
            if(zi*x.mu==mu*x.zi) return true;
            return false;
        }
        
        void chuangjian()
        {
            zi=(int)(Math.random()*100);
            mu=(int)(Math.random()*100+1);
            while(zi>mu&&zi%mu!=0)
            {
                zi=(int)(Math.random()*100);
                mu=(int)(Math.random()*100+1);
            }
        }
    
        String output()
        {
            String out="";
            if(zi==0) out+=zi;
            else if(mu==1) out+=zi;
            else out="("+zi+"/"+mu+")";
            return out;
        }
    }

    四、程序结果截图:

    五、课堂未完成原因:在课上,实验完成的不完整,即有的功能未能实现,如:查重、运算时有真分数等等。综合分析原因如下:

           1、长时间未编程,导致编程时有的语句忘了。

           2、对于一个程序,未能合理地分成若干个小模块。

  • 相关阅读:
    matlab 自定义函数及调用
    matlab 逻辑数组及其应用
    matlab 嵌套循环的学习
    matlab和C语言的break及continue测试
    matlab 向量法建数组(推荐)
    matlab for循环应用(阶乘及the day of year)
    matlab for循环的三种类型
    ORACLE创建用户,建表空间,授予权限
    Linux计划任务
    android开发环境搭建
  • 原文地址:https://www.cnblogs.com/lizhaoxuan/p/6511607.html
Copyright © 2011-2022 走看看