Algs4-1.2.10编写一个类VisualCounter

Posted 修电脑的龙生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Algs4-1.2.10编写一个类VisualCounter相关的知识,希望对你有一定的参考价值。

1.2.10编写一个类VisualCounter,支持加一和减一操作。它的构造函数接受两个参数N和max,其中N指定了操作的最大次数,max指定了计数器的最大绝对值。作为副作用,用图像显示每次计器变化后的值。
答:Draw Point时操作次数作为X坐标,计数器值作为Y坐标。
技术分享图片
技术分享图片

public class VisualCounter
{
    private int maxOperationTimes;
    private int maxCountAbs;
    private int operationTimes;
    private int count;
   
    public VisualCounter(int N,int max)
    {
        maxOperationTimes=N;
        maxCountAbs=max;
        operationTimes=0;
        count=0;
    }  
   
    public void increment()
    {
       if (operationTimes<maxOperationTimes && Math.abs(count)<maxCountAbs)
       {
          operationTimes++;
           count++;
        }
    }
   
    public void decrease()
    {
       if (operationTimes<maxOperationTimes && Math.abs(count)<maxCountAbs)
       {
          operationTimes++;
           count--;
        }
    }
   
    public int tally()
    {
        return count;
    }
   
    public int operationTimes()
    {
        return operationTimes;
    }
   
    public boolean isEnd()
    {
      return  operationTimes>=maxOperationTimes || Math.abs(count)>=maxCountAbs ;
    }

    public void draw()
    {
        StdDraw.point(operationTimes,count);
    }


   
    public static void main(String[] args)
    {
        int N=Integer.parseInt(args[0]);
        int max=Integer.parseInt(args[1]);
        VisualCounter vC=new VisualCounter(N,max);
        int num;
        StdDraw.setXscale(0,N);
        StdDraw.setYscale(-1.0*max,max);
        while (true)
        {
            num=StdRandom.uniform(max/17);
            for(int j=0;j<num;j++)
            {
                 if (num%2==0)
                     vC.increment();
                 else
                     vC.decrease();  
                 vC.draw();
                 if(vC.isEnd()) return;
            }
       }
    }
}



















































































以上是关于Algs4-1.2.10编写一个类VisualCounter的主要内容,如果未能解决你的问题,请参考以下文章

Java 编写一个矩形类Rect

用java 编写一个复数类

在java中编写程序,定义一个学生类

编程Customer.java:编写Customer类

编写一个类Person,为Person类定义年龄、姓名两个属性

编写一个复数类