C++实现简单版图书管理系统

yizhihongxing

C++实现简单版图书管理系统攻略

本文将介绍如何使用C++语言实现简单版图书管理系统。本系统主要包含以下功能:添加图书信息、删除图书信息、查看图书信息、修改图书信息、退出系统。

设计思路

在开始实现之前,我们需要先确定程序的设计思路。将所有的操作封装成一个类,来实现图书的添加、删除、修改、查询等操作。同时,我们需要设计出一个图书类,包含图书的基本信息。

代码实现

Book类

我们定义了一个Book类,包含以下属性:

  • 书名
  • 作者
  • 出版社
  • ISBN号
  • 价格

同时,我们也定义了一些public的方法,用于获取属性和设置属性。

#include <iostream>
#include <string>

class Book {
    private:
        std::string name;
        std::string author;
        std::string publisher;
        std::string isbn;
        double price;
    public:
        Book(std::string name, std::string author, std::string publisher, std::string isbn, double price) {
            this->name = name;
            this->author = author;
            this->publisher = publisher;
            this->isbn = isbn;
            this->price = price;
        }

        std::string get_name() {
            return name;
        }

        std::string get_author() {
            return author;
        }

        std::string get_publisher() {
            return publisher;
        }

        std::string get_isbn() {
            return isbn;
        }

        double get_price() {
            return price;
        }

        void set_name(std::string name) {
            this->name = name;
        }

        void set_author(std::string author) {
            this->author = author;
        }

        void set_publisher(std::string publisher) {
            this->publisher = publisher;
        }

        void set_isbn(std::string isbn) {
            this->isbn = isbn;
        }

        void set_price(double price) {
            this->price = price;
        }

        void print_info() {
            std::cout << "Book Name: " << name << std::endl;
            std::cout << "Author: " << author << std::endl;
            std::cout << "Publisher: " << publisher << std::endl;
            std::cout << "ISBN: " << isbn << std::endl;
            std::cout << "Price: " << price << std::endl;
        }
};

Library类

然后我们定义了一个Library类,包含以下方法:

  • add_book: 添加一本新书
  • remove_book: 删除一本图书
  • search_book: 按照名称或ISBN查找图书
  • modify_price: 修改图书价格
  • print_all_books: 打印所有图书信息
#include <vector>
#include <algorithm>

class Library {
    private:
        std::vector<Book> books;
    public:
        void add_book(Book book) {
            books.push_back(book);
        }

        void remove_book(std::string key) {
            auto it = std::remove_if(books.begin(), books.end(), [&](Book book){
                return book.get_name() == key || book.get_isbn() == key;
            });

            books.erase(it, books.end());
        }

        Book search_book(std::string key) {
            for (auto book: books) {
                if (book.get_name() == key || book.get_isbn() == key) {
                    return book;
                }
            }
            return nullptr;
        }

        void modify_price(std::string key, double price) {
            Book book = search_book(key);
            if (book != nullptr) {
                book.set_price(price);
            }
        }

        void print_all_books() {
            for (auto book: books) {
                book.print_info();
            }
        }
};

main函数

最后,我们使用main函数实现整个程序的流程。

int main() {
    Library library;
    while(true) {
        std::cout << "Please select operation: " << std::endl;
        std::cout << "1. Add book" << std::endl;
        std::cout << "2. Remove book" << std::endl;
        std::cout << "3. Search book" << std::endl;
        std::cout << "4. Modify price" << std::endl;
        std::cout << "5. Print all books" << std::endl;
        std::cout << "6. Quit" << std::endl;

        int choice;
        std::cin >> choice;

        if (choice == 1) {
            std::string name, author, publisher, isbn;
            double price;
            std::cout << "Please input book name:" << std::endl;
            std::cin >> name;
            std::cout << "Please input author name:" << std::endl;
            std::cin >> author;
            std::cout << "Please input publisher name:" << std::endl;
            std::cin >> publisher;
            std::cout << "Please input ISBN:" << std::endl;
            std::cin >> isbn;
            std::cout << "Please input price:" << std::endl;
            std::cin >> price;

            Book book(name, author, publisher, isbn, price);
            library.add_book(book);
        } else if (choice == 2) {
            std::string key;
            std::cout << "Please input name or ISBN of book to remove:" << std::endl;
            std::cin >> key;
            library.remove_book(key);
        } else if (choice == 3) {
            std::string key;
            std::cout << "Please input name or ISBN of book to search:" << std::endl;
            std::cin >> key;

            Book book = library.search_book(key);
            if (book == nullptr) {
                std::cout << "No book found." << std::endl;
            } else {
                book.print_info();
            }
        } else if (choice == 4) {
            std::string key;
            double price;
            std::cout << "Please input name or ISBN of book to modify:" << std::endl;
            std::cin >> key;
            std::cout << "Please input new price:" << std::endl;
            std::cin >> price;

            library.modify_price(key, price);
        } else if (choice == 5) {
            library.print_all_books();
        } else if (choice == 6) {
            break;
        } else {
            std::cout << "Invalid choice." << std::endl;
        }
    }
    return 0;
}

