#include <stdio.h> #include <windows.h> #include <stdlib.h> #include <conio.h> #include <time.h>
void SYSTEM(); void VIEW_SEAT(int chain[7][9]); void SEAT(int chain[7][9], int width, int height); void EXIT(int chain[7][9], int width, int height);
main(){ srand(time(NULL)); printf("□□□□□□□□□□□□□□□□□□\n□ 좌석 예약 시스템 ver0.1 □\n□\t\t\t\t □\n□ Press any key to continue □\n□\t\t\t\t □\n□\t\t\t\t □\n□\t\t\t\t □\n□□□□□□□□□□□□□□□□□□\n"); getch(); system("cls"); SYSTEM();
} void SYSTEM(){ int i, j, select, width=0, height=0; int chain[7][9]={0};
for(i=1;i<=6;i++) for(j=1;j<=8;j++) chain[i][j]=rand()%2;
for(i=1;i<=6;i++){ chain[i][3]=2; chain[i][6]=2; }
while(1){ VIEW_SEAT(chain);
printf("\n1. 예약하기\n\n2.퇴실하기\n\n3. 종료\n\n번호 입력 후Enter>"); scanf("%d", &select); if(select==1){ SEAT(chain, width, height); } else if(select==2){ EXIT(chain, width, height); } else if(select==3){ break; } else{ system("cls"); printf("유효한 번호를 입력하세요.\n"); } } } void VIEW_SEAT(int chain[7][9]){
int width, height;
printf("빈 좌석 : □\n자리 있음 : ■\n\n"); printf(" 1 2 3 4 5 6\n"); for(height=1;height<=6;height++){ for(width=1;width<=8;width++){ if(chain[height][width]==0) printf("□"); else if(chain[height][width]==1) printf("■"); else if(chain[height][width]==2) printf(" "); }printf("\n"); }
}
void SEAT(int chain[7][9], int width, int height){ int cnt; while(1){ system("cls"); VIEW_SEAT(chain);
printf("\n예약할 자리의 줄과 번호를 입력하시고 Enter\nex)3번째 줄 6번째 자리 : 3 6\n"); scanf("%d %d", &height, &width);
//---------------------------------------범위 체크------------------------------------------------ if(height>6 || width>6){ printf("\n범위를 넘어섰습니다. 다시 입력하세요. 아무 키나 누르면 다시 입력할 수 있습니다.\n\n"); getch(); } else if(height<=6 || width<=6){ break; } } //---------------------------------------범위 체크------------------------------------------------ for(cnt=1;cnt<=2;cnt++){ if(width==cnt){ if(chain[height][width]==1){ system("cls"); VIEW_SEAT(chain); printf("\n이미 예약되어 있는 좌석입니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } } }
if(width==3){ width+=1; if(chain[height][width]==1){ system("cls"); VIEW_SEAT(chain); printf("\n이미 예약되어 있는 좌석입니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else{ chain[height][width]=1; width-=1; } } else if(width==4){ width+=1; if(chain[height][width]==1){ system("cls"); VIEW_SEAT(chain); printf("\n이미 예약되어 있는 좌석입니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else chain[height][width]=1; } else if(width==5){ width+=2; if(chain[height][width]==1){ system("cls"); VIEW_SEAT(chain); printf("\n이미 예약되어 있는 좌석입니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else chain[height][width]=1; } else if(width==6){ width+=2; if(chain[height][width]==1){ system("cls"); VIEW_SEAT(chain); printf("\n이미 예약되어 있는 좌석입니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else chain[height][width]=1; } else chain[height][width]=1; system("cls");
}
void EXIT(int chain[7][9], int width, int height){ int cnt; while(1){ system("cls"); VIEW_SEAT(chain); printf("\n예약을 취소할 자리의 줄과 번호를 입력하시고 Enter\nex)3번째 줄 6번째 자리 : 3 6\n"); scanf("%d %d", &height, &width);
//---------------------------------------범위 체크------------------------------------------------ if(height>6 || width>6){ printf("\n범위를 넘어섰습니다. 다시 입력하세요. 아무 키나 누르면 다시 입력할 수 있습니다.\n\n"); getch(); } else if(height<=6 || width<=6){ break; } } //---------------------------------------범위 체크------------------------------------------------ for(cnt=1;cnt<=2;cnt++){ if(width==cnt){ if(chain[height][width]==1){ system("cls"); chain[height][width]=0; VIEW_SEAT(chain); printf("\n예약 취소가 완료되었습니다. 아무 키나 누르면 하위 메뉴로 넘어갑니다.\n\n"); getch(); } else if(chain[height][width]==0){ printf("\n자리가 없는 곳입니다. 아무 키나 누르면 하위 메뉴로 넘어갑니다.\n\n"); getch(); } } }
if(width==3){ width+=1; if(chain[height][width]==1){ system("cls"); chain[height][width]=0; VIEW_SEAT(chain); printf("\n예약 취소가 완료되었습니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else if(chain[height][width]==0){ printf("\n자리가 없는 곳입니다. 아무 키나 누르면 하위 메뉴로 넘어갑니다.\n\n"); getch(); } width-=1; } if(width==4){ width+=1; if(chain[height][width]==1){ system("cls"); chain[height][width]=0; VIEW_SEAT(chain); printf("\n예약 취소가 완료되었습니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else if(chain[height][width]==0){ printf("\n자리가 없는 곳입니다. 아무 키나 누르면 하위 메뉴로 넘어갑니다.\n\n"); getch(); } width=4; }
if(width==5){ width+=2; if(chain[height][width]==1){ system("cls"); chain[height][width]=0; VIEW_SEAT(chain); printf("\n예약 취소가 완료되었습니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else if(chain[height][width]==0){ printf("\n자리가 없는 곳입니다. 아무 키나 누르면 하위 메뉴로 넘어갑니다.\n\n"); getch(); } width-=2; }
if(width==6){ width+=2; if(chain[height][width]==1){ system("cls"); chain[height][width]=0; VIEW_SEAT(chain); printf("\n예약 취소가 완료되었습니다. 아무 키나 누르면 다시 시작합니다.\n\n"); getch(); } else if(chain[height][width]==0){ printf("\n자리가 없는 곳입니다. 아무 키나 누르면 하위 메뉴로 넘어갑니다.\n\n"); getch(); } } system("cls"); } |