将垂直直方图打印到控制台

时间:2018-06-17 13:51:07

标签: java console histogram

我需要写一个void方法()" printHistogram(int bin)"打印所有者关于他们拥有的狗的直方图。参数是" int bin"用于将直方图划分为间隔。用户最多可以有10只狗。因此,考虑bin = 5,这种情况下的间隔将是2,因为10/5 = 2.因此,将进行(0-5,5-10)的间隔。

_
_
_
_     _
0-5  5-10

类似的东西,这意味着4个用户的狗在0到5之间,依此类推。不需要知道获取狗数的方法等等。我只需要逻辑和算法。我真的需要帮助。谢谢。这种方法的输出是打印" _"下划线并构建一个垂直直方图。

这是我的代码: -

public void drawHistogram(int bin) {

      int highestDogs = owners.get(0).countDogs(); //method for getting number of dogs of a user
      int intervals = 10/bin;
      int temp = 0;
      int tempBin = bin;

      for (int i =0; i < owners.size(); i++) 
      {
         tempBin = bin;
         temp = 0;
         do{
            System.out.println(i + "iteration" + " " + owners.get(i).countDogs() );
            if(owners.get(i).countDogs() >= temp && owners.get(i).countDogs() < tempBin)
            {

               if( tempBin > bin)
               {

                  System.out.print("    ");  
               }


               System.out.print("_  ");
               temp = tempBin;
               tempBin = bin + bin;
               System.out.println(tempBin);

            }
            else { 
               temp = tempBin;
               tempBin = bin + bin;

               System.out.println(tempBin);
            }

         }while(tempBin < 11);
         System.out.println();
      }

   }
}

1 个答案:

答案 0 :(得分:0)

这是绘制直方图的mcve。请注意评论:

getData()  {
    return this.http.post(this.base_URL + "web_app/login/", JSON.stringify(this.login));

}

输出:

enter image description here