JAVA 프로그래밍

문제

아메리카노, 라떼, 에스프레소를 주문받아 영수증을 출력하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요 

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

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

3                       new Coffee( "아메리카노", 3500 ), 

C1b  public Coffee( String name, int cost ) {

C1e  }

4                       new Coffee( "라      떼", 4000 ), 

C1b  public Coffee( String name, int cost ) {

C1e  }

5                       new Coffee( "에스프레소", 3000 )

C1b  public Coffee( String name, int cost ) {

C1e  }

2   Coffee[] coffee = { 
       total         name 아메리카노 cost  3500  count  0  add(),toString(),... (obj01)
       total         name 라      떼 cost  4000  count  0  add(),toString(),... (obj02)
       total      0  name 에스프레소 cost  3000  count  0  add(),toString(),... (obj03)
                    main()                                                                  
coffee[0]
      [1]
      [2]

6   for( int order = scan.nextInt(); ( order == 1 ) || ( order == 2 ) || ( order == 3 ); order = scan.nextInt() ) {
아메리카노(1), 라떼(2), 에스프레소(3) 중 하나를 선택하세요: 1

7    coffee[ order - 1 ].add();

C2b  public void add() {

C2e  }
       total         name 아메리카노 cost  3500  count add(),toString(),... (obj01)
       total         name 라      떼 cost  4000  count add(),toString(),... (obj02)
       total name 에스프레소 cost  3000  count add(),toString(),... (obj03)
                    main()                                                                  
coffee[0]   (obj01)  
      [1]   (obj02)  
      [2]   (obj03)  
    order      1     
()
     this

6   for( int order = scan.nextInt(); ( order == 1 ) || ( order == 2 ) || ( order == 3 ); order = scan.nextInt() ) {
아메리카노(1), 라떼(2), 에스프레소(3) 중 하나를 선택하세요: 2

7    coffee[ order - 1 ].add();

C2b  public void add() {

C2e  }
       total         name 아메리카노 cost  3500  count add(),toString(),... (obj01)
       total         name 라      떼 cost  4000  count add(),toString(),... (obj02)
       total name 에스프레소 cost  3000  count add(),toString(),... (obj03)
                    main()                                                                  
coffee[0]   (obj01)  
      [1]   (obj02)  
      [2]   (obj03)  
    order      2     
()
     this

6   for( int order = scan.nextInt(); ( order == 1 ) || ( order == 2 ) || ( order == 3 ); order = scan.nextInt() ) {
아메리카노(1), 라떼(2), 에스프레소(3) 중 하나를 선택하세요: 3

7    coffee[ order - 1 ].add();

C2b  public void add() {

C2e  }
       total         name 아메리카노 cost  3500  count add(),toString(),... (obj01)
       total         name 라      떼 cost  4000  count add(),toString(),... (obj02)
       total name 에스프레소 cost  3000  count add(),toString(),... (obj03)
                    main()                                                                  
coffee[0]   (obj01)  
      [1]   (obj02)  
      [2]   (obj03)  
    order      3     
()
     this

6   for( int order = scan.nextInt(); ( order == 1 ) || ( order == 2 ) || ( order == 3 ); order = scan.nextInt() ) {
아메리카노(1), 라떼(2), 에스프레소(3) 중 하나를 선택하세요: 4


항 목 단가 개수
-----------------------

8   for( Coffee item : coffee ) 

10                      item );

C3b  public String toString() {

C3e  }

9    System.out.print(
아메리카노   3500   1

8   for( Coffee item : coffee ) 

10                      item );

C3b  public String toString() {

C3e  }

9    System.out.print(
라      떼   4000   1

8   for( Coffee item : coffee ) 

10                      item );

C3b  public String toString() {

C3e  }

9    System.out.print(
에스프레소   3000   1

8   for( Coffee item : coffee ) 

12                       + Coffee.total() + "원" );      

C4b  public static int total() {

C4e  }

11   System.out.println( "-----------------------\n합      계   " 
-----------------------
합 계 10500원

13  }


프로그램 코드

	import java.util.Scanner;
	
	class Coffee
	{
		private static int total  = 0;	
		private String name;
		private int cost;
		private int count;
		
C1b		public Coffee( String name, int cost ) {
			this.name = name;
			this.cost = cost;
			this.count = 0;
C1e		}
	
C2b		public void add() {
			this.count++;
			this.total += this.cost;
C2e		}
	
C3b		public String toString() {
			if( this.count == 0 )
				return "";
			else	
				return this.name + "   " + this.cost + "   " + this.count + "\n";
C3e		}
		
C4b		public static int total() {
			return total;
C4e		}
	}
	
	public class CoffeeOrder
	{
1		public static void main (String[] args ) {	
			Scanner scan = new Scanner( System.in );
2			Coffee[] coffee = { 
3			                    new Coffee( "아메리카노", 3500 ), 
4			                    new Coffee( "라      떼", 4000 ), 
5			                    new Coffee( "에스프레소", 3000 )
			                   };
			                   
			System.out.print( "아메리카노(1), 라떼(2), 에스프레소(3) 중 하나를 선택하세요: " );
6			for( int order = scan.nextInt(); ( order == 1 ) || ( order == 2 ) || ( order == 3 ); order = scan.nextInt() ) {
7				coffee[ order - 1 ].add();
				System.out.print( "아메리카노(1), 라떼(2), 에스프레소(3) 중 하나를 선택하세요: " );
			}
			
			System.out.println( "\n항      목   단가  개수\n-----------------------" );
8			for( Coffee item : coffee ) 
9				System.out.print(
10				                  item );
11			System.out.println( "-----------------------\n합      계   " 
12			                    + Coffee.total() + "원" ); 				 
			scan.close();
13		}
	}