2014-11-17 2 views
-2

나는 내가 만드는 다음으로 그들이 배열을 원하는 크기를 사용자에게 문의하려면 다음 방법사용 방법 무효 방법

을 사용하고있는 다음과 같은 정보를

Enter size of array: 3 
Enter student name: jane doe 
Enter student id number: 14234567 
Enter student name: john doe 
Enter student id number: 12345678 
Enter student name: peter griffin 
Enter student id number: 14238251 
Array Contents 
jane doe 14234567 
john doe 12345678 
peter griffin 
14238251 

를 표시해야 배열 배열 지정된 크기의 학생.

public static Student[] createArray() 

어레이 내에 저장된 각각의 객체 의 입력에 명과 ID 번호를 사용자에게 물어 배열을 채우는 디스플레이에

public static void populateArray(Student[] array) 

어레이의 내용

public static void displayArray(Student[] array) 

이것은 내가 지금까지 가지고있는 것이다.

class Student { 

    //private instances 
    private String name = "unassigned"; 
    private long idNumber = 0; 

    //Default constructor 
    public Student() { 
    name = "Not Given"; 
    idNumber = 0; 
    } 

    //Constructs a new Student with passed name and age parameters. 
    public Student(String studentName, long studentIdNumber) { 
    name = studentName; 
    idNumber = studentIdNumber; 
    } 

    //Returns the name of this student. 
    public String getName() { 
     return name; 
    } 

    // Returns the idNumber of this person. 
    public long getIdNumber() { 
     return idNumber; 
    }  

    //Sets the name of this student. 
    public void setName(String studentName) { 
     name = studentName; 
    } 

    //Sets the idNumber of this student. 
    public void setIdNumber(long studentIdNumber) { 
     idNumber = studentIdNumber; 
    } 


} // end class 

import java.util.Scanner; 

public class StudentTest { 

    static int array; 

    //create method createArray 
    public static Student[] createArray() { 

     Scanner int_input = new Scanner(System.in); 

     //user enters size of array   
     System.out.print("Enter Size of Array: "); 
     array = int_input.nextInt(); 

     //create array 
     Student[] array = new Student[0];     
     return array;//return array 

    }//end method 

    //create method populateArray 
    public static void populateArray(Student[] array) { 

     try (Scanner string_input = new Scanner(System.in); 
      Scanner long_input = new Scanner(System.in);) 
     {    
      for (int i = 0; i < 3; i++) { 
       Student arrays = new Student(); 

       //set name 
       System.out.println("Enter Student Name: "); 
       arrays.setName(string_input.nextLine()); 

       //set ID number 
       System.out.println("Enter Student ID Number: "); 
       arrays.setIdNumber(long_input.nextLong()); 

       System.out.println(); 

      }//end for loop 
     }//end try loop        
    }//end method 

    //create method display Array 
    public static void displayArray(Student[] array){ 

     System.out.println("Array Contents"); 
     System.out.println(); 

    }//end method 

    public static void main(String [] args){ 

     //display createArray method 
     System.out.println(createArray()); 

     //display populateArray method 
     System.out.println(); 

     //display array contents 
     System.out.println(); 

    }//end main method 
}//end class 

내 질문에 내가 나에게 그것으로 데이터를 입력하고 다음을 표시 할 수있는 populateArray 방법을 얻는 방법이다? displayArray 메서드를 표시하려면? 나는 여러 가지 일을 시도했지만 그 사실을 알 수는 없다.

+0

여기에 가능한 오타가 있습니다. Student [] array = new Student [0]; 나는 0이 실제로 정수형 변수 인 "배열"이라고 생각한다. 즉, static int 및 Student [] 배열에 변수 이름 배열을 다시 사용한다고 가정합니다. 일반적으로, "array"라는 단어를 변수 이름으로 사용하지 말 것을 권장합니다. '학생'이나 '학생'과 같은 것이 더 적합 할 것입니다. – Shark

+1

'Student' 클래스에 이름과 ID가있는 문자열을 반환하는 ToString 메서드를 만듭니다. 그런 다음'Student []'배열을 반복하고 각 객체에서'toString'을 호출하면됩니다. 코드에 대한 기본적인 문제가 많습니다. 교수님/조교/교사 ('createArray'는 입력을 요청한 후 버리고 멀리 버리거나 변수 이름을 복제하는 등 ...)를해야합니다. 'Student' 객체는 실제로 괜찮아 보입니다.'StudentTest'는 다소 재앙입니다. – tnw

답변

0

논리에 따라 몇 가지 사항을 고쳐야한다. createArray에서

public static void main(String [] args) { 
    // create array of size specified by user 
    Student[] students = createArray(); 

    // populate this array with data from user 
    populateArray(students); 

    // finally, display array contents 
    displayArray(students); 

}//end main method 

만들고 올바른 크기의 배열을 반환 : main 시작하면, 사용자의 데이터로 전달 된 배열을 수정해야합니다 populateArray에서

// read user input as arraySize 
return new Student[arraySize]; 

을 예 :

for (int i = 0; i < 3; i++) { 
    Student student = new Student(); // new student 

    //set name 
    System.out.println("Enter Student Name: "); 
    student.setName(scanner.nextLine()); 

    //set ID number 
    System.out.println("Enter Student ID Number: "); 
    student.setIdNumber(scanner.nextLong()); 

    inputArray[i] = student; // put new student into array passed to the method 

}//end for loop 

마지막으로 displayArray에서 항목을 반복하고 원하는 형식으로 인쇄하십시오.

public static void displayArray(Student[] students){ 

    for (Student s : students) { 
     System.out.println(String.format("Name = %s, id = %d", s.getName(), s.getIdNumber()); 
    } 
}//end method 

물론이 간단한 기능을 구현하는 데 3 가지 방법이 필요하지 않지만 작동해야합니다.