JAVA 프로그래밍

문제

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 이동

프로그램 코드

	// 파일명 : ./Chapter12/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( "우" ) );
							 
		// 프로그램 종료 
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		}
	}

실행 순서

 
 					※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다