用C++创建一个图书管理系统线性表
时间: 2024-09-30 14:06:49 浏览: 13
在C++中创建一个简单的图书管理系统线性表,我们可以选择链表作为数据结构,因为链表非常适合动态存储和插入删除操作。下面是一个基础的图书管理链表类的例子:
```cpp
#include <iostream>
using namespace std;
// 定义图书节点结构体
struct BookNode {
string title;
string author;
int year;
BookNode* next; // 指向下一个节点的指针
};
// 图书管理系统类
class LibrarySystem {
private:
BookNode* head; // 链表头节点
public:
// 构造函数
LibrarySystem() { head = nullptr; }
// 添加书籍
void addBook(string title, string author, int year) {
BookNode* newNode = new BookNode();
newNode->title = title;
newNode->author = author;
newNode->year = year;
newNode->next = head;
head = newNode;
}
// 删除书籍
void deleteBook(string title) {
if (head == nullptr)
return;
if (head->title == title) {
BookNode* temp = head;
head = head->next;
delete temp;
return;
}
BookNode* current = head;
while (current->next != nullptr && current->next->title != title) {
current = current->next;
}
if (current->next != nullptr) {
BookNode* temp = current->next;
current->next = current->next->next;
delete temp;
}
}
// 显示所有书籍
void displayBooks() {
BookNode* temp = head;
while (temp != nullptr) {
cout << "Title: " << temp->title << ", Author: " << temp->author << ", Year: " << temp->year << endl;
temp = temp->next;
}
}
};
int main() {
LibrarySystem library;
library.addBook("书名1", "作者1", 2000);
library.addBook("书名2", "作者2", 2010);
library.displayBooks(); // 展示当前书籍列表
library.deleteBook("书名1");
library.displayBooks(); // 再次展示,已删除一本书
return 0;
}
```