문제
TV 리모컨의 입력(전원, 상, 하, 좌, 우)에 따라 TV를 제어하는 문제입니다 이를 해결하는 프로그램을 작성하세요
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 전원
TV 전원을 켭니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 상
현재 채널은 91번입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 하
현재 채널은 90번입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 좌
현재 음량은 9입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 우
현재 음량은 10입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 종료
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 전원
TV 전원을 켭니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 전원
TV 전원을 끕니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 종료
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 전원
TV 전원을 켭니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 상
현재 채널은 91번입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 상
현재 채널은 92번입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 상
현재 채널은 93번입니다
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 종료
알고리즘 설계
프로그램 시작
TV를 제어하는 리모컨 준비
리모컨 입력에 따라 TV 제어
리모컨 전원 선택시 TV 제어
리모컨 상(△) 선택시 TV 제어
리모컨 하(▽) 선택시 TV 제어
리모컨 좌(◁) 선택시 TV 제어
리모컨 우(▷) 선택시 TV 제어
프로그램 종료
TV 클래스
리모컨 전원 선택시 전원을 켜거나 끄기
리모컨 상(△) 선택시 채널을 +1 이동
리모컨 하(▽) 선택시 채널을 -1 이동
리모컨 좌(◁) 선택시 음량을 -1 이동
리모컨 우(▷) 선택시 음량을 +1 이동
// 파일명 : ./Chapter13/TVControl.java
import java.util.Scanner;
import remoteControl.TV;
public class TVControl
{
// 프로그램 시작
1 public static void main( String[] args ) {
Scanner scan = new Scanner( System.in );
String result = "";
// TV를 제어하는 리모컨 준비
2 TV tv =
3 new TV();
// 리모컨 입력에 따라 TV 제어
4 do {
System.out.print( "TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : ");
5 result = scan.next();
// 리모컨 전원 선택시 TV 제어
6 if ( result.equals( "전원" ) )
7 tv.clickPower();
// 리모컨 상(△) 선택시 TV 제어
8 else if ( result.equals( "상" ) )
9 tv.clickUp();
// 리모컨 하(▽) 선택시 TV 제어
10 else if ( result.equals( "하" ) )
11 tv.clickDown();
// 리모컨 좌(◁) 선택시 TV 제어
12 else if ( result.equals( "좌" ) )
13 tv.clickLeft();
// 리모컨 우(▷) 선택시 TV 제어
14 else if ( result.equals( "우" ) )
15 tv.clickRight();
16 } while( result.equals( "전원" ) || result.equals( "상" ) || result.equals( "하" ) || result.equals( "좌" ) || result.equals( "우" ) );
scan.close();
// 프로그램 종료
17 }
}
// 파일명 : ./src/remoteControl/RemoteControl.java
package remoteControl;
// 전원, 상, 하, 좌, 우 버튼이 있는 리모컨
public interface RemoteControl
{
boolean ON = true, OFF = false;
void clickPower();
void clickUp();
void clickDown();
void clickLeft();
void clickRight();
}
// 파일명 : ./src/remoteControl/TV.java
package remoteControl;
import java.util.Scanner;
// TV 클래스
public class TV implements RemoteControl
{
// TV 전원, 채널, 음량 변수
private boolean power;
private int channel;
private int volume;
// TV 생성자로 TV 상태 초기화
T1b public TV() {
this.power = OFF;
this.channel = 90;
this.volume = 10;
T1e }
// 리모컨 전원 선택시 전원을 켜거나 끄기
@Override
T2b public void clickPower() {
if( this.power == OFF ) {
this.power = ON;
System.out.println( "TV 전원을 켭니다" );
}
else {
this.power = OFF;
System.out.println( "TV 전원을 끕니다" );
}
T2e }
// 리모컨 상(△) 선택시 채널을 +1 이동
@Override
T3b public void clickUp() {
System.out.println( "현재 채널은 " + ( ++this.channel ) + "번입니다" );
T3e }
// 리모컨 하(▽) 선택시 채널을 -1 이동
@Override
T4b public void clickDown() {
System.out.println( "현재 채널은 " + ( --this.channel ) + "번입니다" );
T4e }
// 리모컨 좌(◁) 선택시 음량을 -1 이동
@Override
T5b public void clickLeft() {
System.out.println( "현재 음량은 " + ( --this.volume ) + "입니다" );
T5e }
// 리모컨 우(▷) 선택시 음량을 +1 이동
@Override
T6b public void clickRight() {
System.out.println( "현재 음량은 " + ( ++this.volume ) + "입니다" );
T6e }
}
실행 순서 확인