Problem with user defined methods

Hello,

I have created a user-defined method using the constructer and a number of sub-methods. The toString method is supposed to return the maximum, minimum, average, and median for an input data set. This program compiles with no problem, but doesn't seem to calculate the statistics. The max, min, med, and mean are all 0. Any help would be appreciated. Thanks a lot.

import java.util.*;

public class SO{

private String id;

private int N;

private double[] data;

private double average;

private double minimum;

private double maximum;

private double med;

public SO(){

}

public void readData(){

Scanner keyBoard = new Scanner(System.in);

System.out.println("Enter the id: ");

id = keyBoard.nextLine();

System.out.println("Enter the amount of data values in the id: ");

N = keyBoard.nextInt();

data = new double[N];

System.out.println("Enter the values one line at a time: ");

int j = 0;

for(int h=0; h<=N-1; h++){

data[h] = keyBoard.nextDouble();

}

Arrays.sort(data);

}

public void setDataValue(int k, double v){

data[k] = v;

System.out.printf("Changing data[%d] to %f", k, v);

}

public double getDataValue(int k){

double get = data[k];

return get;

}

private double mean(){

double sum = 0;

for(int k = 0; k<=N-1; k++){

sum = sum + data[k];

}

average = sum/N;

return average;

}

private double min(){

minimum = data[0];

return minimum;

}

private double max(){

maximum = data[N-1];

return maximum;

}

private double median(){

if(N%2 != 0){

med = data[N/2];

}

else if(N%2 == 0){

med = (data[N/2] + data[N/2-1])/2.;

}

return med;

}

public void displayData(){

System.out.printf("[");

for(int k = 0; k<=N-1; k++){

System.out.printf("%.2f", data[k]);

if(k != N-1){

System.out.printf(", ");

}

}

System.out.printf("]");

}

public void sortData(){

Arrays.sort(data);

System.out.printf("[");

for(int k = 0; k<=N-1; k++){

System.out.printf("%.2f", data[k]);

if(k != N-1){

System.out.printf(", ");

}

}

System.out.printf("]");

}

public void analyzeData(){

System.out.println(this);

}

public String toString(){

return id +"\n" + "minimum = " + minimum + "\n" + "maximum = " + maximum + "\n" + "median = " + med + "\n" + "mean = " + average;

}

public static void main(String[] args){

SO v = new SO();

System.out.println("Read Data");

v.readData();

System.out.println("Display Data");

v.displayData();

System.out.println("Analyze Data");

v.analyzeData();

System.out.println("Set Data\n");

v.setDataValue(0,98.75);

v.displayData();

System.out.println("Sort Data");

v.sortData();

System.out.println("Access Data\n");

System.out.println("data[0] = " + v.getDataValue(0));

System.out.println("\nDisplay v");

System.out.println(v);

}

}

[3262 byte] By [DJChriszz84a] at [2007-10-2 7:16:37]
# 1
When you post code, please use[code] and [/code] tags as described in [url= http://forum.java.sun.com/help.jspa?sec=formatting]Formatting tips[/url] on the message entry page. It makes it much easier to read.
jverda at 2007-7-16 20:51:28 > top of Java-index,Java Essentials,Java Programming...
# 2

Sorry

import java.util.*;

public class SO{

private String id;

private int N;

private double[] data;

private double average;

private double minimum;

private double maximum;

private double med;

public SO(){

}

public void readData(){

Scanner keyBoard = new Scanner(System.in);

System.out.println("Enter the id: ");

id = keyBoard.nextLine();

System.out.println("Enter the amount of data values in the id: ");

N = keyBoard.nextInt();

data = new double[N];

System.out.println("Enter the values one line at a time: ");

int j = 0;

for(int h=0; h<=N-1; h++){

data[h] = keyBoard.nextDouble();

}

Arrays.sort(data);

}

public void setDataValue(int k, double v){

data[k] = v;

System.out.printf("Changing data[%d] to %f", k, v);

}

public double getDataValue(int k){

double get = data[k];

return get;

}

private double mean(){

double sum = 0;

for(int k = 0; k<=N-1; k++){

sum = sum + data[k];

}

average = sum/N;

return average;

}

private double min(){

minimum = data[0];

return minimum;

}

private double max(){

maximum = data[N-1];

return maximum;

}

private double median(){

if(N%2 != 0){

med = data[N/2];

}

else if(N%2 == 0){

med = (data[N/2] + data[N/2-1])/2.;

}

return med;

}

public void displayData(){

System.out.printf("[");

for(int k = 0; k<=N-1; k++){

System.out.printf("%.2f", data[k]);

if(k != N-1){

System.out.printf(", ");

}

}

System.out.printf("]");

}

public void sortData(){

Arrays.sort(data);

System.out.printf("[");

for(int k = 0; k<=N-1; k++){

System.out.printf("%.2f", data[k]);

if(k != N-1){

System.out.printf(", ");

}

}

System.out.printf("]");

}

public void analyzeData(){

System.out.println(this);

}

public String toString(){

return id +"\n" + "minimum = " + minimum + "\n" + "maximum = " + maximum + "\n" + "median = " + med + "\n" + "mean = " + average;

}

public static void main(String[] args){

SO v = new SO();

System.out.println("Read Data");

v.readData();

System.out.println("Display Data");

v.displayData();

System.out.println("Analyze Data");

v.analyzeData();

System.out.println("Set Data\n");

v.setDataValue(0,98.75);

v.displayData();

System.out.println("Sort Data");

v.sortData();

System.out.println("Access Data\n");

System.out.println("data[0] = " + v.getDataValue(0));

System.out.println("\nDisplay v");

System.out.println(v);

}

}

DJChriszz84a at 2007-7-16 20:51:28 > top of Java-index,Java Essentials,Java Programming...