문제 2

채널과 전원버튼을 변수로 갖는 Tv클래스가 있다.
이 클래스는 ChannelUp(), ChannelDown(), PowerOff(), PowerOn() 함수가 있다.
채널: 채널은 0~99번까지 존재한다.
전원버튼 On, Off
ChannelUp(): 채널 +1이 된다. 채널이 +1됐다고 출력
ChannelDown(): 채널 -1이 된다. 채널이 -1됐다고 출력
PowerOn(), PowerOff(): 전원 on, off 변경 및 on, off 됐다고 출력

추가조건
함수의 기능이 제대로 실행 안될 시 해당 이유를 출력해야 함
채널을 변경하려면 전원이 먼저 켜져 있어야 한다.
채널변경 시 0번에서 99번 사이를 넘어갈 수는 없다.
Power on, off시 해당 상태와 동일한 기능을 작동불가.
채널변수와 전원버튼은 private생성 후, setter, getter 생성

package practice6;

import java.util.Scanner;
	static void exec(Tv s, String input) {
		// make function
	}

	public static void main(String args[]) {
		Tv sm = new Tv();
		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();

		do {
			exec(sm, input);
			input = sc.nextLine();
		} while (!input.equals("exit"));
	}
}

Tv클래스를 작성 후 옆의 test코드하여 클래스가 제대로 작동하는지 테스트한다.

이 테스트 코드는 사용자로부터 명령어를 입력받고 해당 명령어에 따라 Tv클래스의 함수를 실행하게 된다. 위의 exec함수를 완성하여 테스트를 진행하면 된다.

up: 채널업, down: 채널다운, on: 전원on, off: 전원off
위 명령어는 대소문자 구별없이 입력받을 수 있고 위 명령어를 제외한 나머지 명령어가 입력될 경우 Unknown Error를 출력해주면 된다.

Answer

  • Tv.java
package practice6;

public class Tv {
	private int channel = 0;
	private boolean power = false;

	void setChannel(int channel) {
		this.channel = channel;
	}

	void setPower(boolean power) {
		this.power = power;
	}

	int getChannel() {
		return channel;
	}

	boolean getPower() {
		return power;
	}

	void ChannelUp() {
		if (power == false)
			System.out.println("전원이 먼저 켜져 있어야 합니다.");
		else {
			if (channel >= 0 && channel <= 99) {
				channel++;
				System.out.println("채널이 +1 되었습니다.");
			}
			else {
				System.out.println("채널은 0번에서 99번 사이를 넘어갈 수는 없습니다.");
			}
		}
	}

	void ChannelDown() {
		if (power == false)
			System.out.println("전원이 먼저 켜져 있어야 합니다.");
		else {
			if (channel >= 0 && channel <= 99) {
				channel--;
				System.out.println("채널이 -1 되었습니다.");
			}
			else {
				System.out.println("채널은 0번에서 99번 사이를 넘어갈 수는 없습니다.");
			}
		}
	}

	void PowerOn() {
		power = true;
		System.out.println("전원이 on 되었습니다.");
	}

	void PowerOff() {
		power = false;
		System.out.println("전원이 off 되었습니다.");
	}
}

  • test2.java
package practice6;

import java.util.Scanner;

public class test2 {
	static void exec(Tv s, String input) {
		if (input.equals("up"))
			s.ChannelUp();
		else if (input.equals("down"))
			s.ChannelDown();
		else if (input.equals("on"))
			s.PowerOn();
		else if (input.equals("off"))
			s.PowerOff();
		else
			System.out.println("Unknown Error");
	}

	public static void main(String args[]) {
		Tv sm = new Tv();
		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();

		do {
			exec(sm, input);
			input = sc.nextLine();
		} while (!input.equals("exit"));
	}
}

태그:

카테고리:

업데이트: