저는 학생들이 퀴즈 점수를 받도록하는 수업을 만들고 있습니다. 여기에 사양이 있습니다 : 생성자는 입니다. 입력 매개 변수 길이를 사용하여 int 유형 배열의 인스턴스를 만듭니다. 배열의 각 요소는 -1로 초기화됩니다. b. 개수는 0으로 설정됩니다. 배열의 길이는 아니지만 유효한 점수의 수입니다. 즉, 스코어는 부분적으로 채워진 배열이며, 카운트는 유효한 점수의 END 위치로 사용되는 입니다. c. 두 번째 입력 매개 변수로 이름을 설정하십시오.배열이 가득 찰 때까지 값을 계속 입력 하시겠습니까?
add 메소드에 문제가 있습니다. 나는 학생들이 몇 개의 퀴즈를 뽑을 지에 대한 크기를 입력해야하고 배열이 가득 찰 때까지 퀴즈마다 점수를 더해야합니다.
예 : 퀴즈의 크기를 3으로 입력하면 3 가지 점수를 추가 할 수 있지만 3을 초과하면 "배열이 꽉 찼습니다."와 같은 메시지가 표시됩니다 _____ 추가 할 수 없습니다 ".
여기 내 클래스에 대한 지금까지이 작업은 다음과 같습니다
public class Quiz {
private static int [] scores;
private int count;
private static String name;
public Quiz (int[] scores, int count, String name){
int size=0;
scores=new int [size];
count=0;
name=" ";
}
public void addScores(int [] scores){
int size=0;
scores=new int [size];
for(int i=0; i<size;i++)
if(i<size)
System.out.println(scores[i]);
else
System.out.println("Array is full! the value"+ " " + scores + " "+ "cannot be added.");
}
여기에 테스트 드라이버 코드의 일부 : 당신의 addScores
방법의 코드에서
Scanner in = new Scanner (System.in);
do {
System.out.println("\nPlease enter a command or type ?");
String choice;
choice = in.next().toLowerCase();
command = choice.charAt(0);
switch (command) {
case 'n':
System.out.println("[Create a new data]");
System.out.println("[Input the size of quizzes]:"+ " ");
int size=in.nextInt();
String linebreak = in.nextLine();
System.out.println("[Input the name of student]:"+ " ");
String name=in.nextLine();
break;
case 'a':
System.out.println("a [Add a score]:"+ " ");{
int i=0;
i=in.nextInt();
break;
}
}
왜이 생성자'public quiz (int [] scores, int count, String name)'는 일부 인수가 필요합니까? 다음 일 :'scores = new int [size];'...'size'는'0'으로 설정되었으므로'0' 항목을 허용합니다 ...별로 유용하지 않습니다, 그렇죠? 그리고 마지막으로 (현재) : 새로운 배열을 만드는 대신에'addScores' 메소드에서 기존의 배열을 사용하는 것이 더 합리적이지 않습니까? – Tom
두 가지 관찰 : 1) 생성자 인수 중 하나에 필드를 초기화하는 매우 일반적인 관용구를 채택하는 경우 생성자의 일부 행을 'this.count = count;'와 비슷하게 변경하려고합니다. –
2)'name '이나'scores'가 정적 인 것을 원하지 않을 것입니다. 그들은 분명히 개별적인'Quiz' 인스턴스에 속합니다! 그렇지 않으면 두 번째 퀴즈가 코드의 다른 곳에서 만들어진 경우 갑자기 첫 번째 퀴즈의 이름과 점수가 업데이트됩니다. 그것은 객체를 가지고있는 목적을 모두 무효로합니다 ... –