저번에 작업하던 영화 예매 프로그램 중간과정의 마지막 단계인 영화 티켓 예매 파트를 완성했고, 코드가 난잡하게 널려있던 부분을 정리했다.


불필요한 필드 및 메소드는 모두 주석 처리를 했다.


1. 상영관 관리 프로그램 O

2. 영화 상영일정 관리 프로그램 O

3. 영화 티켓 예매 프로그램 O


이로써 완성~


예외처리 할게 널려있지만 일단은 정상적으로 입력시 정확히 작동하는 것을 확인했다.


아래는 각 클래스의 소스코드.


ps. 영화 예매 관리 프로그램에서 예매시 유저를 구분할 수 있는 고유 넘버는 10000으로 시작해서 유저가 추가 될 때마다 +1 씩 고유 넘버가 증가한다.





블로그 이미지

irostub

iro의 잡화상점

,


적당한 과제로 영화 예매 프로그램을 작성하게 되었다.


과정은 1~3단계로 나뉘어져 있고 모든 단계가 개체에 대한 적절한 이해가 필요한 과제였다. 현재는 1~2단계까지 코드를 완성했고, 마지막 제출까지 3단계를 끝마쳐야한다.


영화 예매 프로그램은 파트별로 크게 3가지로 나뉘어져있다.


1. 상영관 관리 프로그램

2. 영화 상영일정 관리 프로그램

3. 영화 티켓 예매 프로그램


각각 기능별로

0- 메인은 MovieReservation 클래스

1- 상영관 관리 프로그램은 Sceen, ScreenManager 클래스

2- 영화 상영일정 관리 프로그램은 Movie, MovieTimetable, TimetableManager 클래스

3- 영화 티켓 예매 프로그램은 Seat, Ticket, TicketManager클래스


를 필요로 한다. 현재는 1, 2 만 구현했으며 내부 메소드 중에 3과 연관 되는 메소드는 틀만 작성했다.


객체를 생성해서 배열을 뒤지는 과정에서 계산을 잘못해서 NullPointException이 엄~청 많이 발생했으나 환기 한번하고 천천히 다시 건드려보니 모두 해결되었다.


무식하게 복사 붙여넣기해서 길어졌던 코드도 중복을 제거하고 최대한 간결하게 정돈했다.


2파트 까지는 만족! 3파트까지 모두 완성되면 최종 편집본으로 다시 한번 글을 작성할 생각이다.


아래는 각 클래스별 코드이다. 코드가 적잖이 기므로 접기.




1. 상영관 관리 프로그램에 대한 Screen, ScreenManager 클래스







2. 영화 상영일정 관리 프로그램 Movie, MovieTimetable, TimetableManager 클래스



블로그 이미지

irostub

iro의 잡화상점

,

import java.util.Scanner;


public class StarDot_While_Back {


public static void main(String[] args) {

// TODO Auto-generated method stub



Scanner firstNum = new Scanner (System.in);

int k = firstNum.nextInt();

int i = k;

int j = i;

while(i>0) {

j = i;

while(j<=i && j>0) {

System.out.print("*");

j--;

}

System.out.println();

i--;

}

}

}



블로그 이미지

irostub

iro의 잡화상점

,

import java.util.Scanner;


public class StarDot_For_Back {


public static void main(String[] args) {

// TODO Auto-generated method stub


Scanner firstNum = new Scanner (System.in);

int k = firstNum.nextInt();

for(int i = k; i > 0 ; i--) {

for(int j = i; j<=i && j>0; j--) {

System.out.print("*");

}

System.out.println();

}

}


}



블로그 이미지

irostub

iro의 잡화상점

,

import java.util.Scanner;


public class StarDot_While {


public static void main(String[] args) {

// TODO Auto-generated method stub


int b = 0, c = 0;

Scanner firstInNum = new Scanner(System.in);

int a = firstInNum.nextInt(); // a = 입력받을 수


if(a>0) {

while(b<a) {

c=0; //while문 초기화 ㅡㅡ

while(c<=b) {

System.out.print("*");

c++;

}

System.out.println();

b++;

}//end while

}//end if

else {

System.out.println("잘못입력하신 것 같습니다. 양의 정수를 입력해주세요.");

}

}


}



블로그 이미지

irostub

iro의 잡화상점

,

import java.util.Scanner;


public class StarDot_For {


public static void main(String[] args) {

// TODO Auto-generated method stub


Scanner firstNum = new Scanner(System.in);

int k=firstNum.nextInt();

for(int i = 0; i < k; i++) {

for(int j = 0; j<=i; j++) {

System.out.println(" ");

System.out.print("*");

}

System.out.println();

}

}


}

블로그 이미지

irostub

iro의 잡화상점

,

import java.util.Scanner;


public class Multiplication_While {


public static void main(String[] args) {

// TODO Auto-generated method stub



int a;

int b;

int c = 1;

Scanner firstNum = new Scanner(System.in);

Scanner secondNum = new Scanner(System.in);

System.out.println("구구단 출력입니다 (다음으로 넘어가시려면 Enter를 눌러주세요)");

String 구구단시작 = firstNum.nextLine();

System.out.println("구구단을 시작할 수를 입력해주세요. (예 : 3단 => 3)");

a = firstNum.nextInt();//시작하는 수

System.out.println("구구단이 끝나는 수를 입력해주세요. (예 : 11까지 => 11)");

b = secondNum.nextInt();//끝나는 수

System.out.println();

while(c<= b) {

System.out.println(a+" * "+c+" = "+a*c);

System.out.println();

c++;

}

}


}



블로그 이미지

irostub

iro의 잡화상점

,

import java.util.Scanner;


public class Multiplication_For {


public static void main(String[] args) {

// TODO Auto-generated method stub


int a;

int b;

Scanner firstNum = new Scanner(System.in);

Scanner secondNum = new Scanner(System.in);

System.out.println("구구단 출력입니다 (다음으로 넘어가시려면 Enter를 눌러주세요)");

String 구구단시작 = firstNum.nextLine();

System.out.println("구구단을 시작할 수를 입력해주세요. (예 : 3단 => 3)");

a = firstNum.nextInt();//시작하는 수

System.out.println("구구단이 끝나는 수를 입력해주세요. (예 : 11까지 => 11)");

b = secondNum.nextInt();//끝나는 수

System.out.println();

for(int c = 1; c<= b; c++) {

System.out.println(a+" * "+c+" = "+a*c);

System.out.println();

}

}


}



블로그 이미지

irostub

iro의 잡화상점

,