본문 바로가기
C언어/C언어 실습

C언어 실습-간단한 영화관 좌석 예매 프로그램/초간단 영화관 예매 프로그램

by 공부가싫다가도좋아 2021. 3. 9.
반응형
#include<stdio.h>
#define NUM 10

//실행 함수 
void run(){
	char ans;
	while(1){
		system("cls");
		printf("\n좌석을 예약하시겠습니까?\n");
		printf("선택(Y or N)>>>");scanf(" %c",&ans); 
		if(ans=='Y'||ans=='y'){
			printf("\n예약을 시작합니다."); 
			select_seat();
		}
		else if(ans=='N'||ans=='n'){
			printf("\n시스템 종료"); 
			
			break;
		}
		else{
			printf("\nY 또는 N만 선택가능.");
			Sleep(700);
			continue;
		}
		
		
}//while(1)
}//void run()

//좌석 고르기 함수 
void select_seat(){
	int num=0,select,i,j;  //인원수,자리번호,변수  
	int cnt=0; //인원수 카운트  
	char ans;
	
	int array[NUM]=	{0};
	
	
	//좌석 현황  ,좌석 예매  
	while(1){
		system("cls");
		
		//영화관 좌석 다 찼을때. 좌석은 10개만 있음. 
		if(cnt==10){

			for(i=3;i>0;i--){
				printf("\n남는 좌석이 없습니다. \n다른 영화를 예매해주세요.\n");
				printf("초기화면으로...(%d)",i);
				Sleep(600);
				system("cls");	
			}
			break;	
			
		}//	if(cnt=10)
		
		else{
	
			printf("\n인원수를 선택해주세요.");
			printf("\n인원수>>>");scanf("%d",&num); 
		
			if(num<=10-cnt){
				if(num>0&&num<=10){
				//좌석 보여줌. 0은 공석, 1은 예약석. 
					for(j=0;j<num;j++){
						printf("\n-------------------------------------------------\n");
						printf("\n좌석 현황:") ;
						for(i=0;i<NUM;i++){
							printf("%3d",array[i]);
								}
						printf("\n");
						printf("좌석 번호:") ;
						for(i=0;i<NUM;i++){
							printf("%3d",i+1);
								}
						printf("\n"); 
						printf("\n-------------------------------------------------\n");
		
		
						printf("\n좌석을 선택하세요(%d)",j+1);
						printf("\n좌석 선택>>>");scanf("%d",&select);
						system("cls");
						if(select>0&&select<=10){
							if(array[select-1]==0){ 
								for(i=0;i<6;i++){
									
									printf("예약 진행중... (%d/5)",	i);
									Sleep(300);
									system("cls");
									}
			
								printf("\n%d번 자리 예약 완료하였습니다.",select);
								array[select-1]=1; 
								cnt++;
								Sleep(700);
			
								system("cls");
			
							}
							else{
								j-=1;
								printf("\n이미 예약된 좌석 입니다."); 
								Sleep(700);
								}
			
							}//if(select>0&&select<=10)
		
						else{
							printf("\n1~10번 자리만 선택해 주세요.");
							Sleep(700);
							}
						
		
						system("cls");
								}
						
		
					system("cls");
					printf("\n계속 좌석을 선택하시겠습니까?"); 
					printf("선택(Y or N)>>>");scanf(" %c",&ans); 
					if(ans=='Y'||ans=='y'){
						continue;
						}
					else if(ans=='N'||ans=='n'){
						printf("\n처음으로 돌아갑니다."); 
						break;
							}
						
		}//if(num>0&&num<=10)
				else{
					printf("영화관은 총 10자리 까지밖에 없습니다. ");
					}
	
	}//if(num<=10-cnt)
			//인원수>남은 좌석수 일때
			else{
				printf("\n인원수 만큼 남는 자리가 없습니다.");
				Sleep(700); 
	}
		
		
		}//else
	
	}
	
}

//메인함수
int main(void){
	run();	
	return 0;
}
반응형

댓글