본문 바로가기
수업시간 JAVA/문제

인터페이스로 a학원 b학원 시스템같은거 적용시키기

by SEOKIHOUSE 2023. 5. 2.
package practice0501teacher.interfaces;

import java.util.Scanner;

public class TestB implements interfaces {
	@Override
	public void regist(StudentVo student) {
		student.setSno(1);
		student.setName("짱구");

		Subject[] subjects = new Subject[3];
		subjects[0] = new Subject();
		subjects[1] = new Subject();
		subjects[2] = new Subject();

		subjects[0].setScore(100);
		subjects[0].setSubjectName("JAVA");
		subjects[1].setScore(100);
		subjects[1].setSubjectName("Japanese");
		subjects[2].setScore(100);
		subjects[2].setSubjectName("한쿡어");

		Subject s = new Subject();
		s.setScore(10);
		s.setSubjectName("gg");
		subjects[0] = s;

		student.setSubjects(subjects);
		System.out.println(student);
	}

	@Override
	public int getTotal(StudentVo student) {
		int total = 0;
		for (int i = 0; i < student.getSubjects().length; i++) {
			total = total + student.getSubjects()[i].getScore();
		}
		return total;
	}

	@Override
	public double getAvg(int total, StudentVo student) {
		double avg = total / student.getSubjects().length;
		return avg;
	}

	@Override
	public String passOfFail(StudentVo student) {
		String msg = "수료";
		for (int i = 0; i < student.getSubjects().length; i++) {
			if (student.getSubjects()[i].getScore() < 60) {
				msg = "미수료";
				break;
			}
		}
		return msg;
	}
}​

 

package practice0501teacher.interfaces;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Subject {
	private String subjectName;
	private int score;
}​
package practice0501teacher.interfaces;

public class TestA implements interfaces {
	@Override
	public void regist(StudentVo student) {
		student.setSno(1);
		student.setName("홍길동");

		Subject[] subjects = new Subject[2];
		subjects[0] = new Subject();
		subjects[1] = new Subject();

		subjects[0].setScore(100);
		subjects[0].setSubjectName("JAVA");
		subjects[1].setScore(100);
		subjects[1].setSubjectName("Japanese");

		Subject s = new Subject();
		s.setScore(10);
		s.setSubjectName("gg");
		subjects[0] = s;

		student.setSubjects(subjects);
		System.out.println(student);
	}

	@Override
	public int getTotal(StudentVo student) {
		int total = 0;
		for (int i = 0; i < student.getSubjects().length; i++) {
			total = total + student.getSubjects()[i].getScore();
		}
		return total;
	}

	@Override
	public double getAvg(int total, StudentVo student) {
		double avg = total / student.getSubjects().length;
		return avg;
	}

	@Override
	public String passOfFail(StudentVo student) {
		String msg = "수료";
		for (int i = 0; i < student.getSubjects().length; i++) {
			if (student.getSubjects()[i].getScore() < 60) {
				msg = "미수료";
				break;
			}
		}
		return msg;
	}

}
package practice0501teacher.interfaces;

import java.util.Scanner;

public class TotalTest {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		interfaces ifs = null; // 인터페이스 타입존재가능하고
		String ida = "a admin";
		String pwa = "a1234";
		String idb = "b admin";
		String pwb = "b1234";

		System.out.print("로그인하세요 아이디입력");
		String id = sc.nextLine();
		System.out.print("pw입력");
		String pw = sc.nextLine();

		if (id.equals(ida) && pw.equals(pwa)) {
			ifs = new TestA();
		} else if (id.equals(idb) && pw.equals(pwb)) {
			ifs = new TestB();
		}
		StudentVo student = new StudentVo();
		ifs.regist(student);
		// 총점구하기 -getTotal
		int total = ifs.getTotal(student);
		System.out.println("총합" + total);
		// 평균구하고 -getAvg
		double avg = ifs.getAvg(total, student);
		System.out.println("평균" + avg);
		// 수료 미수료 -passOrFail
		String msg = ifs.passOfFail(student);
		System.out.println("수료여부 " + msg);
	}

}
package practice0501teacher.interfaces;

interface interfaces {
	void regist(StudentVo student);
	int getTotal(StudentVo student);
	double getAvg(int total,StudentVo student);
	String passOfFail(StudentVo student);
}
package practice0501teacher.interfaces;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudentVo {
	private int sno;
	private String name;
	private Subject[] subjects;
}