示例

添加图书

选择1,添加一本新书,输入以下信息:

Please input book name:
C++ Primer
Please input author name:
Stanley B. Lippman
Please input publisher name:
Pearson
Please input ISBN:
978-0-321-71411-4
Please input price:
100

添加成功后,可以在"Print all books"中查看是否添加成功。

删除图书

选择2,删除指定书籍,输入以下信息:

Please input name or ISBN of book to remove:
C++ Primer

选择3或者5可以查看是否已删除。

查看图书

选择3,查找指定图书,输入以下信息:

Please input name or ISBN of book to search:
The C Programming Language

可以查看该图书的详细信息。

修改图书价格

选择4,修改指定书籍价格,输入以下信息:

Please input name or ISBN of book to modify:
C++ Primer
Please input new price:
200

修改成功后,可以在"Print all books"中查看是否修改成功。

总结

本文介绍了C++实现简单版图书管理系统的方法和思路,详细介绍了Book类和Library类的实现方法,同时给出了一个相对完整的示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现简单版图书管理系统 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现字符串替换的示例代码

    下面我来详细讲解一下“C语言实现字符串替换的示例代码”的完整攻略。该攻略分为以下几个部分: 前置知识 在学习字符串替换的示例代码之前,需要了解以下常用C语言函数: strcpy() 函数原型: char *strcpy(char *dest, const char *src); 函数说明: 将src所指向的字符串复制到dest所指向的字符串中,即把src的内…

    C 2023年5月24日
    00
  • C语言模拟实现简单扫雷游戏

    C语言模拟实现简单扫雷游戏攻略 背景知识 扫雷游戏是一款经典的单机游戏,由微软公司开发并受全球玩家喜爱。扫雷游戏的核心玩法是在矩阵区域内,通过翻开若干个格子来避免让地雷引爆,同时探索出所有非地雷格子并标记出所有已知的地雷格子。本攻略将通过C语言模拟实现简单的扫雷游戏,以帮助初学者巩固自己的C语言编程能力。 实现步骤 设计游戏地图:将游戏区域按照网格形式划分为…

    C 2023年5月24日
    00
  • C语言return, exit, abort的区别

    C语言中return, exit, abort都是用来结束程序的函数,但是它们有一些区别。 return return语句是用来返回函数的返回值,并将函数的执行权交给调用者。如果在main函数中使用return语句,则相当于结束程序。return语句的作用范围仅限于函数内部,即return只能在函数中使用。 以下是return的示例代码: #include …

    C 2023年5月23日
    00
  • C 程序 查找int,float,double和char的大小

    针对本题,以下是完整的使用攻略: 1. 程序说明 此 C 程序是用来查找 int、float、double 和 char 所占字节数的。字节数表示了变量所占内存的大小,了解这些对于进行内存管理和程序优化非常有帮助。 程序中使用了 sizeof() 函数,该函数可以得到变量或数据类型所占用的字节数。下面给出了具体的使用方法。 2. 程序代码 #include&…

    C 2023年5月9日
    00
  • 0-C语言与汇编语言的转换

    汇编语言入门四:打通C和汇编语言 – 知乎 Win10下C语言转8086汇编 – 博客园:https://www.cnblogs.com/VxerLee/p/15264290.html Linux执行汇编程序在Linux下运行你的第一个汇编程序_linux怎么执行汇编代码_冷色调的夏天的博客-CSDN博客 在线网站:Compiler Explorer强烈推荐…

    C语言 2023年4月17日
    00
  • C语言实现企业员工管理系统开发

    C语言实现企业员工管理系统开发攻略 1. 确定功能需求和数据结构 在开始编写代码之前,需要先确定功能需求和相应的数据结构。对于企业员工管理系统,通常需要包括以下功能: 添加员工 删除员工 修改员工信息 查询员工信息 显示员工列表 其中,员工的信息通常包括姓名、年龄、性别、职位等。根据这些需求,可以定义如下数据结构: // 定义 Employee 结构体,表示…

    C 2023年5月23日
    00
  • C++ 程序流程结构详解

    C++ 程序流程结构详解 C++ 是一种面向对象的高级程序设计语言,其程序流程结构包括顺序结构、选择结构和循环结构。 顺序结构 顺序结构就是按照代码的先后顺序依次执行,没有任何的判断和跳转语句。 示例: #include <iostream> using namespace std; int main() { int a = 1, b = 2, …

    C 2023年5月23日
    00
  • C语言小项目计时器的实现思路(倒计时+报警提示)

    C语言小项目计时器的实现思路(倒计时+报警提示) 思路概括 计时器的实现思路可以分为三个部分: 用户输入倒计时的时间,程序将其保存下来。 程序不断地循环检查当前时间与开始时间之间的差值是否大于等于用户设定的时间,当差值达到要求时,触发报警提示。 用户可以选择中途取消倒计时。 具体实现 1. 用户输入倒计时的时间 用户需输入倒计时的时间,可以通过scanf函数…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部