在本节中,我们将学习如何将 C++
语言的核心功能应用于实际项目中。我们将以一个简单的项目为例,逐步实现其核心功能。
项目背景
我们将创建一个简单的图书管理系统,该系统可以实现图书的添加、删除和查询功能。此项目主要展示如何使用 类
、对象
和 标准模板库 (STL)
。
小节一:定义图书类
我们首先需要定义一个 Book
类,以表示图书的基本信息。
实现 Book
类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #include <string>
class Book { private: std::string title; std::string author; int year;
public: Book(const std::string& title, const std::string& author, int year) : title(title), author(author), year(year) {}
std::string getTitle() const { return title; }
std::string getAuthor() const { return author; }
int getYear() const { return year; }
void display() const { std::cout << "书名: " << title << ", 作者: " << author << ", 出版年份: " << year << std::endl; } };
|
注释
- 在
Book
类中,title
、author
和 year
是该图书的属性。
- 我们提供了相应的构造函数和方法来访问这些属性。
小节二:创建图书库
接下来,我们需要一个可以存储多个书籍的 Library
类。
实现 Library
类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include <vector> #include <algorithm>
class Library { private: std::vector<Book> books;
public: void addBook(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& book) { return book.getTitle() == title; }), books.end()); }
void searchBook(const std::string& title) const { for (const auto& book : books) { if (book.getTitle() == title) { book.display(); return; } } std::cout << "未找到书名为 \"" << title << "\" 的图书。" << std::endl; }
void displayAllBooks() const { for (const auto& book : books) { book.display(); } } };
|
注释
Library
类使用 std::vector
来存储 Book
对象。
- 提供了
addBook
、removeBook
和 searchBook
方法,以便进行图书的管理。
小节三:主程序逻辑
现在,我们将实现主程序入口,来使用上述 Library
类。
实现主函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <iostream>
int main() { Library library;
library.addBook(Book("C++ Primer", "Stanley B. Lippman", 2005)); library.addBook(Book("Effective C++", "Scott Meyers", 2005)); library.addBook(Book("The C++ Programming Language", "Bjarne Stroustrup", 2013));
std::cout << "已添加的图书:" << std::endl; library.displayAllBooks();
std::cout << "\n查询图书:" << std::endl; library.searchBook("C++ Primer");
std::cout << "\n删除图书:" << std::endl; library.removeBook("Effective C++"); library.displayAllBooks();
return 0; }
|
注释
- 在主函数中,我们首先创建一个
Library
对象并添加几本书。
- 然后,我们显示所有图书,查询特定书籍,删除一本书并再显示剩余的书籍。
结尾总结
通过上述步骤,我们实现了一个简单的图书管理系统的核心功能。关键环节如 类
的设计、STL
容器的使用和 Lambda
表达式的运用等,都是这个项目的重要组成部分。希望这个案例能够帮助你在 C++ 开发中更进一步。在实际项目中,你还可以扩展更多功能,比如文件存储、用户交互等,更加丰富你的项目实现。