코딩 이야기

[C언어] 1차원 배열로 영화관 예약시스템을 구현해보자

고주망고 2021. 7. 29. 08:21

문제: 1차원 배열로 된 영화관을 예약해보자

(다음 포스팅은 2차원 배열로 해보겠습니다)

조건1: 사용자에게 몇명이 함께왔는지 물어보고 같이 온 사람들도 예약하기

조건2: 이미 예약된 자리를 선택할시 다시 선택하게 하기


실습 예제1
실습 예제2
실습 예제3

 

실습 예제4


 

 

답안:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

void main() {
    srand(time(NULL));
    int seat[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int book[10] = { 0 };
    char ch;
    int select;
    int person;
    int count = 0;

    printf("영화관에 오신것을 환영합니다\n\n");
    
    printf("예약을 하시겠습니까(yes=Y, no=N) ");
    scanf_s("%c", &ch);
    if (ch == 'N') {
        printf("안녕히 가세요");
    }
    else if (ch == 'Y') {
        printf("저희 영화관을 찾아주셔서 감사합니다\n");
        printf("몇명에서 오셨습니까?");
        scanf_s("%d", &person);


        while (1) {
            printf("자리를 선택해주세요\n      자리:");
            for (int i = 0; i < 10; i++) {
                printf("%3d", seat[i]);
            }
            printf("\n 예약 여부:");
            for (int i = 0; i < 10; i++) {
                printf("%3d", book[i]);
            }
            printf("\n");


            if (count == person) {
                printf("해당 영화의 상영관은:%d관입니다", 1+rand() % 6);
                break;
            }
            printf("몇번째 좌석을 예약하시겠습니까 ?");
            scanf("%d", &select);

            if (book[select - 1] == 0) {
                printf("==============================================\n");
                printf("%d 자리가 예약되었습니다\n", select);
                book[select - 1] = 1;
                count++;
                printf("==============================================\n");
            }
            else {//이미 book[select-1]==1인 경우(예약이 되어있는 경우)
                printf("==============================================\n");
                printf("이미 예약이 되어있는 자리입니다\n");
                printf("다른 자리를 예약해주세요\n");
                printf("==============================================\n");
                continue;
            }
        }
    }
    else {
        printf("잘못된 문자를 입력하셨습니다");
    }
    
}

 

 

다음 포스팅은 2차원 배열로 해보겠습니다