In: Computer Science
For input you can either a console Scanner or a dialog box (a modal dialog) and the static method showInputDialog() of the JOptionPane class which is within the javax.swing package like this String name= newJOptionPane.showInputDialog(” Please enter your data:”). Then convert the String object to a number using Integer.parseInt() or Double.parseDouble()
---
Write a java ”Statistics program” to calculate the mean, variance and standard deviation for a given set of numbers. The user in entering the data interactively. The size of the data set will be determined at run time. Test it with all methods taught in chapter 8 (user input, random, loop, redirection). Recall the following formulas for mean, variance, and Standard deviation.
/*Importing packages will help in making classes and interface
available in our class, so we dont have to make it again*/
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Statistics_program {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null,"Please enter your
data by clicking OK button:");
String s1=JOptionPane.showInputDialog("Please enter
the number of values you want to enter:");
int n=Integer.parseInt(s1);
/*Here we have to use ArrayList in order to
store
* any number of values we want for finding their
mean,
* variance and standard deviation*/
ArrayList<Integer> al=new
ArrayList<Integer>();
/*This for loop is for taking input from user
interactively by asking values one by one
* for which mean,variance and standard deviation has
to be calculated*/
for(int i=0;i<n;i++)
{
String
k=JOptionPane.showInputDialog("enter "+(i+1)+" value");
int
parse=Integer.parseInt(k);
al.add(parse);
}
/****This is a method name,
"printing_mean_variance_and_Standard_deviation(al);"*************/
/*Method which will call and print all the values,
that are
* MEAN
* VARIANCE
* and STANDARD DEVIATION*/
printing_mean_variance_and_Standard_deviation(al);
}/*Main method ends*/
/*Calculating and Returning Mean from this
method*/
static double Mean(ArrayList<Integer> al)
{
int sum=0;
int arraylist_size=al.size();
for(int
i=0;i<arraylist_size;i++)
{
sum+=al.get(i);
}
double
mean=(double)sum/(double)arraylist_size;
JOptionPane.showMessageDialog( null, "mean is: "+mean);
return mean;
}
/*Calculating and Returning Variance from this
method*/
static double Variance(ArrayList<Integer>
al)
{
double variance_sum=0;
double mean=Mean(al);
int arraylist_size=al.size();
JOptionPane.showMessageDialog(null, "We know that variance is
defined as the"
+ " Sum_Of_( (al.get(i)-mean)
* (al.get(i)-mean) ) for each value of i");
/*Here we have
used for each loop for taking input
* from array
list easily and then storing it in
* variance_sum
variable by firstly subtracting mean
* from each
value and then multiplying it another time
* with the same
(x-mean)*/
for(int
x:al)
{
variance_sum+=(x-mean)*(x-mean);
}
/*variance will
be calculated by dividing variance_sum with
* the number of
elements present here inside array list,entered by user */
double
variance=(double)variance_sum/arraylist_size;
/*Printing
variance on JOptionPane*/
JOptionPane.showMessageDialog( null, "Variance is:
"+variance);
return
variance;
}/*Variance method ends*/
/*Calculating and printing all the three from this
method*/
static void
printing_mean_variance_and_Standard_deviation(ArrayList al)
{
/*Here standard deviation can be
calculated by a single line
* and using inbuilt math function
for square root " sqrt "
* which is available in java. As we
know that standard deviation
* is the square root of variance,
so we are passing variance inside
* sqrt function which will call
"Variance method"
* and will return variance inside
sqrt function*/
double
standard_dev=Math.sqrt(Variance(al));
JOptionPane.showMessageDialog(null,
"standard_deviation= "+standard_dev);
}/*Method for printing and calling
ends*/
}/*CLASS ENDS*/