JAVA 프로그래밍

문제

TV 리모컨의 입력(전원, 상, 하, 좌, 우)에 따라 TV를 제어하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요 

프로그램의 실행순서 및 실행상태

1  public static void main( String[] args ) {  

3           new TV();       
     ON            OFF        clickPower(), clickUp(), clickDown(), ... (obj01)
  power        channel        volume        clickPower(), clickUp(), ...
                    main()                                                           
    tv            

T1b  public TV() {

T1e  }
     ON     OFF clickPower(), clickUp(), clickDown(), ... (obj01)
  power channel volume clickPower(), clickUp(), ...
                    main()                                                           
    tv            
  ()
  this

2   TV tv = 
                    main()                                                           
    tv

4   do {

5    result = scan.next();
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 전원

6    if ( result.equals( "전원" ) )

7     tv.clickPower();

T2b  public void clickPower() {

TV 전원을 켭니다

T2e  }
     ON  true      OFF  false  clickPower(), clickUp(), clickDown(), ... (obj01)
  power channel   90   volume   10   clickPower(), clickUp(), ...
                    main()                                                           
    tv   (obj01)  
result
  ()
  this

16   } while( result.equals( "전원" ) || result.equals( "상" ) || result.equals( "하" ) || result.equals( "좌" ) || result.equals( "우" ) );

4   do {

5    result = scan.next();
TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : 상

6    if ( result.equals( "전원" ) )

8    else if ( result.equals( "상" ) )

9     tv.clickUp();

T3b  public void clickUp() {

현재 채널은 91번입니다

T3e  }
     ON  true      OFF  false  clickPower(), clickUp(), clickDown(), ... (obj01)
  power  true  channel volume   10   clickPower(), clickUp(), ...
                    main()                                                           
    tv   (obj01)  
result
  ()
  this

16   } while( result.equals( "전원" ) || result.equals( "상" ) || result.equals( "하" ) || result.equals( "좌" ) || result.equals( "우" ) );

4   do {
                             
 ... 

16   } while( result.equals( "전원" ) || result.equals( "상" ) || result.equals( "하" ) || result.equals( "좌" ) || result.equals( "우" ) );

17  }


프로그램 코드

	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 = "";
			
2			TV tv = 
3			        new TV();						 
	
4			do {
				System.out.print( "TV 리모컨의 상, 하, 좌, 우, 전원, 종료 중 하나를 입력하세요 : ");
5				result = scan.next();
				
6				if ( result.equals( "전원" ) )
7					tv.clickPower();
8				else if ( result.equals( "상" ) )
9					tv.clickUp();
10				else if ( result.equals( "하" ) )
11					tv.clickDown();
12				else if ( result.equals( "좌" ) )
13					tv.clickLeft();
14				else if ( result.equals( "우" ) )
15					tv.clickRight();
	
16			} while( result.equals( "전원" ) || result.equals( "상" ) || result.equals( "하" ) || result.equals( "좌" ) || result.equals( "우" ) );
							
17		}
	}
	
	package remoteControl;
	
	public interface RemoteControl
	{
		boolean ON = true, OFF = false;
		void clickPower();
		void clickUp();
		void clickDown();
		void clickLeft();
		void clickRight();
	}

	package remoteControl;
	import java.util.Scanner;
	
	public class TV implements RemoteControl 
	{				
		private boolean power;	 
		private int channel; 
		private int volume;		 
		
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		}
		
		@Override
T3b		public void clickUp() {
			System.out.println( "현재 채널은 " + ( ++this.channel ) + "번입니다" );		 
T3e		}
		
		@Override
T4b		public void clickDown() {
			System.out.println( "현재 채널은 " + ( --this.channel ) + "번입니다" );		 
T4e		}
		
		@Override
T5b		public void clickLeft() {
			System.out.println( "현재 음량은 " + ( --this.volume ) + "입니다" );		 
T5e		}
		
		@Override
T6b		public void clickRight() {
			System.out.println( "현재 음량은 " + ( ++this.volume ) + "입니다" );		 
T6e		}
	}