编写一个图书管理系统是一个复杂的工程项目,涉及到用户界面、数据存储、逻辑处理等多个方面。在这里,我可以提供一个简单的C语言图书管理系统的示例代码框架,这个示例将包括基本的功能,如增加图书、删除图书、查找图书、显示所有图书等。
请注意,这只是一个基础示例,实际的系统可能需要更多的功能和更复杂的数据结构。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
#define MAX_TITLE_LENGTH 50
// 定义图书结构体
typedef struct {
char title[MAX_TITLE_LENGTH];
int year;
char author[MAX_TITLE_LENGTH];
} Book;
// 定义图书管理数组
Book books[MAX_BOOKS];
int totalBooks = 0;
// 添加图书
void addBook(const Book *newBook) {
if (totalBooks < MAX_BOOKS) {
books[totalBooks++] = *newBook;
printf("图书添加成功!\n");
} else {
printf("图书已满,无法添加更多图书。\n");
}
}
// 删除图书
void removeBook(const char *title) {
for (int i = 0; i < totalBooks; i++) {
if (strcmp(books[i].title, title) == 0) {
for (int j = i; j < totalBooks - 1; j++) {
books[j] = books[j + 1];
}
totalBooks--;
printf("图书删除成功!\n");
return;
}
}
printf("未找到该图书。\n");
}
// 查找图书
void findBook(const char *title) {
for (int i = 0; i < totalBooks; i++) {
if (strcmp(books[i].title, title) == 0) {
printf("找到图书:\n");
printf("标题:%s\n", books[i].title);
printf("作者:%s\n", books[i].author);
printf("出版年份:%d\n", books[i].year);
return;
}
}
printf("未找到该图书。\n");
}
// 显示所有图书
void displayAllBooks() {
if (totalBooks == 0) {
printf("当前没有图书。\n");
} else {
printf("所有图书列表:\n");
for (int i = 0; i < totalBooks; i++) {
printf("%d. %s, %s, %d\n", i + 1, books[i].title, books[i].author, books[i].year);
}
}
}
// 主函数
int main() {
char command;
Book newBook;
while (1) {
printf("\n图书管理系统\n");
printf("1. 添加图书\n");
printf("2. 删除图书\n");
printf("3. 查找图书\n");
printf("4. 显示所有图书\n");
printf("0. 退出\n");
printf("请输入命令(0-4): ");
scanf("%c", &command);
switch (command) {
case '1':
printf("输入图书标题:");
scanf("%s", newBook.title);
printf("输入出版年份:");
scanf("%d", &newBook.year);
printf("输入作者:");
scanf("%s", newBook.author);
addBook(&newBook);
break;
case '2':
printf("输入要删除的图书标题:");
scanf("%s");
removeBook(newBook.title);
break;
case '3':
printf("输入要查找的图书标题:");
scanf("%s", newBook.title);
findBook(newBook.title);
break;
case '4':
displayAllBooks();
break;
case '0':
printf("退出图书管理系统。\n");
return 0;
default:
printf("无效命令,请重新输入。\n");
}
}
return 0;
}
这个例子展示了一个简单的文本界面图书管理系统的主要功能。它使用了一个简单的数组来存储图书信息,并通过命令行界面与用户交互。在实际应用中,你可能需要使用数据库来存储图书数据,并且可能需要添加额外的功能,比如用户管理、借阅跟踪、图形用户界面等。