创建一个图书管理系统是一个涉及数据结构和文件操作的项目。在C语言中,你可以使用结构体来表示图书信息,使用函数来实现系统的各项功能。以下是一个简单的图书管理系统的示例,包括基本的添加、显示、查找和删除图书的功能。
1. 定义图书结构体
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 1000
typedef struct {
char title[100];
char author[50];
char isbn[20];
int quantity;
} Book;
Book books[MAX_BOOKS];
int totalBooks = 0;
2. 添加图书
void addBook(Book *book) {
if (totalBooks < MAX_BOOKS) {
books[totalBooks++] = *book;
printf("Book added successfully.\n");
} else {
printf("Bookshelf is full.\n");
}
}
3. 显示所有图书
void displayBooks() {
if (totalBooks == 0) {
printf("No books available.\n");
return;
}
printf("List of books:\n");
for (int i = 0; i < totalBooks; i++) {
printf("%d. %s by %s, ISBN: %s, Quantity: %d\n", i + 1, books[i].title, books[i].author, books[i].isbn, books[i].quantity);
}
}
4. 查找图书
int findBookByISBN(const char *isbn) {
for (int i = 0; i < totalBooks; i++) {
if (strcmp(books[i].isbn, isbn) == 0) {
return i;
}
}
return -1;
}
5. 删除图书
void deleteBook(const char *isbn) {
int index = findBookByISBN(isbn);
if (index != -1) {
for (int i = index; i < totalBooks - 1; i++) {
books[i] = books[i + 1];
}
totalBooks--;
printf("Book deleted successfully.\n");
} else {
printf("Book not found.\n");
}
}
6. 主函数
int main() {
Book newBook;
// 示例:添加图书
strcpy(newBook.title, "C Programming");
strcpy(newBook.author, "Nuha Ali");
strcpy(newBook.isbn, "123-456-789");
newBook.quantity = 5;
addBook(&newBook);
// 显示图书
displayBooks();
// 删除图书
deleteBook("123-456-789");
// 再次显示图书
displayBooks();
return 0;
}
这个示例展示了一个简单的图书管理系统的基本功能。在实际应用中,你可能需要添加更多的功能,比如编辑图书信息、按不同标准排序、保存到文件系统等。此外,错误检查和用户界面也是需要考虑的重要方面。