void show_books() { if (num_books == 0) { printf("暂无图书信息\n"); return; } printf("编号\t名称\t作者\t出版社\t价格\t类别\n"); for (int i = 0; i < num_books; i++) { printf("%s\t%s\t%s\t%s\t%.2f\t%s\n", books[i].id, books[i].name, books[i].author, books[i].publisher, books[i].price, books[i].category); } } // 新增图书信息 void add_book() { if (num_books >= MAX_BOOKS) { printf("已达到最大支持图书数量\n"); return; } Book book; //声明book变量 printf("请输入图书编号:"); scanf("%s", book.id); printf("请输入图书名称:"); scanf("%s", book.name); printf("请输入主编作者:"); scanf("%s", book.author); printf("请输入出版社:"); scanf("%s", book.publisher); printf("请输入价格:"); scanf("%f", &book.price); printf("请输入类别:"); scanf("%s", book.category); books[num_books++] = book;//先把book变量中的值赋值到books中 后num—books+1 图书数量增加1 printf("图书添加成功\n"); } // 删除图书信息 void delete_book() { if (num_books == 0) { printf("暂无图书信息\n"); return; } char id[10]; printf("请输入要删除的图书编号:"); scanf("%s", id); for (int i = 0; i < num_books; i++) { if (strcmp(books[i].id, id) == 0) { //strcmp比较 输入的id和books中存放的id是否一致 for (int j = i + 1; j < num_books; j++) { //如果查到 则所被删除书的后面全部书 下标前移 books[j - 1] = books[j]; } num_books--; printf("图书删除成功\n"); return; } } printf("未找到该图书信息\n"); }
时间: 2024-01-13 09:02:48 浏览: 61
c_on_return.rar_c_ on_return
这段代码看起来是一个基本的图书管理系统,包括展示图书信息、新增图书信息和删除图书信息三个功能。其中展示图书信息的函数是 `show_books()`,新增图书信息的函数是 `add_book()`,删除图书信息的函数是 `delete_book()`。
在 `show_books()` 函数中,如果当前没有图书信息,则输出“暂无图书信息”,否则依次输出每本图书的编号、名称、作者、出版社、价格和类别。
在 `add_book()` 函数中,先判断是否已经达到最大支持图书数量,如果是则输出“已达到最大支持图书数量”,否则依次输入图书编号、名称、作者、出版社、价格和类别,并将这些信息封装到 `Book` 结构体变量中,最后将该变量添加到 `books` 数组中,并将图书数量 `num_books` 加 1。
在 `delete_book()` 函数中,先判断当前是否有图书信息,如果没有则输出“暂无图书信息”,否则输入要删除的图书编号。然后依次遍历 `books` 数组,查找是否有与输入编号相同的图书信息。如果有,则将该图书信息及其后面的所有图书信息依次向前移动一位。最后将图书数量 `num_books` 减 1,并输出“图书删除成功”。如果没有找到相应的图书信息,则输出“未找到该图书信息”。
阅读全文