利用C++实现图书信息管理系统,功能要求图书浏览、图书统计、图书插入、图书删除、图书查找、价格排序、逆序储存
时间: 2024-09-22 07:04:35 浏览: 41
要实现一个图书信息管理系统,我们可以使用C++中的类(class)和容器(如`std::vector`或`std::map`)来存储图书信息,并提供相应的操作接口。以下是一个简化的示例,展示了如何创建一个基础的图书类以及主要功能的方法:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 定义图书类
class Book {
public:
std::string title;
std::string author;
double price;
// 构造函数
Book(const std::string& title, const std::string& author, double price)
: title(title), author(author), price(price) {}
// 重载比较运算符用于价格排序
bool operator<(const Book& other) const { return price < other.price; }
};
// 图书管理类
class Library {
private:
std::vector<Book> books;
public:
// 插入图书
void insertBook(const Book& book) {
books.push_back(book);
}
// 删除图书
void removeBook(const std::string& title) {
books.erase(std::remove_if(books.begin(), books.end(),
[title](const Book& b) { return b.title == title; }),
books.end());
}
// 查找图书
Book* findBook(const std::string& title) {
for (auto it = books.begin(); it != books.end(); ++it) {
if (it->title == title) {
return &(*it);
}
}
return nullptr;
}
// 浏览图书列表
void browseBooks() {
for (const auto& book : books) {
std::cout << "Title: " << book.title << ", Author: " << book.author << ", Price: " << book.price << "\n";
}
}
// 图书统计
int countBooks() const {
return books.size();
}
// 价格排序
void sortBooksByPrice() {
std::sort(books.begin(), books.end());
}
// 逆序存储
void reverseOrder() {
std::reverse(books.begin(), books.end());
}
};
int main() {
Library library;
library.insertBook(Book("Book1", "Author1", 10.99));
library.insertBook(Book("Book2", "Author2", 15.99));
library.browseBooks();
library.sortBooksByPrice();
Book* foundBook = library.findBook("Book1");
if (foundBook) {
std::cout << "Found Book1: " << foundBook->price << "\n";
} else {
std::cout << "Book not found\n";
}
library.reverseOrder();
library.browseBooks();
return 0;
}
```
这个例子包含了基本的图书信息管理和操作。请注意,为了实际运行这个程序,你需要在主函数外定义更多的图书实例并调用相应的方法。
阅读全文