학적부 만들기

Jane·2023년 2월 14일
0

IT 수업 정리

목록 보기
40/124

문제

  1. 다음 조건을 만족하도록 클래스 Person과 Student를 작성하시오.
  • 클래스 Person
  • 필드 : 이름, 나이, 주소 선언
  • 클래스 Student
  • 필드 : 학교명, 학과, 학번, 8개 평균평점을 저장할 배열로 선언
  • 생성자 : 학교명, 학과, 학번 지정
  • 메소드 average() : 8개 학기 평균평점의 평균을 반환
  • 클래스 Person과 Student
  • 프로그램 테스트 프로그램의 결과 : 8개 학기의 평균평점은 표준입력으로 받도록한다.

이름 : 김다정
나이 : 20

주소 : 서울시 관악구
학교 : 동양서울대학교
학과 : 전산정보학과
학번 : 20132222


8학기 학점을 순서대로 입력하세요

1학기 학점 → 3.37
2학기 학점 → 3.89
3학기 학점 → 4.35
4학기 학점 → 3.76
5학기 학점 → 3.89
6학기 학점 → 4.26
7학기 학점 → 4.89
8학기 학점 → 3.89


8학기 총 평균 평점은 4.0375점입니다.

코드

import java.util.Scanner;

class Person {
	protected static String name; // 이름
	protected static int age; // 나이
	protected static String address; // 집주소

	public Person(String name, int age, String address) {
		this.name = name;
		this.age = age;
		this.address = address;
	}

	public void showInfo() {
		System.out.println("이름 : " + name);
		System.out.println("나이 : " + age);
		System.out.println();
		System.out.println("주소 : " + address);
	}
}

class Student extends Person {
	private String schoolname; // 학교이름
	private String major; // 학과
	private int number; // 학번
	private double[] scoreArr = new double[8]; // 평균평점 담을 배열

	public Student(String name, int age, String address, String schoolname, String major, int number) {
		super(name, age, address);
		this.schoolname = schoolname;
		this.major = major;
		this.number = number;
	} // 생성자 함수

	@Override
	public void showInfo() {
		super.showInfo();
		System.out.println("학교 : " + schoolname);
		System.out.println("학과 : " + major);
		System.out.println("학번 : " + number);
		System.out.println("---------------------");
	}
	
	public void inputScore() {
		Scanner sc = new Scanner(System.in);
		System.out.println("학점을 순서대로 입력하세요");
		for (int i = 0; i < scoreArr.length; i++) {
			System.out.print((i + 1) + "학기 학점 : ");
			scoreArr[i] = sc.nextDouble();
		}
	}

	public double getAvg(double[] arr) {
		double avg = 0.0;
		for (int i = 0; i < arr.length; i++) {
			avg += arr[i];
		}
		return avg / 8;
	}

	public void showScore() {
		System.out.println("---------------------");
		System.out.println("평균 평점은 : " + getAvg(scoreArr));
	}
	
	
}

class JavaTest {

	public static void main(String[] args) {
		Student s = new Student("김다정", 20, "서울시 관악구", "동양서울대학교", "전산정보학과", 20132222);

		s.showInfo();
		s.inputScore();
		s.showScore();
	}

}

[Console]
이름 : 김다정
나이 : 20
주소 : 서울시 관악구
학교 : 동양서울대학교
학과 : 전산정보학과
학번 : 20132222


학점을 순서대로 입력하세요
1학기 학점 : 3.37
2학기 학점 : 3.89
3학기 학점 : 4.35
4학기 학점 : 3.76
5학기 학점 : 3.89
6학기 학점 : 4.26
7학기 학점 : 4.89
8학기 학점 : 3.89


평균 평점은 : 4.0375

profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글