Comp103 - Java


Histogram App



import java.util.Scanner;
import java.util.Random;


public class Histogram{
  
  
  
    public static int readInt(String message){ //
      Scanner sc = new Scanner(System.in);   // allows user to input 
      System.out.println(message);           // values 
      return sc.nextInt();                   //
    }
  
  int numRandoms; //declare integers
  int randomInt;
 

  
  public void chooseNumRandoms(){
  numRandoms = readInt("How many random numbers would you like?");
  }
  
      
  public int generator(){
  Random generator = new Random();
    randomInt = generator.nextInt(50) +1;

    return randomInt;
  }
  
  public Histogram(){
 
    chooseNumRandoms();
    
    int[] a = new int[numRandoms];
    for (int i = 0; i<a.length; i++) {
   System.out.print(a[i] = generator());
   System.out.print(" ");
    }
    System.out.println();
    
    
    
    int decade1 = 0;
    int decade2 = 0;
    int decade3 = 0;
    int decade4 = 0;
    int decade5 = 0;
        
    for (int i = 0; i < a.length; i++){      
      
      
      if(a[i] >= 0 && a[i] <= 10)
     decade1++;
      
      else if(a[i]>10 && a[i] <= 20)
        decade2++;
      
      else if(a[i] >20 && a[i] <= 30)
        decade3++;
      
      else if(a[i] >30 && a[i] <= 40)
        decade4++;
      
      else
        decade5++;
  
    
  }
//    System.out.println(decade1 + " " + decade2 + " " +decade3 + " " + decade4 + " " + decade5);
    
   System.out.print("1-10  |");
    stars(decade1);
    System.out.print("11-20 |");
    stars(decade2);
    System.out.print("21-30 |");
    stars(decade3);
    System.out.print("31-40 |");
    stars(decade4);
    System.out.print("41-50 |");
    stars(decade5);
}
  
  
           public static void stars(int numberOfStars) {
                 // output a line containing the specified number of stars
               for (int i = 0; i < numberOfStars; i++) {
                   System.out.print('*');
               }
               System.out.println();  // output carriage return after the *'s
            }
  
  
}
  
    /*
    
    
  public void groupNumbers(){
    
    final int NUMNUMBERS = 50;
    
    int[] decade1 = new int[NUMNUMBERS];
    int[] lower = new int[NUMNUMBERS];
    

    
    for (int i = 0; i < a.length; i++){
      
      
      if(i >= 0 && i <= 50)
      decade1[i]++;
    
       
    }
  }
}
    
    
    
    
    /*
    int numDecades = 5;
    int[] decades = new int [5];
    int decadeWidth = 10;
    
    for (int i = 0; i < numDecades; i++){
      int decade1 = 10;
      int decade2 = 20;
      int decade3 = 30;
      int decade4 = 40;
      int decade5 = 50;
      
      decades[i] = inDecade(a,decade1,decade2,decade3,decade4,decade5);
  }
  }
  
  public static int inDecade(double[]a, int decade1, int decade2, int decade3, int decade4, int decade5){
    int count = 0;
    for (int i = 0; i < a.length; i++){
      if (a[i] <=decade1) count++;
    }
  return count;
  }
}
















  
  
  /*
     public static int inBucket (double[] a, int low, int high) {
    int count = 0;
    for (int i=0; i<a.length; i++) {
      if (a[i] >= low && a[i] < high) count++;
    }
    return count;
  } 
}

public void groupNumbers(){
       int numBuckets = 5;
    int[] buckets = new int [5];
    int bucketWidth = 50 / numBuckets;

    for (int i = 0; i<numBuckets; i++) {
      int low = i * bucketWidth;
      int high = low + bucketWidth;
     
      buckets[i]  = inBucket(a, low, high);
    } 
    }
    
    
  

  
  
  
  
  /*
  
  int[] array = new int[numRandoms];
 
  public void randomArray(){
  for (int i = 0; i < numRandoms; i++) {
      double x = Math.random ();
      System.out.println ((int)x );
    }
  }
  
    public static double[] randomArray2 (int n) {
    double[] a = new double[n];
    for (int i = 0; i<a.length; i++) {
      a[i] = Math.random ();
    System.out.println(a[i]);
    }
    return a;
  } 
    
    public void groupNumbers(){
    Array[] array = {
      //new Array("0-10"), 
      //new Array("10-20"),
      //new Array("20-30"),
      //new Array("30-40"),
      //new Array("40-50"),
    };
 // for (Array numberGroup : numbers)
  //  System.out.println(numberGroup);
}
}
    
    
    
    
    
    
    
    /*
    public void groupNumbers(){
       int numBuckets = 8;
    int[] buckets = new int [8];
    double bucketWidth = 1.0 / numBuckets;

    for (int i = 0; i<numBuckets; i++) {
      double low = i * bucketWidth;
      double high = low + bucketWidth;
     
      buckets[i]  = inBucket(a, low, high);
    } 
    }
    
     public static int inBucket (double[] a, double low, double high) {
    int count = 0;
    for (int i=0; i<a.length; i++) {
      if (a[i] >= low && a[i] < high) count++;
    }
    return count;
  } 
}








/*

    public static double[] randomArray (int n) {
    double[] a = new double[n];
    for (int i = 0; i<a.length; i++) {
      a[i] = Math.random ();
    }
    return a;
    } 
    
      public static void printArray (double[] a) {
    for (int i = 0; i<a.length; i++) {
      System.out.println (a[i]);
    }
  } 
  
  */

      /*
      int numValues = 8;
    double[] array = randomArray (numValues);
    printArray (array);
  */
  
  
  /*
   * public void displayArray(){
    

    
    final int LIMIT = numRandoms;
    
    int[] list = new int[LIMIT];
    
    for(int index = 0; index < LIMIT; index++)
      list[index] =  index * randomInt;
    
 //   for (int arrayLength = LIMIT; )
 //   list[index + 1] = 99;
    
    for(int value : list)
      System.out.print(value + " ");
      */