weixin_46517171 2021-01-06 21:16 采纳率: 0%
浏览 65

采用C语言设计图书管理系统,完成图书馆对图书的日常管理操作。具体要求如下:

题目要求:采用C语言,采用CodeBlocks、VC++、vs等平台,设计图书管理系统,完成图书馆对图书的日常管理操作,数据要能够被保存(不需要保存至文本)、读取、修改和删除,并在任何操作后都能保持信息完整性。具体内容如下:

  1. 添加图书
    增加新的图书,同时需检查新书的图书编号是否在原图书当中存在,若是则应取消添加并提示重新输入,图书的信息应包括:图书名称、图书编号、图书单价、图书作者。
  2. 查询图书
    通过图书名称、图书编号查询图书信息并显示图书信息。
  3. 修改图书
    通过图书名称、图书编号查询该图书,若找到则允许修改,否则提示无该图书信息。
  4. 删除图书
     通过图书名称、图书编号查询该图书,若找到则允许删除,否则提示无该图书信息。
  5. 退出系统。
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-24 17:19
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    #include <stdio.h>
    #include <stdlib.h>
    
    #define MAX_BOOKS 100
    
    struct Book {
        char name[MAX_NAME];
        int num;
        float price;
        char author[MAX_AUTHOR];
    };
    
    int main() {
        struct Book book[MAX_BOOKS];
        int choice = 0;
        int i = 0;
    
        while (choice != 6) {
            printf("欢迎使用图书管理系统\n");
            printf("请选择以下选项:\n");
            printf("1. 添加图书\n");
            printf("2. 查询图书\n");
            printf("3. 修改图书\n");
            printf("4. 删除图书\n");
            printf("5. 退出系统\n");
            printf("请输入您的选择: ");
            scanf("%d", &choice);
    
            switch (choice) {
                case 1:
                    addBook(book);
                    break;
                case 2:
                    queryBook(book);
                    break;
                case 3:
                    modifyBook(book);
                    break;
                case 4:
                    deleteBook(book);
                    break;
                case 5:
                    exit(0); // 系统退出
                default:
                    printf("无效的选择!\n");
            }
        }
    
        return 0;
    }
    
    void addBook(struct Book *bookArray) {
        struct Book newBook;
    
        if (i >= MAX_BOOKS - 1) {
            printf("已满!");
            return;
        }
    
        printf("请输入图书名称: ");
        fgets(newBook.name, sizeof(newBook.name), stdin);
        newBook.num = rand() % 100 + 1; // 生成一个随机数作为图书编号
        printf("请输入图书价格: ");
        scanf("%f", &newBook.price);
        printf("请输入图书作者: ");
        fgets(newBook.author, sizeof(newBook.author), stdin);
    
        // 检查图书编号是否存在
        for (int j = 0; j < i; j++) {
            if (strcmp(bookArray[j].name, newBook.name) == 0) {
                printf("图书编号已存在,请重新输入。\n");
                return;
            }
        }
    
        // 插入到数组中
        bookArray[i] = newBook;
        i++;
    }
    
    void queryBook(struct Book *bookArray) {
        printf("请输入图书名称或图书编号进行查询: ");
        fgets(bookArray->name, sizeof(bookArray->name), stdin);
        int index = 0;
        for (index = 0; index < i; index++) {
            if (!strcmp(bookArray[index].name, bookArray->name)) {
                printf("图书名称为: %s\n", bookArray[index].name);
                printf("图书编号为: %d\n", bookArray[index].num);
                printf("图书价格为: %.2f\n", bookArray[index].price);
                printf("图书作者为: %s\n", bookArray[index].author);
                break;
            }
        } else {
            printf("未找到指定的图书信息!\n");
        }
    }
    
    void modifyBook(struct Book *bookArray) {
        printf("请输入要修改的图书编号: ");
        scanf("%d", &bookArray->num);
    
        for (int j = 0; j < i; j++) {
            if (bookArray[j].num == bookArray->num) {
                printf("请输入新的图书名称: ");
                fgets(bookArray[j].name, sizeof(bookArray[j].name), stdin);
                printf("请输入新的图书价格: ");
                scanf("%f", &bookArray[j].price);
                printf("请输入新的图书作者: ");
                fgets(bookArray[j].author, sizeof(bookArray[j].author), stdin);
                break;
            }
        }
    }
    
    void deleteBook(struct Book *bookArray) {
        printf("请输入要删除的图书编号: ");
        scanf("%d", &bookArray->num);
    
        for (int j = 0; j < i; j++) {
            if (bookArray[j].num == bookArray->num) {
                free(bookArray[j].name);
                free(bookArray[j].price);
                free(bookArray[j].author);
                free(bookArray[j]);
                i--;
                break;
            }
        }
    }
    

    这个程序实现了一个简单的图书管理系统,可以根据用户的需求添加、查询、修改和删除图书信息。注意,由于这是一个简化的示例,实际应用中可能还需要处理更复杂的情况,例如验证输入的有效性、异常处理等等。

    评论

报告相同问题?