#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct book {
int id;
char name[30];
char author[30];
};
struct book library[1000];
void clear_input_buffer() {
int c;
while ((c = getchar()) != '\n' && c != EOF);
}
void remove_newline(char* str) {
size_t len = strlen(str);
if (len > 0 && str[len - 1] == '\n')
str[len - 1] = '\0';
}
int main() {
char name[30], author[30];
int select = 0;
int nbooks = 0;
while (select != 6) {
printf("===========================================\n");
printf("1. µµ¼ ¹øÈ£·Î Ã¥ ã±â\n");
printf("2. ÀúÀÚ À̸§À¸·Î Ã¥ ã±â\n");
printf("3. Á¦¸ñÀ¸·Î Ã¥ ã±â\n");
printf("4. »õ·Î¿î Ã¥ Ãß°¡\n");
printf("5. µµ¼°üÀÌ ¼ÒÀåÇÑ µµ¼ÀÇ ¼ö Ç¥½Ã\n");
printf("6. Á¾·á\n");
printf("===========================================\n");
printf("¸Þ´º Áß¿¡¼ Çϳª¸¦ ¼±ÅÃÇϼ¼¿ä: ");
scanf("%d", &select);
clear_input_buffer();
switch (select) {
case 1: // µµ¼ ¹øÈ£·Î Ã¥ ã±â
printf("µµ¼ ¹øÈ£¸¦ ÀÔ·ÂÇϼ¼¿ä: ");
int id;
scanf("%d", &id);
clear_input_buffer();
if (id >= 0 && id < nbooks) {
printf("µµ¼ ¹øÈ£: %d\n", library[id].id);
printf("Ã¥ À̸§: %s\n", library[id].name);
printf("ÀúÀÚ À̸§: %s\n", library[id].author);
}
else {
printf("ÇØ´ç µµ¼ ¹øÈ£ÀÇ Ã¥ÀÌ ¾ø½À´Ï´Ù.\n");
}
break;
case 2: // ÀúÀÚ À̸§À¸·Î ã±â
printf("ÀúÀÚ À̸§À» ÀÔ·ÂÇϽÿÀ: ");
fgets(author, sizeof(author), stdin);
remove_newline(author);
for (int i = 0; i < nbooks; i++) {
if (strcmp(author, library[i].author) == 0)
printf("µµ¼¹øÈ£: %d, Á¦¸ñ: %s, ÀúÀÚ: %s\n", library[i].id, library[i].name, library[i].author);
}
break;
case 3: // Á¦¸ñÀ¸·Î ã±â
printf("Ã¥ Á¦¸ñÀ» ÀÔ·ÂÇϽÿÀ: ");
fgets(name, sizeof(name), stdin);
remove_newline(name);
for (int i = 0; i < nbooks; i++) {
if (strcmp(name, library[i].name) == 0)
printf("µµ¼¹øÈ£: %d, Á¦¸ñ: %s, ÀúÀÚ: %s\n", library[i].id, library[i].name, library[i].author);
}
break;
case 4: // »õ·Î¿î Ã¥ Ãß°¡
printf("Ã¥ À̸§ = ");
fgets(library[nbooks].name, sizeof(library[nbooks].name), stdin);
remove_newline(library[nbooks].name);
printf("ÀúÀÚ À̸§ = ");
fgets(library[nbooks].author, sizeof(library[nbooks].author), stdin);
remove_newline(library[nbooks].author);
library[nbooks].id = nbooks;
nbooks++;
printf("Ã¥ÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù.\n");
break;
case 5: // ¸ðµç µµ¼ Ãâ·Â
printf("ÃÑ ¼ÒÀå µµ¼ ¼ö: %d\n", nbooks);
for (int i = 0; i < nbooks; i++) {
printf("µµ¼¹øÈ£: %d, Á¦¸ñ: %s, ÀúÀÚ: %s\n", library[i].id, library[i].name, library[i].author);
}
break;
case 6: // Á¾·á
printf("ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.\n");
exit(0);
default:
printf("À߸øµÈ ¼±ÅÃÀÔ´Ï´Ù. 1~6 »çÀÌÀÇ ¼ýÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.\n");
}
}
return 0;
}