图书管理程序设计设计结构体数组,结构中包含数据为:图书编号、图书名称、作者姓名,出版社名、出版日期。设计各个函数

图书管理程序设计
设计结构体数组,结构中包含数据为:图书编号、图书名称、作者姓名,出版社名、出版日期。设计各个函数,分别实现以下功能:
(1)完成图书信息的输入并将录入的图书按书名的字母顺序排序 (2)显示所有图书的信息 (3)输入作者姓名,显示该作者编写的图书记录。 设计菜单,通过选择菜单调用以上各函数

下面是一个示例的C语言程序,实现了图书管理程序的设计要求:

#include <stdio.h>
#include <string.h>
 #define MAX_BOOKS 100
 struct Book {
    int bookId;
    char bookName[100];
    char authorName[100];
    char publisher[100];
    char publicationDate[100];
};
 struct Book library[MAX_BOOKS];
int numBooks = 0;
 void addBook() {
    struct Book newBook;
     printf("请输入图书编号:");
    scanf("%d", &newBook.bookId);
    printf("请输入图书名称:");
    scanf("%s", newBook.bookName);
    printf("请输入作者姓名:");
    scanf("%s", newBook.authorName);
    printf("请输入出版社名:");
    scanf("%s", newBook.publisher);
    printf("请输入出版日期:");
    scanf("%s", newBook.publicationDate);
     // 将新书插入到正确的位置,按照书名的字母顺序排序
    int i = numBooks - 1;
    while (i >= 0 && strcmp(newBook.bookName, library[i].bookName) < 0) {
        library[i + 1] = library[i];
        i--;
    }
    library[i + 1] = newBook;
     numBooks++;
     printf("图书添加成功!\n");
}
 void displayAllBooks() {
    if (numBooks == 0) {
        printf("图书馆中没有任何图书。\n");
        return;
    }
     printf("所有图书的信息如下:\n");
    for (int i = 0; i < numBooks; i++) {
        printf("图书编号:%d\n", library[i].bookId);
        printf("图书名称:%s\n", library[i].bookName);
        printf("作者姓名:%s\n", library[i].authorName);
        printf("出版社名:%s\n", library[i].publisher);
        printf("出版日期:%s\n", library[i].publicationDate);
        printf("------------\n");
    }
}
 void displayBooksByAuthor() {
    char authorName[100];
    printf("请输入作者姓名:");
    scanf("%s", authorName);
     printf("作者 %s 编写的图书记录如下:\n", authorName);
    int found = 0;
    for (int i = 0; i < numBooks; i++) {
        if (strcmp(authorName, library[i].authorName) == 0) {
            printf("图书编号:%d\n", library[i].bookId);
            printf("图书名称:%s\n", library[i].bookName);
            printf("出版社名:%s\n", library[i].publisher);
            printf("出版日期:%s\n", library[i].publicationDate);
            printf("------------\n");
            found = 1;
        }
    }
     if (!found) {
        printf("没有找到该作者编写的图书记录。\n");
    }
}
 int main() {
    int choice;
     do {
        printf("图书管理系统菜单\n");
        printf("1. 录入图书并按书名排序\n");
        printf("2. 显示所有图书的信息\n");
        printf("3. 根据作者姓名显示图书记录\n");
        printf("0. 退出系统\n");
        printf("请输入您的选择:");
        scanf("%d", &choice);
         switch (choice) {
            case 1:
                addBook();
                break;
            case 2:
                displayAllBooks();
                break;
            case 3:
                displayBooksByAuthor();
                break;
            case 0:
                printf("感谢使用图书管理系统,再见!\n");
                break;
            default:
                printf("无效的选择,请重新输入。\n");
        }
         printf("\n");
    } while (choice != 0);
     return 0;
}

这个程序使用结构体数组来存储图书信息,提供了三个函数来实现不同的功能。在主函数中,通过菜单选择来调用这些函数。你可以根据需要进行修改和扩展。 请注意,这只是一个示例程序,可能还需要根据具体需求进行进一步的修改和完善。例如,可以添加删除图书的功能、保存图书信息到文件等。

猜你喜欢

转载自blog.csdn.net/airen3339/article/details/135423940