영화예매 프로그램< 영화예매 프로그램 >Ⅰ. 프로그램 설계서1. main.cpp? "태극기"라는 객체를 생성하고 초기메뉴를 보여주기 위해서 Run()함수를 호출한다.2. CCinema.cpp? "CCinema.h" : CPlayTimes playTimes[3] -> "태극기"영화는 3회 상영됨? void CCinema::Run(void) : 메뉴 실행 (이 함수만 public)초기메뉴(1.예약 2.예약취소 3.예약상황보기 4.종료)뿐만 아니라 "태극기"의 상영시간 정보까지 한꺼번에 보여준다.? void CCinema::Tae_Register(void) : 예약몇 회 영화를 예약할지에 대한 정보를 입력받아서 playTimes[ ]객체의 Register함수를 호출한다.? void CCinema::Tae_Cancel(void) : 예약취소몇 회 영화를 예약취소할지에 대한 정보를 입력받아서 playTimes[ ]객체의 Cancel함수 를 호출한다.? void CCinema::Tae_Show(void) : 예약상황 보여주기초기메뉴의 "3번 예약상황보기" 외에도 예약이나 예약취소를 하기 전에 좌석상황을 보 여주기 위해 호출된다.3. CPlayTimes.cpp? void CPlayTimes::Register(void) : 각 회의 예약자신이 몇 회 영화를 예약하는지에 대한 정보는 없으며 Tae_Register()함수에서 단지 각 회에 해당하는 Register()함수를 호출해주면 이 함수에서는 예약할 좌석이 남았는지, 올 바른 좌석번호인지 등을 검사하여 예약자의 이름을 입력받고 예약을 수행한다.? void CPlayTimes::Cancel(void) : 각 회의 예약취소Tae_Cancel()함수에서 몇 회 영화를 예약취소할지에 대한 정보를 입력받아 그에 해당하 는 회의 Cancel()함수를 호출해주면 이 함수에서는 예약취소하려는 좌석번호를 입력받아 예약되었던 좌석인지, 올바른 좌석번호인지 등을 검사하여 예약취소를 수행한다.? void CPlayTimes::Show(void) : 각 회의 예약상황 보여주기Tae_Show()함수에서 몇 회 영화의 예약상황을 보려고 하는지에 대한 정보를 입력받아 그 에 해당하는 회의 Show()함수를 호출해주면 이 함수에서는 좌석의 예약유무를 MAX_SEAT (총 좌석 수)만큼 보여준다. 예약이 되지 않은 좌석은 "---"로 표시해주며 예약된 좌석 은 예약자의 이름을 출력해준다. (좌석번호도 함께 출력됨)4. CSeat.cpp? main()함수에서 태극기객체를 생성하면 CSeat()생성자에서 모든 좌석의 name을 "---"로 초기화해준다.? void CSeat::get_name(char *name) : 예약자의 이름을 저장하는 함수? char* CSeat::ret_name() : 예약자의 이름을 보여주는 함수? void CSeat::del_name() : 예약자의 이름을 삭제하는 함수각 좌석의 이름삭제는 name변수의 값을 "---"으로 덮어씀으로써 가능하다.? int CSeat::com_name() : 좌석의 예약유무를 판단하는 함수각 좌석의 예약유무는 name변수의 값이 "---"인지를 비교함으로써 판단가능하다.Ⅱ. 프로그램 소스< main.cpp >#include #include "CCinema.h"void main(){CCinema TaeGukGi;TaeGukGi.Run();}< CCinema.h >#ifndef CCINEMA_H#define CCINEMA_H#include "CPlayTimes.h"class CCinema {CPlayTimes playTimes[3]; // 태극기 3회 상영void Tae_Register(); // 예약 등록void Tae_Cancel(); // 예약 취소void Tae_Show(); // 예약 상황 보여주기public:void Run(void); // 메뉴 실행CCinema() {}~CCinema() {}};#endif< CPlayTimes.h >#ifndef CPLAYTIMES_H#define CPLAYTIMES_H#include "CSeat.h"#define MAX_SEAT 12class CPlayTimes {CSeat seat[MAX_SEAT];int remain_seat;public:void Register(); // 예약void Cancel(); // 예약 취소void Show(int ); // 예약 상황 보여주기CPlayTimes(); // 생성자 함수 정의는 cpp에.~CPlayTimes() {}};#endif< CSeat.h >#ifndef CSEAT_H#define CSEAT_H#include class CSeat {char name[10];public:void get_name(char *); // 예약자 이름 저장하는 함수char* ret_name(); // 예약자 이름 보여주는 함수void del_name(); // 예약자 이름 삭제하는 함수int com_name(); // 이 좌석이 예약된 좌석인지를 판단하는 함수CSeat() {strcpy(name, "---");}~CSeat() {}};#endif< CCinema.cpp >#include #include #include "CCinema.h"void CCinema::Run(void) // 메뉴 보여주고 예약 프로그램 실행{cout < " ┏━━━━ Welcome To Megabox ━━━━┓n";cout < " ┃ ┃n";cout < " ┃★ ★ ★ ★ NOW SHOWING ★ ★ ★ ★┃n";cout < " ┃ ┃n";cout < " ┃ ┏━━ TaeGukGi ━━┓ ┃n";cout < " ┃ ┃ ┃ ┃n";cout < " ┃ ┃ 1회 : 13:00 ┃ ┃n";cout < " ┃ ┃ 2회 : 17:00 ┃ ┃n";cout < " ┃ ┃ 3회 : 20:30 ┃ ┃n";cout < " ┃ ┗━━━━━━━━━┛ ┃n";cout < " ┃ ┃n";cout < " ┃ 1. 예 약 ┃n";cout < " ┃ 2. 예 약 취 소 ┃n";cout < " ┃ 3. 예 약 상 황 보 기 ┃n";cout < " ┃ 4. 종 료 ┃n";cout < " ┗━━━━━━━━━━━━━━━━━━┛n";int i;do{cout < "n◆ 원하는 작업을 선택하세요