【欢迎关注编码小哥,学习更多实用的编程方法和技巧】
下面是一个简单的图书管理系统的C++实现示例。这个系统允许用户添加、删除和查看图书信息。为了简化示例,我们将使用控制台输入输出,并将图书信息存储在内存中。
图书管理系统设计
功能:
- 添加图书
- 删除图书
- 查看所有图书
- 查找图书
数据结构:
- 使用一个结构体
Book
来存储图书信息。 - 使用一个
std::vector<Book>
来存储图书列表。
C++代码实现
cpp
#include <iostream>
#include <vector>
#include <string>
struct Book {
std::string title;
std::string author;
std::string isbn;
};
class Library {
private:
std::vector<Book> books;
public:
void addBook(const Book& book) {
books.push_back(book);
std::cout << "图书 \"" << book.title << "\" 添加成功!\n";
}
void deleteBook(const std::string& isbn) {
for (auto it = books.begin(); it != books.end(); ++it) {
if (it->isbn == isbn) {
std::cout << "图书 \"" << it->title << "\" 删除成功!\n";
books.erase(it);
return;
}
}
std::cout << "未找到ISBN为 " << isbn << " 的图书。\n";
}
void viewBooks() const {
if (books.empty()) {
std::cout << "没有可用的图书。\n";
return;
}
std::cout << "图书列表:\n";
for (const auto& book : books) {
std::cout << "标题: " << book.title << ", 作者: " << book.author << ", ISBN: " << book.isbn << "\n";
}
}
void findBook(const std::string& isbn) const {
for (const auto& book : books) {
if (book.isbn == isbn) {
std::cout << "找到图书:标题: " << book.title << ", 作者: " << book.author << ", ISBN: " << book.isbn << "\n";
return;
}
}
std::cout << "未找到ISBN为 " << isbn << " 的图书。\n";
}
};
void displayMenu() {
std::cout << "\n图书管理系统\n";
std::cout << "1. 添加图书\n";
std::cout << "2. 删除图书\n";
std::cout << "3. 查看所有图书\n";
std::cout << "4. 查找图书\n";
std::cout << "5. 退出\n";
std::cout << "请选择一个选项:";
}
int main() {
Library library;
int choice;
do {
displayMenu();
std::cin >> choice;
switch (choice) {
case 1: {
Book book;
std::cout << "输入图书标题:";
std::cin.ignore(); // 清除输入缓冲区
std::getline(std::cin, book.title);
std::cout << "输入作者:";
std::getline(std::cin, book.author);
std::cout << "输入ISBN:";
std::getline(std::cin, book.isbn);
library.addBook(book);
break;
}
case 2: {
std::string isbn;
std::cout << "输入要删除的图书ISBN:";
std::cin >> isbn;
library.deleteBook(isbn);
break;
}
case 3:
library.viewBooks();
break;
case 4: {
std::string isbn;
std::cout << "输入要查找的图书ISBN:";
std::cin >> isbn;
library.findBook(isbn);
break;
}
case 5:
std::cout << "退出系统。\n";
break;
default:
std::cout << "无效选项,请重试。\n";
}
} while (choice != 5);
return 0;
}
代码说明
-
数据结构:
Book
结构体用于存储图书的标题、作者和ISBN。Library
类用于管理图书,包括添加、删除、查看和查找图书的功能。
-
功能实现:
addBook
:将新图书添加到列表中。deleteBook
:根据ISBN删除图书。viewBooks
:显示所有图书的信息。findBook
:根据ISBN查找 图书并显示其信息。
-
用户交互:
displayMenu
函数用于显示系统菜单,用户可以选择不同的操作。- 在
main
函数中,使用do-while
循环来处理用户输入,直到用户选择退出。
扩展功能
可以考虑添加以下功能来增强图书管理系统:
- 数据持久化:将图书信息保存到文件中,以便下次启动时加载。
- 用户身份验证:添加用户登录功能,限制对图书管理的访问。
- 分类管理:为图书添加分类标签,方便管理和查找。
- 搜索功能:根据书名或作者进行模糊搜索。
这个简单的图书管理系统展示了如何使用C++进行基本的应用程序设计。通过不断扩展和改进,可以创建一个功能更强大且用户友好的图书管理系统。