실습 과제 5 소스


요구사항.
학생정보에 해당하는 클래스를 구현한다.
국어, 영어, 컴퓨터 점수를 double형으로 입력받아 총점과 평균을 구한다.
평균을 구하는 메소드에서 합을 구하는 메소드를 호출하여 사용한다.
메인 메소드에서 학생수를 입력받아 학생 객체 배열을 생성한다.

힌트
평균과 합은 맴버변수에 저장하지 않고 메소드에서 계산하여 반환한다.


import java.io.*;

public class Test002

{

    public static void main(String args[])

    {

        Key key = new Key();

        int i = 0;

 

        System.out.println("성적을 입력 받을 인원 수를 입력해 주세요.");

        i = key.keyMethod(0);

        Stu s[] = new Stu[i]; //배열 선언

        System.out.println(i+" 명의 학생 성적을 입릭 받겠습니다.");

 

        for(int j=0;j<s.length;j++){

            s[j] = new Stu(); //배열의 초기화 작업 안해주면 에러 발생.

 

            System.out.print("이 름 : ");

            s[j].name(key.keyMethod("")); //키보드의 입력을 name메소드로 보냄.

            System.out.print("국 어 점수 : ");

            s[j].kor(key.keyMethod(0.0)); //키보드의 입력을 kor메소드로 보냄.

            System.out.print("영 어 점수 : ");

            s[j].eng(key.keyMethod(0.0)); //키보드의 입력을 eng메소드로 보냄.

            System.out.print("컴퓨터 점수 : ");

            s[j].com(key.keyMethod(0.0)); //키보드의 입력을 com메소드로 보냄.

        }

 

        for(int j=0;j<s.length;j++){

 

            System.out.println("번 호 : "+(j+1));

            s[j].print(); // 학생 기본 정보 출력, 정의된 메소드를 이용해서 실행.

            System.out.println("총 점 : "+s[j].sum()); //메소드를 이용해 계산.

            System.out.println("평 균 : "+s[j].average()); //메소드를 이용해 계산.

 

        }

    }

}

위에 소스를 보면 오버로딩을 사용 했다는 점을 짐작이 가능합니다. 그 부분은 잘 찾아보세요 ~ ^^;

class Stu

{

    private String name;

    private double kor;

    private double eng;

    private double com;

 

    public void name(String n){ //전달 받은 값을 메소드에 저장.

    name = n;

    }

 

    public void kor(double k){ //전달 받은 값을 메소드에 저장.

    kor = k;

    }

 

    public void eng(double e){ //전달 받은 값을 메소드에 저장.

    eng = e;

    }

 

    public void com(double c){ //전달 받은 값을 메소드에 저장.

    com = c;

    }

 

    public double sum(){ //총 합을 반환한다.

    return kor+com+eng;

    }

 

    public double average(){ //평균을 계산 후 반환한다.

    return sum()/3;

    }

 

    public void print(){ //기본 학생 정보를 출력 하는 메소드를 실행.

    System.out.println("이 름 : "+name);

    System.out.println("국 어 : "+kor);

    System.out.println("영 어 : "+eng);

    System.out.println("컴퓨터 : "+com);

    }

 

생성자는 기본 생성자를 이용하기 때문에 쓰지 않았다.

class Key

{

    private String str;

    private double su;

    int su2;

 

// 오버로딩을 이용해서 키보드 입력을 받는다.

    public String keyMethod(String a){

    try{

        BufferedReader br = new BufferedReader

                (new InputStreamReader(System.in));

        this.str = br.readLine();

        }catch(IOException e){}

        return this.str;

    }

 

    public int keyMethod(int a){

    try{

        BufferedReader br = new BufferedReader

                    (new InputStreamReader(System.in));

        this.str = br.readLine();

        this.su2 = Integer.parseInt(this.str);

        }catch(IOException e){}

    return this.su2;

    }

 

    public double keyMethod(double a){

    try{

        BufferedReader br = new BufferedReader

                    (new InputStreamReader(System.in));

        this.str = br.readLine();

        su = Double.parseDouble(this.str);

        }catch(IOException e){}

        return this.su;

    }

}

마지막 클래스는 키보드 입력을 받는 메소드가 존재하는 클래스 입니다.

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 만성피로 | 2008/05/20 23:18 | 프로젝트 일지 | 트랙백 | 덧글(1)

트랙백 주소 : http://maydaisy.egloos.com/tb/367938
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 김교수 at 2008/05/21 00:03
프로그램이 잘 되었네요.^^

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