C语言图书管理系统子函数功能分析
{"title":"请写出以下程序的子函数的功能分析","#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\n#define MAX_SIZE 1000\n\ntypedef struct {\n char bookCode[20];\n char bookName[50];\n char author[50];\n char publisher[50];\n char bookkind[50];\n char bookkinds[50];\n int quantity;\n} Book;\n\nBook bookList[MAX_SIZE];\nint count = 0;\n\nvoid loadBookData() {\n FILE *file = fopen("book_storage.txt", "r");\n if (file == NULL) {\n return;\n }\n\n while (fgets(bookList[count].bookCode, sizeof(bookList[count].bookCode), file) != NULL) {\n fgets(bookList[count].bookName, sizeof(bookList[count].bookName), file);\n fgets(bookList[count].author, sizeof(bookList[count].author), file);\n fgets(bookList[count].publisher, sizeof(bookList[count].publisher), file);\n fgets(bookList[count].bookkind, sizeof(bookList[count].bookkind), file);\n fgets(bookList[count].bookkinds, sizeof(bookList[count].bookkinds), file);\n fscanf(file, "%d\n", &bookList[count].quantity);\n count++;\n }\n\n fclose(file);\n}\n\nvoid saveBookData() {\n FILE *file = fopen("book_storage.txt", "w");\n if (file == NULL) {\n printf("无法保存图书信息!\n");\n return;\n }\n\n int i;\n for (i = 0; i < count; i++) {\n fprintf(file, "%s\n", bookList[i].bookCode);\n fprintf(file, "%s\n", bookList[i].bookName);\n fprintf(file, "%s\n", bookList[i].author);\n fprintf(file, "%s\n", bookList[i].publisher);\n fprintf(file, "%s\n", bookList[i].bookkind);\n fprintf(file, "%s\n", bookList[i].bookkinds);\n fprintf(file, "%d\n", bookList[i].quantity);\n }\n\n fclose(file);\n}\n\nvoid addBook() {\n Book newBook;\n printf("请输入图书编号:");\n scanf("%s", newBook.bookCode);\n printf("请输入书名:");\n scanf("%s", newBook.bookName);\n printf("请输入作者:");\n scanf("%s", newBook.author);\n printf("请输入出版社:");\n scanf("%s", newBook.publisher);\n printf("请输入请输入图书种类:");\n scanf("%s", newBook.bookkind);\n printf("历史类为1,政治类为2,文学类为3,其他为4"); \n printf("请输入请输入图书种类编号:");\n scanf("%s", newBook.bookkinds);\n printf("请输入价格:");\n scanf("%d", &newBook.quantity);\n \n\n bookList[count++] = newBook;\n\n printf("添加成功!\n");\n}\n\nvoid deleteBook() {\n char bookCode[20];\n printf("请输入要删除的图书编号:");\n scanf("%s", bookCode);\n\n int i, j;\n for (i = 0; i < count; i++) {\n if (strcmp(bookList[i].bookCode, bookCode) == 0) {\n for (j = i; j < count - 1; j++) {\n bookList[j] = bookList[j + 1];\n }\n count--;\n printf("删除成功!\n");\n return;\n }\n }\n\n printf("没有找到相关图书!\n");\n}\n\nvoid modifyBook() {\n char bookCode[20];\n printf("请输入要修改的图书编号:");\n scanf("%s", bookCode);\n\n int i;\n for (i = 0; i < count; i++) {\n if (strcmp(bookList[i].bookCode, bookCode) == 0) {\n printf("请输入新的书名:");\n scanf("%s", bookList[i].bookName);\n printf("请输入新的作者:");\n scanf("%s", bookList[i].author);\n printf("请输入新的出版社:");\n scanf("%s", bookList[i].publisher);\n printf("请输入新的图书种类:");\n scanf("%s", bookList[i].bookkind);\n printf("请输入新的图书种类编号:");\n scanf("%s", bookList[i].bookkinds);\n printf("请输入新的价格:");\n scanf("%d", &bookList[i].quantity);\n printf("修改成功!\n");\n return;\n }\n }\n\n printf("没有找到相关图书!\n");\n}\n\nvoid searchBook() {\n char bookName[50];\n printf("请输入要查找的书名:");\n scanf("%s", bookName);\n\n int i;\n int found = 0;\n for (i = 0; i < count; i++) {\n if (strcmp(bookList[i].bookName, bookName) == 0) {\n printf("图书编号:%s\n", bookList[i].bookCode);\n printf("书名:%s\n", bookList[i].bookName);\n printf("作者:%s\n", bookList[i].author);\n printf("出版社:%s\n", bookList[i].publisher);\n printf("图书种类:%s\n", bookList[i].bookkind);\n printf("图书种类编号:%s\n", bookList[i].bookkinds);\n printf("价格:%d\n", bookList[i].quantity);\n found = 1;\n }\n }\n\n if (!found) {\n printf("没有找到相关图书!\n");\n }\n}\n\nvoid displayBook() {\n int i;\n for (i = 0; i < count; i++) {\n printf("图书编号:%s\n", bookList[i].bookCode);\n printf("书名:%s\n", bookList[i].bookName);\n printf("作者:%s\n", bookList[i].author);\n printf("出版社:%s\n", bookList[i].publisher);\n printf("图书种类:%s\n", bookList[i].bookkind);\n printf("图书种类编号:%s\n", bookList[i].bookkinds);\n printf("价格:%d\n", bookList[i].quantity);\n \n printf("\n");\n }\n printf("图书种数:%d\n",count);\n}\n\nint main() {\n loadBookData();\n\n while (1) {\n printf("欢迎使用图书管理系统\n");\n printf("1. 添加图书信息\n");\n printf("2. 删除图书信息\n");\n printf("3. 修改图书信息\n");\n printf("4. 查找图书信息\n");\n printf("5. 显示图书信息\n");\n printf("0. 退出程序\n");\n printf("请输入您的选择:");\n\n int choice;\n scanf("%d", &choice);\n\n switch (choice) {\n case 1:\n addBook();\n break;\n case 2:\n deleteBook();\n break;\n case 3:\n modifyBook();\n break;\n case 4:\n searchBook();\n break;\n case 5:\n displayBook();\n break;\n case 0:\n saveBookData();\n printf("感谢使用,再见!\n");\n exit(0);\n default:\n printf("输入有误,请重新输入!\n");\n break;\n }\n }\n\n return 0;\n}
//loadBookData函数的功能是从文件中加载图书数据并存储到bookList数组中。
//saveBookData函数的功能是将bookList数组中的图书数据保存到文件中。
//addBook函数的功能是添加图书信息,包括图书编号、书名、作者、出版社、图书种类、图书种类编号和价格。
//deleteBook函数的功能是删除指定图书编号的图书信息。
//modifyBook函数的功能是修改指定图书编号的图书信息。
//searchBook函数的功能是根据指定书名查找对应的图书信息。
//displayBook函数的功能是显示所有图书信息。
//main函数是程序的入口函数,用于显示菜单选项并根据用户的选择调用相应的函数处理图书信息。
原文地址: https://www.cveoy.top/t/topic/pny7 著作权归作者所有。请勿转载和采集!