반응형

 

문제

 

package kr.or.ddit.homework.home15;

public class HomeWork15 {
	public static void main(String[] args) {
		System.out.println("전화 상담의 분배 방식 선택.");
		System.out.println("R: RoundRobn");
		System.out.println("L: LeastJob");
		System.out.println("P: PriorityAllocation");
		System.out.println("선택 >>");
		/*
		 *  Schedular 클래스.
		 *  getNextCall(); 
		 *  sendCallToAgent();
		 *  
		 *  RoundRobn, LeastJob, PriorityAllocation 클래스는 각각 
		 *  Schedular 클래스를 상속  받기.
		 *  
		 *  PriorityAllocation
		 *   getNextCall
		 *   -> 우선 순위가 높은 상담전화를 대기열에서 가져옴.
		 *   sendCallToAgent
		 *   -> 업무 스킬이 가장 우수한 상담원에게 상담전화를 분배.
		 *   
		 *  RoundRobn
		 *   getNextCall
		 *   -> 상담전화를 대기열에서 차례대로 가져옴.
		 *   sendCallToAgent
		 *   -> 차례대로 상담원에게 상담전화를 분배.
		 *   
		 *  LeastJob
		 *   getNextCall
		 *   -> 상담전화를 대기열에서 차례대로 가져옴.
		 *   sendCallToAgent
		 *   -> 대기열이 가장 짧은 상담원에게 상담전화를 분배.
		 */
		Schedular s ;
		s.getNextCall(); 
		s.sendCallToAgent();
		
	}
}

 

 

 

정답

 

package kr.or.ddit.homework.HomeWork15;

public class Schedular {
	
	public void getNextCall() {
	}
	
	public void sendCallToAgent() {
	}
}

 

package kr.or.ddit.homework.HomeWork15;

public class PriorityAllocation extends Schedular{
	@Override
	public void getNextCall() {
		System.out.println("우선 순위가 높은 상담전화를 대기열에서 가져옴");
	}
	
	@Override
	public void sendCallToAgent() {
		System.out.println("업무 스킬이 가장 우수한 상담원에게 상담전화를 분배");
	}
}

 

package kr.or.ddit.homework.HomeWork15;

public class RoundRobn extends Schedular{
	@Override
	public void getNextCall() {
		System.out.println("상담전화를 대기열에서 차례대로 가져옴");
	}
	
	@Override
	public void sendCallToAgent() {
		System.out.println("차례대로 상담원에게 상담전화를 분배");
	}
}

 

package kr.or.ddit.homework.HomeWork15;

public class LeastJob extends Schedular{
	@Override
	public void getNextCall() {
		System.out.println("상담전화를 대기열에서 차례대로 가져옴");
	}
	
	@Override
	public void sendCallToAgent() {
		System.out.println("대기열이 가장 짧은 상담원에게 상담전화를 분배");
	}
}

 

package kr.or.ddit.homework.HomeWork15;

import java.util.Scanner;

public class HomeWork15 {
	public static void main(String[] args) {
		System.out.println("전화 상담의 분배 방식 선택.");
		System.out.println("R: RoundRobn");
		System.out.println("L: LeastJob");
		System.out.println("P: PriorityAllocation");
		System.out.println("선택 >>");
		/*
		 *  Schedular 클래스.
		 *  getNextCall(); 
		 *  sendCallToAgent();
		 *  
		 *  RoundRobn, LeastJob, PriorityAllocation 클래스는 각각 
		 *  Schedular 클래스를 상속  받기.
		 *  
		 *  PriorityAllocation
		 *   getNextCall
		 *   -> 우선 순위가 높은 상담전화를 대기열에서 가져옴.
		 *   sendCallToAgent
		 *   -> 업무 스킬이 가장 우수한 상담원에게 상담전화를 분배.
		 *   
		 *  RoundRobn
		 *   getNextCall
		 *   -> 상담전화를 대기열에서 차례대로 가져옴.
		 *   sendCallToAgent
		 *   -> 차례대로 상담원에게 상담전화를 분배.
		 *   
		 *  LeastJob
		 *   getNextCall
		 *   -> 상담전화를 대기열에서 차례대로 가져옴.
		 *   sendCallToAgent
		 *   -> 대기열이 가장 짧은 상담원에게 상담전화를 분배.
		 */
		Scanner sc = new Scanner(System.in);
		String c = sc.next();
		
		if(c.equalsIgnoreCase("R")) {
			Schedular s = new RoundRobn();
			s.getNextCall(); 
			s.sendCallToAgent();
		} else if(c.equalsIgnoreCase("L")) {
			Schedular s = new LeastJob();
			s.getNextCall(); 
			s.sendCallToAgent();
		} else if(c.equalsIgnoreCase("P")) {
			Schedular s = new PriorityAllocation();
			s.getNextCall(); 
			s.sendCallToAgent();
		} else {
			System.out.println("잘못 입력하셨습니다.");
		}
	}
}

 

결과 화면1

 

 

반응형