Menu



Manage

Study_C > 14-main.c Lines 62 | 1.9 KB
다운로드

                        /*****************************************************************

 * 호텔 관리 프로그램


 ********************************************************************/
// 오류와 링크드 리스트는 도저히 못하겠어요 ㅜㅜ

#define _CRT_SECURE_NO_WARNINGS		// scanf오류 제거를 위한 코드
#include "reserv.h"		// 제작 헤더파일 불러오기
#include <stdio.h>		// 표준 입출력장치 사용을 위한 헤더파일 로드
// #include <stdlib.h>	malloc 사용 안함

int main()
{
	Book data;
	int num = 0;
	int a = 0; //while문 함수 불러오기를 위한 int a변수 생성

	// 저장된 파일 불러오기
	FILE *fp;
	char fname = "reservation.txt";		// 열 파일 이름 저장
	if ((fp = fopen(fname, "r")) == NULL) {		// 파일이 없는경우 새로 생성
		fprintf(stderr, "파일이 없습니다. 새로 생성합니다.");
		if ((fp = fopen(fname, "w")) == NULL); {	// w모드로 생성조차 안되는 경우
			fprintf(stderr, "파일 생성이 불가능합니다. 종료합니다.");		// 강제종료
			exit(1);
		}
		// w 모드로 실행됬으므로 r모드로 다시열기
		fclose(fp);		// r모드로 재실행
		fp = fopen(fname, "r");
	}

	// r모드에서 파일 내용 읽어들이기
	fseek(fp, 0, SEEK_SET);		// 맨 위어서부터 읽어내리기
	while (!feof(fp)) {		// 파일 종료 시점까지 읽음
		fscanf(fp, "%d %s %s %s", &data.room_num, data.name, data.monum, data.mail);		// 파일에서 내용을 배열로 옮기는 과정
		num = data.room_num - 101;		// 배열 0번이 101호라 해당 과정을 거침
		s[num].room_num = data.room_num;		// 실질적으로 이동하는 과정 (방번호, 이름, 폰번호, 메일주소)
		strcpy(s[num].name, data.name);
		strcpy(s[num].monum, data.monum);
		strcpy(s[num].mail, data.mail);
	}

	while(1) {
		menu(a);		// 메뉴 함수
		switch (a) {
		case 1: {
			
			booking();		// 예약 함수
		}
		case 2: cancle();		// 예약 취소 함수 
		case 3: find();		// 예약자 검색 함수
		case 4: find_all();		// 예약자 전체보기 함수
		case 5: {
			shutdown(fp);		// 종료 함수
			break;		// while문 나오기
		}
		}
	}
	return 0;		// 정상 종료
}