Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

STAGE 1: Histogram.java (Number histogram) Design and implement an application t

ID: 3906757 • Letter: S

Question

STAGE 1: Histogram.java (Number histogram) Design and implement an application that creates a histogram that allows you to visually inspect the frequency distribution of a set of values. The program should generate an arbitrary number of integers that are in range 1 to 100 inclusive; then produce a chart similar to the one below that indicates how many input values fell in range 1 to 10. 11 to 20, and so on. Print one asterisk for every five values in each category. Ignore leftovers. For example, if a category had 17 values, print three asterisks in that row Ifa category had 4 values, do not print any asterisks in that row Sample output:

Explanation / Answer

ScreenShot

-----------------------------------------------------------------------------

Program

//Package to generate random number
import java.util.Random;

public class Histogram {

   public static void main(String[] args) {
       //Initialize random object
       Random r = new Random();
       //Set range of values
       int Low = 1;
       int High = 101;
       //Variable for count the occurence and number of *
       int range0=0,range1=0,range2=0,range3=0,range4=0,range5=0,range6=0,range7=0,range8=0,range9=0,divVal=0;
       /*The list of numbers 1=100 and count of range occurence*/
       System.out.println("The generated List");
       System.out.println();
       for(int i=0;i<10;i++) {
           for(int j=0;j<10;j++) {
               int Result = r.nextInt(High-Low) + Low;
               if(Result>0 && Result<=10) {
                   range0+=1;
               }
               else if(Result>10 && Result<=20) {
                   range1+=1;
               }
               else if(Result>20 && Result<=30) {
                   range2+=1;
               }
               else if(Result>30 && Result<=40) {
                   range3+=1;
               }
               else if(Result>40 && Result<50) {
                   range4+=1;
               }
               else if(Result>50 && Result<=60) {
                   range5+=1;
               }
               else if(Result>60 && Result<=70) {
                   range6+=1;
               }
               else if(Result>70 && Result<=80) {
                   range7+=1;
               }
               else if(Result>80 && Result<=90) {
                   range8+=1;
               }
               else if(Result>90 && Result<=100) {
                   range9+=1;
               }
               System.out.print(Result+" ");
           }
           System.out.println();
       }
       /* Frequency distribution print */
       System.out.println();
       System.out.println("The frequency distribution");
       System.out.println();
       System.out.println("range(0) : "+range0);
       System.out.println("range(1) : "+range1);
       System.out.println("range(2) : "+range2);
       System.out.println("range(3) : "+range3);
       System.out.println("range(4) : "+range4);
       System.out.println("range(5) : "+range5);
       System.out.println("range(6) : "+range6);
       System.out.println("range(7) : "+range7);
       System.out.println("range(8) : "+range8);
       System.out.println("range(9) : "+range9);
       /*Histogram Print */
       System.out.println();
       System.out.println("Histogram chart");
       System.out.println();
       divVal=range0/5;
       String s = "";
       for (int i = 0; i <divVal; i++) {
            s += "*";
       }
       System.out.format("1 -10    | %s ",s);
      
       divVal=range1/5;
       s = "";
       for (int i = 0; i <divVal; i++) {
            s += "*";
       }
       System.out.format("11 -20   | %s ",s);
      
       divVal=range2/5;
       s = "";
       for (int i = 0; i <divVal; i++) {
            s += "*";
       }
       System.out.format("21 -30   | %s ",s);
      
       divVal=range3/5;
       s = "";
       for (int i = 0; i < divVal; i++) {
            s += "*";
       }
       System.out.format("31 -40   | %s ",s);
      
       divVal=range4/5;
       s = "";
       for (int i = 0; i < divVal; i++) {
            s += "*";
       }
       System.out.format("41 -50   | %s ",s);
      
       divVal=range5/5;
       s = "";
       for (int i = 0; i < divVal; i++) {
            s += "*";
       }
       System.out.format("51 -60   | %s ",s);
      
       divVal=range6/5;
       s = "";
       for (int i = 0; i < divVal; i++) {
            s += "*";
       }
       System.out.format("61 -70   | %s ",s);
      
       divVal=range7/5;
       s = "";
       for (int i = 0; i <divVal; i++) {
            s += "*";
       }
       System.out.format("71 -80   | %s ",s);
      
       divVal=range8/5;
       s = "";
       for (int i = 0; i < divVal; i++) {
            s += "*";
       }
       System.out.format("81 -90   | %s ",s);
      
       divVal=range9/5;
       s = "";
       for (int i = 0; i < divVal; i++) {
            s += "*";
       }
       System.out.format("91 -100 | %s ",s);

   }

}

----------------------------------------

Output

The generated List

46 78 13 60 12 97 68 61 96 94
33 48 11 97 22 67 30 4 90 7
62 14 36 51 34 20 82 34 14 90
78 57 17 68 74 95 73 43 39 93
28 41 2 74 15 100 42 52 57 2
43 46 21 21 72 27 10 9 25 87
77 61 91 36 6 11 60 11 4 29
100 69 69 97 95 39 5 40 2 38
36 63 27 24 12 2 24 64 78 54
80 88 64 59 23 26 4 71 85 56

The frequency distribution

range(0) : 12
range(1) : 11
range(2) : 13
range(3) : 10
range(4) : 7
range(5) : 9
range(6) : 11
range(7) : 10
range(8) : 6
range(9) : 11

Histogram chart

1 -10   | **
11 -20   | **
21 -30   | **
31 -40   | **
41 -50   | *
51 -60   | *
61 -70   | **
71 -80   | **
81 -90   | *
91 -100 | **