为了实现一个简单的图书管理系统,我们可以使用C++编写一个链表类来表示图书。以下是一个简单的实现:
```cpp
#include
// 定义链表节点结构体
struct Node {
int id; // 图书ID
std::string title; // 图书标题
int year; // 出版年份
int isbn; // ISBN号
Node* next; // 指向下一个节点的指针
};
// 定义链表类
class BookList {
public:
void addBook(int id, std::string title, int year, int isbn) {
Node* newNode = new Node();
newNode->id = id;
newNode->title = title;
newNode->year = year;
newNode->isbn = isbn;
newNode->next = nullptr;
Node* current = head;
while (current != nullptr) {
if (current->id == id) {
current->title = title;
current->year = year;
current->isbn = isbn;
return;
}
current = current->next;
}
std::cout << "Book not found!" << std::endl;
}
void displayBooks() {
Node* current = head;
while (current != nullptr) {
std::cout << "ID: " << current->id << ", Title: " << current->title << ", Year: " << current->year << ", ISBN: " << current->isbn << std::endl;
current = current->next;
}
}
private:
Node* head; // 头结点
};
int main() {
BookList bookList;
bookList.addBook(1, "Java编程思想", 2005, 123456789);
bookList.addBook(2, "C和C++程序设计", 2003, 987654321);
bookList.displayBooks();
return 0;
}
```
这个简单的图书管理系统实现了以下功能:
1. 添加图书:通过`addBook`函数向链表中添加新的图书。如果找到了相同的图书ID,则更新其标题、年份和ISBN。
2. 显示所有图书:通过`displayBooks`函数遍历链表并打印所有图书的信息。
请注意,这个实现非常简单,仅用于演示目的。在实际应用中,你可能需要考虑更多的功能,如删除图书、查找图书等。此外,你还可以添加一些错误处理机制,以应对输入错误或其他异常情况。