用C++书写一个含义增删改查功能的图书管理系统,含流程图
时间: 2024-09-26 08:16:37 浏览: 29
构建一个简单的图书管理系统(Library Management System)通常涉及几个核心模块:书籍添加、删除、修改以及查询。下面是一个简化的C++代码示例,包括基本的命令行界面操作:
```cpp
#include <iostream>
#include <map>
// 定义图书类
class Book {
public:
std::string title;
std::string author;
int id;
Book(int id, const std::string& title, const std::string& author) : id(id), title(title), author(author) {}
};
// 图书管理系统类
class Library {
private:
std::map<int, Book> books;
public:
// 添加书籍
void addBook(const Book& book) {
books[book.id] = book;
std::cout << "Book added successfully.\n";
}
// 删除书籍
bool removeBook(int id) {
if (books.find(id) != books.end()) {
books.erase(id);
std::cout << "Book removed.\n";
return true;
} else {
std::cout << "Book not found.\n";
return false;
}
}
// 修改书籍信息
bool updateBook(int id, const std::string& newTitle, const std::string& newAuthor) {
auto it = books.find(id);
if (it != books.end()) {
it->second.title = newTitle;
it->second.author = newAuthor;
std::cout << "Book updated.\n";
return true;
} else {
std::cout << "Book not found.\n";
return false;
}
}
// 查询书籍
const Book& findBook(int id) const {
if (books.find(id) != books.end()) {
return books[id];
} else {
throw std::runtime_error("Book not found.");
}
}
};
int main() {
Library library;
while (true) {
std::cout << "Choose an operation:\n"
<< "1. Add book\n"
<< "2. Remove book\n"
<< "3. Update book\n"
<< "4. Search for book\n"
<< "5. Exit\n";
int choice;
std::cin >> choice;
switch (choice) {
case 1:
Book book;
std::cout << "Enter book details: ";
std::cin >> book.id >> book.title >> book.author;
library.addBook(book);
break;
case 2:
int id;
std::cin >> id;
library.removeBook(id);
break;
case 3:
int id, newId, newTitle, newAuthor;
std::cin >> id >> newTitle >> newAuthor;
library.updateBook(id, newTitle, newAuthor);
break;
case 4:
int searchId;
std::cin >> searchId;
try {
const Book& book = library.findBook(searchId);
std::cout << "Found book: Title - " << book.title << ", Author - " << book.author << "\n";
} catch (const std::exception& e) {
std::cerr << e.what() << '\n';
}
break;
case 5:
exit(0);
break;
default:
std::cout << "Invalid choice.\n";
}
}
}
```
注意:这个例子仅提供了一个基本框架,实际项目中可能会使用数据库连接、图形用户界面等更复杂的功能。流程图无法直接在这里呈现,你可以参考这个代码流程自行绘制,或者在线搜索相关的流程图工具。