【C++】C++书店管理系统(源码+论文)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【C++】C++书店管理系统(源码+论文)【独一无二】


目录

  • 【C++】C++书店管理系统(源码+论文)【独一无二】
  • 一、设计要求
  • 二、设计思路
        • 1. 图书类 (Book)
        • 2. 图书店类 (BookStore)
        • 3. 用户交互部分
  • 三、运行结果


一、设计要求

该图书店管理系统提供了以下功能:

  1. 添加图书:管理员可以添加一本新的图书到图书库存中。管理员需要提供图书的名称、作者、出版商、页数和价格。

  2. 进货图书:管理员可以为已存在的图书增加库存量。管理员需要提供要进货的图书名称和数量。

  3. 出售图书:管理员可以销售图书,减少图书的库存量。管理员需要提供要销售的图书名称和数量。如果库存量不足,系统将显示出售失败的消息。

  4. 查询图书:管理员可以查询图书的详细信息,包括图书的名称、作者、出版商、页数、最后进货时间、库存量和价格。管理员需要提供要查询的图书名称。

  5. 退出系统:管理员可以选择退出系统,结束程序的运行。

管理员可以通过在命令行中选择对应的选项来执行上述功能。每个选项都有相应的输入要求,如图书名称、作者、数量等。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈


二、设计思路

本程序旨在模拟一个简单的图书店管理系统。该系统通过命令行界面与用户交互,支持图书的添加、进货、出售和查询等功能。程序的主要模块包括图书类、图书店类,以及与用户交互的主程序部分。以下是详细的设计思路和对应的代码块。

1. 图书类 (Book)

图书类包含了图书的基本信息,如书名、作者、出版商、页数、最后进货时间、库存和价格。该类还包含了进货和出售图书的方法。

class Book {
public:
    Book(std::string name, std::string author, std::string publisher, int pages, time_t lastStocked, double price)
        : name(name), author(author), publisher(publisher), pages(pages), lastStocked(lastStocked), stock(0), price(price) {}

    std::string name;       // 书名
    std::string author;     // 作者
    std::string publisher;  // 出版商
    int pages;              // 页数
    time_t lastStocked;     // 最后进货时间
    int stock;              // 库存
    double price;           // 价格

    void addStock(int quantity) {
        stock += quantity;
                // 略 多行代码。。。。。
    }
};

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈

2. 图书店类 (BookStore)

图书店类管理一个包含多个图书的集合。它提供了添加图书、进货图书、出售图书和查询图书的方法。

class BookStore {
public:
    void addBook(std::string name, std::string author, std::string publisher, int pages, double price) {
        books.push_back(Book(name, author, publisher, pages, time(0), price));
    }

    void stockBook(std::string name, int quantity) {
                // 略 多行代码。。。。。> 👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈

    }

    bool sellBook(std::string name, int quantity) {
        for (Book& book : books) {
            if (book.name == name) {
                return book.sellBook(quantity);
            }
        }
        return false;
    }

    void queryBook(std::string name) {
        for (const Book& book : books) {
            if (book.name == name) {
                        // 略 多行代码。。。。。
                return;
            }
        }
        std::cout << "未找到该书籍。" << std::endl;
    }

private:
    std::vector<Book> books; // 存储图书的集合
};
3. 用户交互部分

主函数部分用于与用户交互,提供图书的添加、进货、出售和查询功能的接口。通过命令行界面接收用户输入并调用 BookStore 类的方法进行相应的操作。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈

int main() {
    BookStore bookstore;

    while (true) {
        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 << "请输入您的选择:";

        // 略 多行代码。。。。。
    }

    return 0;
}

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈

本程序通过设计图书类和图书店类,实现了一个简单的图书店管理系统。图书类包含图书的基本信息和进货、出售的方法;图书店类管理多个图书的集合,并提供添加、进货、出售和查询的方法。主函数部分提供与用户交互的界面,通过命令行接收用户输入,调用相应的方法进行图书管理。


三、运行结果

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈

在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈

在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 书店 ” 获取,可拿来即用。👈👈👈


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/793064.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在 Python 中创建一个类似于 MS 计算器的 GUI 计算器

问题背景 假设我们需要创建一个类似于微软计算器的 GUI 计算器。这个计算器应该具有以下功能&#xff1a; 能够显示第一个输入的数字。当按下运算符时&#xff0c;输入框仍显示第一个数字。当按下第二个数字时&#xff0c;第一个数字被替换。 解决方案 为了解决这个问题&am…

mysql高可用解决方案:MHA原理及实现

MHA&#xff1a;Master High Availability。对主节点进行监控&#xff0c;可实现自动故障转移至其它从节点&#xff1b;通过提升某一从节点为新的主节点&#xff0c;基于主从复制实现&#xff0c;还需要客户端配合实现&#xff0c;目前MHA主要支持一主多从的架构&#xff0c;要…

STL(一)

书写形式&#xff1a;string (const string& str, size_t pos, size_t len npos); 举例&#xff1a; int main(){ string url("https://mp.csdn.net/mp_blog/creation/editor?spm1000.2115.3001.4503") string sub1(url,0,5);//从下标为0开始向后5个字符&…

07列的完整性约束

文章目录 设置表字段的主键约束设置表字段的外键约束(FOREIGN KEY,FK)、设置表字段的非空约束(NOT NULL, NK)设置表字段唯一约束(UNIQUE,UK)设置表字段值自动增加(AUTO_INCREMENT)设置表字段的默认值(DEFAULT)修改默认值DEFAULT、自增长和非空NK设置表字段的主键约…

