基于线性表的图书信息管理C++代码
时间: 2024-10-15 21:13:01 浏览: 4
基于线性表(如数组或链表)的图书信息管理,我们可以创建一个简单的C++程序来存储和操作图书数据。这里是一个基本的例子,使用结构体表示图书,并使用动态数组作为线性表:
```cpp
#include <iostream>
#include <string>
// 定义图书信息结构体
struct Book {
std::string title;
std::string author;
int publicationYear;
// 构造函数
Book(const std::string& title, const std::string& author, int year) : title(title), author(author), publicationYear(year) {}
};
// 动态数组用于存储图书
Book* books = nullptr; // 存储书籍的指针
int numBooks = 0; // 当前图书数量
// 添加新书
void addBook(const std::string& title, const std::string& author, int year) {
if (numBooks >= MAX_BOOKS) { // 如果已满,扩大数组
Books* newBooks = new Book[MAX_BOOKS * 2];
for (int i = 0; i < numBooks; ++i) {
newBooks[i] = books[i]; // 复制旧数组内容
}
delete[] books;
books = newBooks;
}
books[numBooks++] = Book(title, author, year);
}
// 显示所有书籍信息
void displayBooks() {
for (int i = 0; i < numBooks; ++i) {
std::cout << "Title: " << books[i].title << ", Author: " << books[i].author << ", Year: " << books[i].publicationYear << std::endl;
}
}
int main() {
// 初始化数组大小(这里假设MAX_BOOKS=5)
const int MAX_BOOKS = 5;
books = new Book[MAX_BOOKS];
// 示例:添加两本书
addBook("The Great Gatsby", "F. Scott Fitzgerald", 1925);
addBook("To Kill a Mockingbird", "Harper Lee", 1960);
// 展示所有书籍
displayBooks();
return 0;
}
```