게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금, 스압] 자바 코딩좀 도와주세요
게시물ID : programmer_15633짧은주소 복사하기
작성자 : 이은결
추천 : 0
조회수 : 761회
댓글수 : 5개
등록시간 : 2016/01/27 10:08:46
옵션
  • 본인삭제금지
제가 아주예전에 자바를 들어서 다시 공부좀 할겸 자바 프로그래밍 문제같은거를 찾아서 하던도중 
막혀서 아무것도 못하고있네요 제가 뭘 잘못했는지 좀 도와주세요 !

문제가뭐냐면 클래스랑 테스터 클래스를 만들어야하는데
테스터에서 스캐너로 유저한테서 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개의 메소드가 잘못된거같은데 도저희 어떻게 고칠지를 모르겟어요 ( 베스트 스코어랑 스튜던트 그레이드)

좀 도와주시면 감사하겠습니다.

꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호