제가 아주예전에 자바를 들어서 다시 공부좀 할겸 자바 프로그래밍 문제같은거를 찾아서 하던도중
막혀서 아무것도 못하고있네요 제가 뭘 잘못했는지 좀 도와주세요 !
문제가뭐냐면 클래스랑 테스터 클래스를 만들어야하는데
테스터에서 스캐너로 유저한테서 n의 값을 받고 또 그 n 숫자만큼의 시험점수들을 받아야해요
그다음 클래스는
Instance Field: Array of scores, Best grade
Methods:
public void add(double score)
public String findBestGrade()
public String findStudentGrade()
이 모든것들을 충족시켜야한다고 써있네요
그리고 프로그램을 실행할시 (예를들어)
Enter the number of students: 4
Enter 4 scores: 40,55,70,58
output:
Student 1 is 40 and grade is C.
Student 2 is 55 and grade is B.
Student 3 is 70 and grade is A.
Student 4 is 58 and grade is B. 이렇게 출력되어야하는데
제가 쓴코드가 ****************************
public class GradeGiver
{
private int studentNumber;
private int[] vars;
private int best=0;
private String grade;
/**
* Constructor for objects of class GradeGiverTester
*/
public GradeGiver(int numofStd, int[] t)
{
// initialise instance variables
studentNumber = numofStd;
vars = t;
}
public String findBestGrade()
{
best = vars[0];
for (int i = 0; i< studentNumber; i++)
{
if (vars[i] > best)
best = vars[i];
}
return "Error";
}
public String findStudentGrade()
{
for (int i = 0; i< studentNumber; i++)
{
if (vars[i] >= best -10)
grade = "A";
else if (vars[i] >= best -20)
grade = "B";
else if (vars[i] >= best -30)
grade = "C";
else if (vars[i] >= best -40)
grade = "D";
else
grade = "F";
}
return "Error";
}
}
*********************************
*********************************
그리고 테스터 클래스는
public class GradeGiverTester
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter the number of students: ");
int numofStd = input.nextInt();
Scanner input2 = new Scanner(System.in);
int[] var = new int[numofStd];
for(int i=0; i<numofStd; i++)
{
System.out.println("Test scores: ");
var[i] = input2.nextInt();
}
GradeGiver giver = new GradeGiver(numofStd,var);
System.out.println("Best score: " + giver.findBestGrade());
for (int i=0; i<numofStd; i++)
{
System.out.println("Student "+ i + " is " + var[i] + " and grade is " + giver.findStudentGrade());
}
}
}
이렇게 실행하게 되면 스튜던트 숫자와 시험점수는 나오는데 A/B/C/D 는 나오지가 않네요
메인 클래스에있는 2개의 메소드가 잘못된거같은데 도저희 어떻게 고칠지를 모르겟어요 ( 베스트 스코어랑 스튜던트 그레이드)
좀 도와주시면 감사하겠습니다.