2012-12-14 3 views
1

사용자 정보를 취하여 최소, 최대, 평균, 합계를 출력하고 값의 개수를 계산합니다. 난 정말 100 항목의 기본 생성자와 사용자가 정의하기로되어있는 배열 크기를 만드는 방법을 알아 내려고 고투하고 있어요.배열/데이터 집합 생성자 질문

  • 새 DataSet 개체를 만듭니다. 개체를 만드는 클라이언트는 집합에 추가 할 수있는 항목의 최대 수인 을 지정합니다. 하나의 int 매개 변수로 생성자를 작성하십시오.

  • 또한 100 개의 항목을 처리 할 수있는 DataSet을 만드는 기본 생성자를 작성하십시오.

  • 정수 데이터 항목을 데이터 집합에 추가하십시오. 최대 수의 항목이 이미 세트에 추가 된 경우 해당 항목은 단순히 무시됩니다. 여기

내 코드입니다

import javax.swing.*; 
    import java.util.*; 
    public class DataSet { 

     private int count; // Number of numbers that have been entered. 
     private double sum; // The sum of all the items that have been entered. 
     private double min; 
     private double max; 

     //Adds numbers to dataset.  
      public void addDatum(double num) { 
      count++; 
      sum += num; 
      if (count == 1){ 
      min = num; 
      max = num; 
     } else if (num < min){ 
      min = num; 
     } else if (num > max){ 
      max = num; 
     } 
    } 

    public boolean isEmpty() 
    { 
     if(count == 0) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

    //Return number of items entered into the dataset.  
    public int getCount() { 
     return count; 
    } 

    //Return the sum of all the numbers that have been entered. 
    public double getSum() { 
     return sum; 
    } 

    //Return the average of all the numbers that have been entered.  
    public double getAvg() { 
     return sum/count; 
    } 

    //return Maximum value of data entered. 
    public double getMax(){ 
     return max; 
    } 

    //return Minimum value of data entered. 
    public double getMin(){ 
     return min; 
    } 

    public static void main (String[] args){ 

     Scanner scanner = new Scanner(System.in); 
     DataSet calc = new DataSet(); 
     double nextnumber = 0; 

     while (true){ 
      System.out.print("Enter the next number(0 to exit): "); 
      nextnumber = scanner.nextDouble(); 
      if (nextnumber == 0) 
       break; 
      calc.addDatum(nextnumber); 
     } 

     System.out.println("Min = "+calc.getMin()); 
     System.out.println("Max = "+calc.getMax()); 
     System.out.println("Mean = "+calc.getAvg());  
     System.out.println("Count = "+calc.getCount()); 
     System.out.println("Sum = "+calc.getSum()); 
    } 

} //end class DataSet 
+0

그래서 당신의 질문은 무엇인가? 한계를 확인하고 저장하는 데 문제가 있습니까? –

답변

0

배열을 선언하는 구문은 type[] name;

그래서 int 배열은 이렇게 선언한다 (이 변종이지만이 가장 일반적이다) :

int[] someIntegers; 

새 배열 만들기는 여러 가지 방법으로 수행 할 수 있습니다. 일반적인 방법은 모든 요소가 기본값 (초기 데이터 유형의 경우 0 또는 false, 객체 배열의 경우 null)으로 초기화 된 빈 배열을 만드는 것입니다. 구문은 다음과 같습니다.

someIntegers = new int[4]; // ie. [0, 0, 0, 0] 
// or 
int n = ...; // intitalise n some how 
someIntegers = new int[n]; 
// this way we can get different length arrays at runtime 
0

최대 개수의 숫자를 저장할 변수를 추가해야합니다.

int max = 0; 

그럼 당신은 두 개의 생성자를 필요 :

Dataset() { 
    max = 100; 
} 

Dataset(int max) { 
    this.max = max; 
} 

을 그런 다음 입력을받을 때, 당신은 당신이 무엇을하기 전에 당신이 수 제한에 도달 한 경우 확인해야합니다.

System.out.print("Enter the next number(0 to exit): "); 
nextnumber = scanner.nextDouble(); 
if (count < max) { 
    if (nextnumber == 0) { 
     break; 
    } 
    calc.addDatum(nextnumber); 
} 
+0

입력 한 모든 숫자를 저장할 필요없이 최대, 최소, 합계 및 평균을 추적하는 것처럼 보이기 때문에 내 응답에서 배열을 사용하지 않습니다. – NickD

0

위의 코드에는 생성자가 포함되어 있지 않으므로 기본 DataSet() 생성자 만 사용할 수 있습니다. DataSet 클래스에서 요구 사항을 충족시키는 두 생성자를 정의해야합니다. 또한 데이터 집합에 추가 된 숫자를 저장하기위한 컬렉션 유형 (즉, int 배열)을 만들어야합니다 (이는 요구 사항의 일부인 것 같습니다). 당신이 당신의 주요 방법으로 DataSet 클래스의 인스턴스를 만들 때 아래의 코드와 함께, 당신은

DataSet myDataSet = new DataSet(); 

말하여 기본 (100 개) 요소를 작성하거나 요소의 사용자가 지정한 번호와 같은 그것을 만들 수 있습니다

DataSet myDataSet = new DataSet(30); //for thirty elements in the array 

public class DataSet { 

int[] myArray; 
public DataSet() //Zero parameters constructor 
{ 
    //initialize your array to 100 elements here 
    myArray = new int[100]; //the array can hold 100 elements 
} 

public DataSet(int max) //One parameter constructor 
{ 
    //initialize your array to 'max' elements here 
    myArray = new int[max]; //the array can hold max number of elements 
} 

public void AddNum(int num) 
{ 
    //logic to add number to the array here :P 

} 
}