C++实现小型图书管理系统

C++实现小型图书管理系统攻略

1. 系统设计

图书管理系统主要包含以下功能:
- 添加书籍
- 删除书籍
- 查询书籍信息
- 修改书籍信息
- 显示所有书籍

因此,我们可以设计一个Book类来表示一本书籍,其中包含以下属性:
- 书名
- 作者
- 出版社
- ISBN编号
- 价格

下面是Book类的定义:

class Book {
public:
    string name; // 书名
    string author; // 作者
    string publisher; // 出版社
    string isbn; // ISBN编号
    double price; // 价格

    Book(string n, string a, string p, string i, double pr) {
        name = n;
        author = a;
        publisher = p;
        isbn = i;
        price = pr;
    }

    void print() { // 打印图书信息
        cout << "书名:" << name << endl;
        cout << "作者:" << author << endl;
        cout << "出版社:" << publisher << endl;
        cout << "ISBN编号:" << isbn << endl;
        cout << "价格:" << price << endl;
    }
};

接着,我们可以设计一个BookManager类来管理所有书籍,其中包含以下方法:
- 添加书籍
- 删除书籍
- 查询书籍信息
- 修改书籍信息
- 显示所有书籍

下面是BookManager类的定义:

class BookManager {
private:
    vector<Book> books; // 存储所有书籍

public:
    void addBook(Book book) { // 添加书籍
        books.push_back(book);
        cout << "添加成功!" << endl;
    }

    void removeBook(string isbn) { // 删除书籍
        for (int i = 0; i < books.size(); i++) {
            if (books[i].isbn == isbn) {
                books.erase(books.begin() + i);
                cout << "删除成功!" << endl;
                return;
            }
        }
        cout << "没有找到该书籍!" << endl;
    }

    void queryBook(string keyword) { // 查询书籍信息
        for (int i = 0; i < books.size(); i++) {
            if (books[i].name.find(keyword) != string::npos || books[i].author.find(keyword) != string::npos || books[i].publisher.find(keyword) != string::npos || books[i].isbn == keyword) {
                cout << "查找结果如下:" << endl;
                books[i].print();
                return;
            }
        }
        cout << "没有找到相关书籍!" << endl;
    }

    void modifyBook(string isbn, Book book) { // 修改书籍信息
        for (int i = 0; i < books.size(); i++) {
            if (books[i].isbn == isbn) {
                books[i] = book;
                cout << "修改成功!" << endl;
                return;
            }
        }
        cout << "没有找到该书籍!" << endl;
    }

    void printAllBooks() { // 显示所有书籍
        cout << "图书馆藏书如下:" << endl;
        for (int i = 0; i < books.size(); i++) {
            books[i].print();
            cout << endl;
        }
    }
};

2. 使用示例

下面以添加书籍和查询书籍信息为例展示系统的使用。

2.1 添加书籍

BookManager manager; // 创建图书管理器对象
Book book("C++程序设计", "张三", "清华大学出版社", "978-7-302-32692-7", 59.8); // 创建一本书籍
manager.addBook(book); // 添加书籍

输出为:

添加成功!

2.2 查询书籍信息

manager.queryBook("C++"); // 查询名字包含C++的书籍信息

输出为:

查找结果如下:
书名:C++程序设计
作者:张三
出版社:清华大学出版社
ISBN编号:978-7-302-32692-7
价格:59.8

以上就是C++实现小型图书管理系统的攻略。

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

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

相关文章

  • java异常:异常处理–try-catch结构详解

    Java异常: 异常处理–try-catch结构详解 在Java程序中,异常处理是一个非常重要的方面。Java异常是指程序在运行期间不正常的情况。当程序出现异常时,如果没有恰当的处理,它将使程序崩溃。Java提供了异常处理机制来解决这个问题。 异常 当Java程序在运行过程中遇到了异常时,它会产生一个异常对象。Java中的异常有两种类型: 检查异常和非检查…

    C 2023年5月23日
    00
  • IIS解析json的配置方法汇总

    当使用IIS托管网站时,如果需要让网站支持解析输入的json数据,需要对IIS进行相应的配置。以下是配置IIS解析json数据的具体步骤: 步骤一:安装ASP.NET Core Module 在配置IIS支持json数据解析之前,我们需要确保系统中已安装了ASP.NET Core Module。可以通过以下步骤进行安装: 打开服务器管理器,在左侧导航栏选择“…

    C 2023年5月23日
    00
  • 正则表达式的优化全面详解( 三江小渡)

    正则表达式的优化全面详解( 三江小渡)攻略 什么是正则表达式 正则表达式是一种用于匹配、查找和替换文本的强大工具,可以在文本中快速搜索和匹配复杂的模式。正则表达式用一些特殊字符和符号表示文本,在匹配时会对文本进行处理,从而找到所需的结果。 正则表达式的优化 在使用正则表达式时,为了提高匹配效率和准确性,需要对其进行优化。以下是常见的正则表达式优化方法: 1.…

    C 2023年5月23日
    00
  • C语言扫雷游戏的简单实现

    C语言扫雷游戏的简单实现攻略 一、游戏规则 扫雷是一款益智休闲游戏,其规则如下: 通过左键单击格子,可以将其翻开。如果格子为空白格,则会显示出周围8个格子中的雷数; 如果翻开的格子周围没有雷,则需要自动翻开周围的所有格子,直到边界或者有雷的格子; 通过右键单击格子,可以标记该格子为有雷的格子(或者是有疑问的格子)。一般来说,标记出所有的炸弹格子就算游戏胜利;…

    C 2023年5月23日
    00
  • C++深入讲解类与对象之OOP面向对象编程与封装

    C++深入讲解类与对象之OOP面向对象编程与封装攻略 什么是OOP面向对象编程? OOP,全名是Object-Oriented Programming,中文翻译是面向对象编程,它是一种编程方法论和编程思想,其核心思想是将一组数据结构和处理它们的方法组成对象,以及描述对象间的相互关系,实现数据封装,代码重用和灵活性等特性。 OOP面向对象编程实现了三个基本特性…

    C 2023年5月22日
    00
  • GoLang函数与面向接口编程全面分析讲解

    下面我来详细讲解一下“GoLang函数与面向接口编程全面分析讲解”的完整攻略。 GoLang函数与面向接口编程全面分析讲解 一、GoLang函数的基本概念与使用 1.1 GoLang函数的定义 GoLang函数定义格式如下: func functionName(parameter1 parameter1Type, parameter2 parameter2T…

    C 2023年5月23日
    00
  • C语言实现飞机大战小游戏

    C语言实现飞机大战小游戏完整攻略 简介 飞机大战是一款经典的小游戏,它的玩法简单却精巧,是C语言初学者不错的练手项目。本文将详细介绍如何用C语言实现飞机大战小游戏。 准备工作 在开始编写游戏代码前,我们需要做一些准备工作: 安装开发环境(比如 Visual Studio Code,CodeBlocks 等等); 了解游戏窗口、控件绘制、键盘事件等基础知识。 …

    C 2023年5月22日
    00
  • C语言实现考试报名管理系统

    C语言实现考试报名管理系统攻略 系统介绍: 本系统使用C语言编写,实现了考试报名管理系统,可以方便地管理考试的报名、查询与统计工作。 系统功能: 学生信息管理:系统中可以管理考生信息,包括学生姓名、学号、报考考试、成绩等信息。 考试报名:考生可以通过登录系统进行报名。 考试查询:考生和管理员根据个人信息可以查询自己或其他考生的成绩,并且管理员可以查看全体考生…

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