|
图书管理程序设计
设计结构体数组,结构中包含数据为:图书编号、图书名称、作者姓名,出版社名、出版日期。设计各个函数,分别实现以下功能:
(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;
- }
复制代码 这个程序使用结构体数组来存储图书信息,提供了三个函数来实现不同的功能。在主函数中,通过菜单选择来调用这些函数。你可以根据需要进行修改和扩展。 请注意,这只是一个示例程序,可能还需要根据具体需求进行进一步的修改和完善。例如,可以添加删除图书的功能、保存图书信息到文件等。
|
|