#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define ja_SIZE 50
#define ju_SIZE 50
#define chul_SIZE 50
#define MAX_BOK_NUM 100
typedef struct student {
char ja[ja_SIZE]; //제목
char ju[ju_SIZE]; //저자
char chul[chul_SIZE]; //출판사
int ISBN; //ISBN
int num;
} Student;
Student students[MAX_BOK_NUM];
int num_stu = 0;
int print_menu();
void view_students();
void search_student();
void add_student();
void update_student();
int find_student(int ISBN);
int main() {
int b;
while ((b = print_menu()) != 5) {
switch (b){
case 1:
view_students();
break;
case 2:
search_student();
break;
case 3:
add_student();
break;
case 4:
update_student();
break;
default:
printf("메뉴를 잘못 선택했습니다.\n");
}
printf("\n");
}
printf("프로그램을 종료합니다.");
return 0;
}
int print_menu() {
int choice;
printf("===================\n");
printf("1. 도서 목록 보기\n");
printf("2. 도서 검색\n");
printf("3. 도서 추가\n");
printf("4. 도서 정보 수정\n");
printf("5. 종료\n");
printf("===================\n");
printf("메뉴 선택:");
scanf_s("%d", &choice);
return choice;
}
void view_students() {
if (num_stu == 0) {
printf("등록된 도서가 없습니다.");
return;
}
for (int i = 0; i < num_stu; i++) {
printf("%s %s %s %d\n", students[i].ja, students[i].ju, students[i].chul, students[i].ISBN);
}
}
void search_student() {
Student r;
if (num_stu == 0) {
printf("도서를 찾을 수 없습니다.");
return;
}
for (int i = 0; i < num_stu; i++) {
printf("찾고자 하는 도서명:");
scanf_s("%s", r.ja, ja_SIZE);
printf("제목:");
scanf_s("%s", r.ja, ja_SIZE);
printf("저자:");
scanf_s("%s", r.ju, ju_SIZE);
printf("ISBN:");
scanf_s("%d", &r.ISBN);
printf("출판사:");
scanf_s("%s", r.chul, chul_SIZE);
printf("보유수량: %d권", r.num);
students[num_stu++] = r;
}
}
void add_student() {
Student s;
if (num_stu == MAX_BOK_NUM) {
printf("더 이상 추가할 수 없습니다.\n");
return;
}
printf("ISBN 입력:");
scanf_s("%d", &s.ISBN);
if (find_student(s.ISBN) != -1) {
printf("이미 등록된 ISBN 입니다.");
return;
}
printf("ISBN 입력:");
scanf_s("%d", &s.ISBN);
printf("제목 입력:");
scanf_s("%s", s.ja, ja_SIZE);
printf("저자 입력:");
scanf_s("%s", s.ju, ju_SIZE);
printf("출판사 입력:");
scanf_s("%s", s.chul, chul_SIZE);
printf("수량 입력:");
scanf_s("%d", &s.num);
printf("도서가 추가되었습니다.");
students[num_stu++] = s;
}
void update_student() {
char ja[ja_SIZE]; //제목
char ju[ju_SIZE]; //저자
char chul[chul_SIZE]; //출판사
int ISBN, index; //ISBN
int number; //보유수량
printf("수정할 도서의 ISBN 입력:");
scanf_s("%d", &ISBN);
index = find_student(ISBN );
if (index == -1) {
printf("등록된 도서가 없습니다.\n");
return;
}
printf("수정을 원하지 않으면 엔터키만 입력\n");
printf("제목: ");
gets_s(ja, ja_SIZE);
printf("저자 입력: ");
gets_s(ju, ju_SIZE);
printf("출판사 입력: ");
gets_s(chul, chul_SIZE);
printf("수량 입력: ");
scanf_s("%d", &number);
printf("도서가 수정되었습니다.");
if (strlen(ja) > 0) strcpy_s(students[index].ja, ja_SIZE, ja);
if (strlen(ju) > 0) strcpy_s(students[index].ju, ju_SIZE, ju);
if (strlen(chul) > 0) strcpy_s(students[index].chul, chul_SIZE, chul);
}
int find_student(int ISBN) {
for (int i = 0; i < num_stu; i++) {
if (students[i].ISBN == ISBN) {
return i;
}
}
}
형님들 회원가입 하고 다시 게시글 만들었어요 이메일? 다시 소스좀 알려주세요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
댓글 0