파일 목록
- 1-Time1-.c
- 1-로또 프로그램 만들기.c
- 1-성적 평균 계산.c
- 1-소스.c
- 1-예제1.c
- 10-1.c
- 10-2.c
- 10-3.c
- 10-4.c
- 10-5.c
- 10-6.c
- 11-1.c
- 11-2.c
- 11-3.c
- 11-4.c
- 11-5.c
- 11-6.c
- 11-make.c
- 12-1-1.c
- 12-1-2.c
- 12-1-3.c
- 12-1-4.c
- 12-2-1.c
- 12-2-2.cpp
- 12-2-3.c
- 12-2-4.c
- 12-2-5.c
- 13-1.c
- 13-2.c
- 13-3.c
- 13-4.c
- 13-5.c
- 13-6.c
- 13-make.c
- 14-1-main.c
- 14-1-power.c
- 14-1-power.h
- 14-2-rect.c
- 14-2-rect.h
- 14-2-rect_main.c
- 14-2-소스.c
- 14-2-소스1.c
- 14-main.c
- 14-reserv.c
- 14-reserv.h
- 2-DICE.c
- 2-minimum.c
- 3-TIC_TAC_TOE.c
- 4-1.c
- 4-2.c
- 4-3.c
- 4-Point.c
- 4-주소.c
- 5-1.cpp
- 5-2.c
- 5-3.c
- 5-4.c
- 5-5.c
- 5-6.c
- 5-7.c
- 6-1.c
- 6-2.c
- 6-3.c
- 6-4.c
- 6-5.c
- 6-6.c
- 6-7.c
- 6-8.c
- 6-make.c
- 7-1.c
- 7-10.c
- 7-11.c
- 7-12.c
- 7-2.c
- 7-3.c
- 7-4.c
- 7-5.c
- 7-6.c
- 7-7.c
- 7-8.c
- 7-9.c
- 7-make.c
- 8.c
- 9.c
- sil1.c
- sil2.c
- sil3.c
- Title.png
- 성적받아오기).c
#define _CRT_SECURE_NO_WARNINGS // scanf오류 제거를 위한 코드
#include "reserv.h" // 제작 헤더파일 불러오기
#include <stdio.h> // 표준 입출력 함수 라이브러리 추가
#include <string.h> // 문자열 비교, 복사를 위한 함수 라이브러리 추가
// #include <stdlib.h> malloc 사용 안함
int menu(int a) // 메뉴 함수
/*****************************************************************
* 본 menu 함수는 메뉴를 보여주고 다음 과정을 가기 위한 함수.
*
* 함수 입력 내용 : 없음
* 함수 출력 내용 : switch case로 쓸 a를 숫자로 산출
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
printf("\n========================================\n");
print("1 - 예약 하기\n");
print("2 - 예약 해지\n");
print("3 - 예약 확인(개인)\n");
print("4 - 예약 확인(전체)\n");
print("5 - 프로그램 종료\n");
printf("\n========================================\n");
printf("이용할 항목의 번호를 입력해주세요 :");
scanf("%d%*c", &a);
return a;
}
void booking(Book s[]) // 예약 함수
/*****************************************************************
* 본 booking 함수는 예약을 하기 위한 함수.
*
* 함수 입력 내용 : 없음
* 함수 출력 내용 : 배열에 입력받은 내용을 저장하는 함수
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
char z = "";
int num = 0;
int i = 0;
printf("\n 비어있는 객실입니다.");
for (i = 0; i < SIZE; i++) {
if (s[i].room_num != i+101) {
if (i < 9)
printf("10%d호 ", i + 1);
else
printf("110호");
}
else
printf("");
}
printf("\n");
printf("예약하시겠습니까? y / n : ");
scanf("%s%*c", stript(z));
if (z != "n") {
printf("초기 화면으로 돌아갑니다.\n");
return;
}
Book data;
data = r_get();
for (int i = 0; i < SIZE; i++) {
if (strcmp(data.room_num, s[i].room_num) == 0) {
printf("이미 예약자가 존재하는 방 입니다. 처음 화면으로 돌아갑니다.");
return;
}
}
num = data.room_num - 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);
}
Book r_get() // 입력을 구조체로 반환하는 함수
/*****************************************************************
* 본 r_get 함수는 입력받은 구조체를 전달하기 위한 함수.
*
* 함수 입력 내용 : 없음
* 함수 출력 내용 : 이용자로부터 받은 data 구조체를 넘김
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
Book data;
void shutdown(FILE *fp);
getchar(); //줄바꿈 문자 없애기
printf("원하시는 호실을 입력하세요 : "); scanf("%d%*c", &data.room_num);
printf("이름을 입력하세요 : "); gets(data.name);
printf(""); gets(data.monum);
printf(""); gets(data.mail);
return data;
}
void cancle(Book s[]) // 예약 취소 함수
/*****************************************************************
* 본 cancle 함수는 예약을 취소 하기 위한 함수.
*
* 함수 입력 내용 : 없음
* 함수 출력 내용 : 지정된 이름과 같은 이름을 갖는 s의 i번째 배열 요소 초기화
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
int i = 0;
char name[30] = {0};
char a = 'y';
char c = "";
printf("예약자의 성함을 입력해주세요!");
getchar();
gets(name);
for (int i = 0; i < SIZE; i++) {
if (strcmp(name, s[i].name) == 0) {
printf("%d 호실 예약을 해지하시겠습니까?", i+101);
printf("y/n\n");
scanf("%s", &a);
if (a != "y")
printf("지우지 않습니다.\n");
else {
s[i].room_num = 0;
strcpy(s[i].name, c);
strcpy(s[i].monum, c);
strcpy(s[i].mail, c);
}
}
}
printf("요청된 작업을 완료하였습니다.\n");
}
void find(Book s[]) // 예약자 검색 함수
/*****************************************************************
* 본 find 함수는 예약자 이름으로 검색 하기 위한 함수.
*
* 함수 입력 내용 : 없음
* 함수 출력 내용 : name과 같은 s[i].name을 갖는 s[i]의 내용 출력
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
int i = 0;
char name[30] = { 0 };
printf("예약자의 성함을 입력해주세요!");
getchar();
gets(name);
for (int i = 0; i < SIZE; i++) {
if (strcmp(name, s[i].name) == 0) {
printf("- 예약 내용\n");
printf(" - 객실 번호 : %d\n", s[i].room_num);
printf(" - 성 명 : %s\n", s[i].name);
printf(" - 연락처 : %s\n", s[i].monum);
printf(" - 메일 : %s\n", s[i].mail);
}
}
return;
}
void find_all(Book s[]) // 예약자 전체보기 함수
/*****************************************************************
* 본 find_all 함수는 전체 예약자 내역을 보기 위한 함수.
*
* 함수 입력 내용 : 없음
* 함수 출력 내용 : s[0~9]까지의 내용 출력
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
int i = 0;
for (int i = 0; i < SIZE; i++) {
if (s[i].room_num == i + 101) {
printf("- 예약 내용\n");
printf(" - 객실 번호 : %d\n", s[i].room_num);
printf(" - 성 명 : %s\n", s[i].name);
printf(" - 연락처 : %s\n", s[i].monum);
printf(" - 메일 : %s\n", s[i].mail);
}
}
return;
}
void shutdown(FILE *fp, Book s[]) // 종료 함수
/*****************************************************************
* 본 shutdown 함수는 s[]의 내용을 파일로 저장 하기 위한 함수.
*
* 함수 입력 내용 : FILE *fp
* 함수 출력 내용 : reservation.txt로 저장
* 변경 이력 : 해당 사항 없음
********************************************************************/
{
int i = 0;
fclose(fp);
if ((fp = fopen("reservation.txt", "w")) == NULL) {
fprintf(stderr, "저장에 실패하였습니다. 프로그램을 종료합니다.\n");
exit(1);
}
for (i = 0; i < SIZE; i++) {
fprintf(fp, "%d %s %s %s\n", s[i].room_num, s[i].name, s[i].monum, s[i].room_num);
}
fclose(fp);
return;
}