1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | #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; } | cs |