30.ROM-IP核的调用

&#xff08;1&#xff09;ROM IP核简介&#xff1a; ROM是只读存储器&#xff0c;是一种只能读出事先锁存的固态半导体存储器。其特性是一旦存储资料就无法再将之改变或删除&#xff0c;并且资料也不会因为电源关闭而消失。&#xff08;掉电不丢失&#xff09; FPGA使用内部RA…

JavaScript青少年简明教程:为何学习JavaScript及JavaScript简介

JavaScript青少年简明教程&#xff1a;为何学习JavaScript及JavaScript简介 JavaScript最初是为web浏览器&#xff08;前端开发&#xff09;设计的。它可以在所有现代浏览器中运行&#xff0c;包括Chrome, Firefox, Safari, Edge等。 这意味着JavaScript代码可以在任何能运行…

学习测试7-ADB的使用

ADB是什么&#xff1f; ADB&#xff0c;即 Android Debug Bridge&#xff08;安卓调试桥&#xff09; 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具&#xff0c;它可为各种设备操作提供便利&#xff0c;如安装和调试应用&#xff0c;并提供对 Unix shell&…

数据(图像)增广

一、数据增强 1、增加一个已有数据集&#xff0c;使得有更多的多样性&#xff0c;比如加入不同的背景噪音、改变图片的颜色和形状。 2、增强数据是在线生成的 3、增强类型&#xff1a; &#xff08;1&#xff09;翻转 &#xff08;2&#xff09;切割 &#xff08;3&#xf…

MessageBox与HubSpot:企业沟通与客户管理的双重利器

今天咱们来聊聊两个超实用的工具——MessageBox和HubSpot。它们就像是你的超级助手&#xff0c;让你和客户沟通起来更顺畅&#xff0c;管理起来也更轻松。 先说说MessageBox吧 想象一下&#xff0c;你正在忙着工作&#xff0c;突然客户发来个消息&#xff0c;你嗖的一下就收到…

实验场:在几分钟内使用 Bedrock Anthropic Models 和 Elasticsearch 进行 RAG 实验

作者&#xff1a;来自 Elastic Joe McElroy, Aditya Tripathi 我们最近发布了 Elasticsearch Playground&#xff0c;这是一个新的低代码界面&#xff0c;开发人员可以通过 A/B 测试 LLM、调整提示&#xff08;prompt&#xff09;和分块数据来迭代和构建生产 RAG 应用程序。今天…

github恢复码怎么备份

https://docs.github.com/zh/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods

电商IP分类及其应用是什么?

在现代电商运营中&#xff0c;IP地址不仅是网络通信的基础&#xff0c;也扮演着关键的角色&#xff0c;支持多种功能和应用场景。本文将介绍几种常见的电商IP分类&#xff0c;以及它们在电商领域中的具体应用。 1. 前台IP与后台IP 电商网站在运营过程中通常需要区分前台IP和后…

数据不可修改 确保数据安全-GS备份存储方案防病毒防勒索

为保障企业关键数据不被病毒或勒索软件侵害&#xff0c;通过Veeam数据不可变功能&#xff0c;存储内数据更安全

【计算机组成原理 | 第三篇】各个硬件的组成部分

前言&#xff1a; 在前面的文章中&#xff0c;我们介绍了计算机架构的基本组成。可以知道计算机的基本架构由“存储器”&#xff0c;“运算器”&#xff0c;“控制器”&#xff0c;“输入设备”&#xff0c;“输出设备”这五部分组成。 在这片文章中&#xff0c;我们来深入的了…

【若依管理系统】注意事项

1.前端字段必填 rules: {sceneName: [{ required: true, message: "场景名称不能为空", trigger: "blur" }],orderNum: [{ required: true, message: "显示排序不能为空", trigger: "blur" }], }, 2.IDEA&#xff0c;默认以debug模式…

dive deeper into tensor:从底层开始学习tensor

inspired by karpathy/micrograd: A tiny scalar-valued autograd engine and a neural net library on top of it with PyTorch-like API (github.com)and Taking PyTorch for Granted | wh (nrehiew.github.io). 这属于karpathy的karpathy/nn-zero-to-hero: Neural Networks…

数据库系统原理练习 | 作业2-第2章关系数据库(附答案)

整理自博主本科《数据库系统原理》专业课完成的课后作业&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 *文中若存在书写不合理的地方&#xff0c;欢迎各位斧正。 专业课本&#xff1a; 目录 一、选择题 二、填空题 三、简答题 四、关系代数 1.课本p70页&…

插片式远程 I/O模块:Profinet总线耦合器在SIMATIC Manager配置

XD9000是Profinet总线耦合器&#xff0c;单个耦合器最多可扩展32个I/O模块&#xff01;本文将详细介绍如何在SIMATIC Manager中配置插片式远程 I/O模块的Profinet总线耦合器&#xff0c;帮助您更好地应用这一技术。 一、SIMATIC Manager软件组态步骤&#xff1a; 1、创建工程&…

bevfomer self-att to transformer to tensorrt

self-attentation https://blog.csdn.net/weixin_42110638/article/details/134016569 query input* Wq key input* Wk value input* Wv output 求和 query . key * value detr multiScaleDeformableAttn Deformable Attention Module&#xff0c;在图像特征上&#…

利用 Plotly.js 创建交互式条形图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 利用 Plotly.js 创建交互式条形图 应用场景介绍 交互式条形图广泛应用于数据可视化和分析领域。它可以直观地展示不同类别或分组之间的数值差异&#xff0c;并允许用户通过交互操作探索数据。 代码基本功能介…