반응형
숙박 관리 프로그램 구현하기
<입력 및 출력 형식> == Main Menu == 1. 숙박 2. 퇴실 3. 객실현황 4, 작업종료 ============= menu = 1 투숙할 호실 = 2 투숙객 이름 = aaa menu = 2 퇴실할 호실 = 3 menu = 3 0번방: kkk 1번방: 2번방: aaa 3번방: ccc |
<처리 조건> 1. 일차열 배열을 선언하여 투숙객의 이름을 담는다. 2. 투숙할 호실은 배열의 인덱스를 활용한다. 3. 존재하지 않는 방에 투숙할 경우, 투숙할 호실을 다시 입력받는다. 4. 투숙할 방에 이미 고객이 있는 경우, "투숙객이 존재합니다."라는 메시지를 출력한다. |
#include<stdio.h>
#include<string.h>
#define SIZE 5
int main(){
int menu;
char room[SIZE][10];
int tmp;
char name[10];
for(int i = 0; i < SIZE; i++) // room[SIZE][10]을 '빈공간("")'으로 초기화 해준다.
strcpy(&room[i], ""); // 이차원배열의 문자열을 초기화 할 땐 'strcpy()' 함수를 사용한다.
while(1){
printf("\n== Main Menu ==\n");
printf("1. 숙박\n");
printf("2. 퇴실\n");
printf("3. 객실현황\n");
printf("4. 작업종료\n");
printf("===============\n");
printf("menu = ");
scanf("%d", &menu);
if(menu == 1){
do{
printf("투숙할 호실 : ");
scanf("%d", &tmp);
} while(tmp < 0 || tmp > 5); // tmp가 0보다 작거나 5보다 크면 do로 돌아가 반복문을 다시 실행한다.
printf("투숙객 이름 : ");
scanf("%s", &name);
if(strcmp(&room[tmp], "")){ // 문자열을 비교할 땐 'strcmp()' 함수를 사용한다. // &room[tmp]가 빈공간이면 0을 반환한다.
printf("투숙객이 존재합니다.\n");
}
else{
strcpy(room[tmp], name, sizeof(name)); // 문자열을 복사할 땐 'strcpy()' 함수를 사용한다.
}
}
else if(menu == 2){
do{
printf("퇴실할 호실 : ");
scanf("%d", &tmp);
} while(tmp < 0 || tmp > 5);
strcpy(&room[tmp], ""); // 퇴실한 호실에 빈공간을 저장한다.
}
else if(menu == 3){
for(int i = 0; i < SIZE; i++){
printf("%d번 방 : %s\n", i, &room[i]);
}
}
else if(menu == 4){
break;
}
else{
printf("메뉴 선택이 잘못되었습니다.\n");
}
}
return 0;
}
반응형
'C' 카테고리의 다른 글
[C언어] 포인터의 초기화 (0) | 2021.04.06 |
---|---|
[C언어] 포인터의 크기 (0) | 2021.04.06 |
[C언어] 실습: Magic Matrix (마방진) 게임 만들기 (0) | 2021.03.29 |
[C언어] 실습: 커피 자판기 프로그램 구현하기 (0) | 2021.03.28 |
[C언어] 실습: 좌석 예약 프로그램 구현하기 (0) | 2021.03.23 |