import javax.swing.*;
import java.util.*;
import java.text.*;
public class assignment6
{
public static void main (String[] args)
{
String continueOption;
do
{
int n = 1;
int pupils = 1;
int [] scores = new int [10];
String msg1 = "How many students are there in the class?";
String msg2 = "Please input a positive number.";
String msg3 = "Would you like to input numbers from the Console" +
"or have the computer Randomly generate for you?" + "\n" +
"(Enter \"C\" for Console Input or \"R\" for Random Generation)";
String msg4 = "Would you like to repeat? (Y/N)";
String msg5 = "Thank you for using this Teaching Aid." + "\n" +
"We hope all your students were paying attention and passed." + "\n" +
"Have a great summer, Professor Gordon!";
do
{
pupils = Integer.parseInt(JOptionPane.showInputDialog(msg1));
if (pupils <= 0)
{
JOptionPane.showMessageDialog(null,msg2);
}
}
while (pupils <= 0);
String choice = JOptionPane.showInputDialog(msg3);
if ((choice.charAt(0)=='C') || (choice.charAt(0)=='c'))
scores = userNum(pupils);
else
{
if(( choice.charAt(0)=='R') || (choice.charAt(0)=='r'))
scores = randomNum(pupils);
}
histogram(scores);
continueOption = JOptionPane.showInputDialog(msg4);
if (continueOption.equals("n") || continueOption.equals("N"))
{
JOptionPane.showMessageDialog(null, msg5, "Thank you message",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
System.out.println("\n");
}
while(continueOption.equals("y") || continueOption.equals("Y"));
}
public static int[] userNum(int n)
{
int i, num;
int [] list = new int [10];
String msg6 = "Please enter the score between 1-100.";
String msg7 = "The input is wrong, Please enter the score between 1-100.";
System.out.print("Test Scores:");
for (i = 0; i < n; i++)
{
num = Integer.parseInt( JOptionPane.showInputDialog(msg6));
if ((num < 1) || (num > 100))
{
do
{
num = Integer.parseInt( JOptionPane.showInputDialog(msg7));
}
while ((num < 1) || (num > 100));
}
if (i%10 == 0)
{System.out.println();}
System.out.print(num + " ");
int value = (((int)num)-1)/10;
list [value]++;
}
return list;
}
public static int [] randomNum(int n)
{
int [] list = new int[10];
Random generator = new Random();
int i;
double num = 0;
System.out.print("Test Scores:");
for(i = 0; i < n; i++)
{
do
{
num = generator.nextGaussian();
num *= 15;
num += 60;
}
while ((num < 1) || (num > 100));
int conversion = (int)num;
if (i%10 == 0)
{System.out.println();}
System.out.print( " " + conversion);
int value = (conversion-1)/10;
list [value]++;
}
return list;
}
public static void histogram(int [] scores)
{
int i = 0;
int index;
double max;
int result, key;
System.out.println("\n" + "\n" + "Histogram:");
for(i = 0; i < 10; i++)
{
int asterix = scores[i];
System.out.print(String.format("%2d", ((i*10)+1)) + " - " +
String.format("%3d", ((i+1)*10)) + ": ");
{
for(int k = 0; k < asterix ; k++)
System.out.print("*");
}
System.out.println();
}
System.out.println();
/**
//************************************************************
//Finding the largest group of scores
result = findLargest(scores,0,scores.length);
System.out.println(result);
System.out.println(scores[result]);
//Largest group found!
//************************************************************
**/
}
/**
//************************************************************
//Finding the largest group of scores
public static int findLargest(int [ ] list,int start, int n)
{
int largest = start;
for(int i = start+1;i<n;++i)
if (list[i] > list[largest])
largest = i;
return largest;
}
//Largest group found!
//************************************************************
**/
}