Ch4z2
10
2019-05-05 15:25:46
2
145

자바 입력값 저장이 안됩니다!


안녕하십니까. 이제 막 자바를 공부하던 도중 아무리 생각해도 모르겠는 부분이 있어 질문 드립니다.


비행기 예약 프로그램을 만들고 있는데, 첫번째 클래스에서 두번째 클래스에 있는 입력 시스템을 호출하여

사용하고 있는데, 두번째 클래스에서 입력한 부분이 도저히 저장이 되질 않습니다.

입력값이 저장만 된다면 좋을텐데, 이 부분이 막혀 진행하지 못하고 있습니다.

제 짧은 생각으로는 첫번째 클래스에서 호출을 할 때 마다 배열이 초기화되어 그런 것 같기는 합니다만

해결 방법을 모르겠습니다....


부디 자바 무식자를 도와주시면 정말 감사하겠습니다..


아래에 소스 코드 첨부 하겠습니다.



(첫번째 클래스)

import java.util.*;

public class Airline {

	
	public static void main(String[] args) {

		 while(true)
	        {  
		 
		System.out.println("<--1.예약--2.취소--3.현황--4.종료-- >\n");
		System.out.println("> ");
		Scanner s = new Scanner(System.in);
		
		
		
		int selectnum;
	
		Booksys bsys;
		bsys = new Booksys();
		
		selectnum = s.nextInt();
		
		
		if(selectnum==1)       
        {
			bsys.seatbook();//예약 호출		
         }
		
        else if (selectnum==2) 
        {    
        	bsys.cancel();//취소 호출
        }
        else if (selectnum==3) 
        {
        	bsys.view();//현황 보기 호출
        }
        else if (selectnum==4) //종료
            {
                System.out.println("안녕히계십시오");
                return;
            }
        }
        }    



		
		
		}

	





(두번째 클래스)


import java.util.Arrays;
import java.util.Scanner;

public class Booksys {

	
	String[] seat6 = new String[8];//1번비행기
	String[] seat12= new String[8];//2번비행기
	String[] seat18= new String[8];//3번비행기	

	
	Scanner sc = new Scanner(System.in);
	

	int num=0;
	int time=0;
	
	
	String name;
	int dir;
	
		public void seatbook()//예약
		{
			
			
			System.out.println(">예약");
			System.out.println("예약을 원하는 시간대를 입력하세요");
			System.out.println("1.06시  2.12시 3.18시 ");
			Scanner scan = new Scanner(System.in);
			
			int booktime;
			
			booktime = scan.nextInt();
			
			//6시 비행기 선택 시
			if(booktime==1)
			{
			Scanner put = new Scanner(System.in);

		     System.out.println("예약자의 이름을 입력하세요");

		      name = put.next();  
		      
	        Scanner sc = new Scanner(System.in);
	        
	        System.out.print("1번부터 8번까지 원하는 좌석의 번호를 입력하세요. ");
	        
	         dir = sc.nextInt(); 
	    
	         seat6[dir-1]=name;  //배열은 0부터 있으니 좌석번호 -1을 해준다.     

	         
	         for(int i = 0; i < seat6.length; i++) { System.out.println(seat6[i]);}

	
	         System.out.println(""+name+"님,"+booktime+"번 항공기"+dir+ "번 좌석 예약.");
	         
	         //이후 반복		
	        }
			else if (booktime==2) {
				Scanner put = new Scanner(System.in);

			     System.out.println("예약자의 이름을 입력하세요");

			      name = put.next();  
			      

		        Scanner sc = new Scanner(System.in);
		        
		        System.out.print("1번부터 8번까지 원하는 좌석의 번호를 입력하세요. ");
		        
		         dir = sc.nextInt(); 
		    
		         seat12[dir-1]=name;       

		         
		         System.out.println(Arrays.toString(seat12));
		         System.out.println(""+name+"님,"+booktime+"번 항공기"+dir+ "번 좌석 예약.");
			}
			else if (booktime==3) {
				Scanner put = new Scanner(System.in);

			     System.out.println("예약자의 이름을 입력하세요");

			      name = put.next();  

		        Scanner sc = new Scanner(System.in);
		        
		        System.out.print("1번부터 8번까지 원하는 좌석의 번호를 입력하세요. ");
		        
		         dir = sc.nextInt(); 
		    
		         seat18[dir-1]=name;       

		         
		         System.out.println(Arrays.toString(seat18));
		         System.out.println(""+name+"님,"+booktime+"번 항공기"+dir+ "번 좌석 예약.");
			}
 


		    }
	
	
public void cancel()//취소
{ 
	Scanner put = new Scanner(System.in);

    System.out.println("취소할 항공기 번호를 입력하세요");//시간대 별로 선택

     time = put.nextInt();
     
     if(time==1)
		{
    	 Scanner put2 = new Scanner(System.in);
    	 
    	    System.out.println("취소할 좌석의 번호를 입력하세요(1부터 8까지)");

    	     num = put2.nextInt();
    	     //배열에 저장된 좌석번호 속 이름을 지운다.
    	     seat6[num]=null; 
    	     System.out.println("취소되었습니다.");
		}
     //이후 반복.
     else if(time==1)
		{
 	 Scanner put3 = new Scanner(System.in);

 	    System.out.println("취소할 좌석의 번호를 입력하세요(1부터 8까지)");

 	     num = put3.nextInt();
 	     
 	     seat12[num]=null; 
 	    System.out.println("취소되었습니다.");
		}
     else if(time==3)
		{
	 Scanner put4 = new Scanner(System.in);

	    System.out.println("취소할 좌석의 번호를 입력하세요(1부터 8까지)");

	     num = put4.nextInt();
	     
	     seat18[num]=null; 
	     System.out.println("취소되었습니다.");
		}
  
	
	}

public void view()//현황
{
	Scanner put = new Scanner(System.in);
	
	System.out.println("조회할 항공기 번호를 입력하세요");

    time = put.nextInt();
    
    if(time==1)
		{
    	System.out.println(Arrays.toString(seat6)); //현재 항공기에 들어간 이름들 출력
		}
    else if(time==2)
	{
	System.out.println(Arrays.toString(seat12));
	}
    else if(time==3)
   	{
   	System.out.println(Arrays.toString(seat18));
   	}
	}
}



0
0
  • 답변 2

  • jslovers
    1k
    2019-05-05 15:59:18

    저장 단계별로 데이터를 확인해보세요~

    0
  • pporotoss
    11
    2019-05-05 23:11:14
    new Booksys() 하는 부분을 while 문 밖으로 빼보시겠어요? 반복문이 돌때마다 새로운 객체를 생성하고 있어서 저장이 안된다고 느끼시는것 같아요.
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.