书店管理系统

2023-11-13

设计一个书店管理系统,能完成书店的日常管理工作。

要求完成的基本功能:

1、进货入库记录。

2、销售出货记录。

3、图书信息查询:可通过书名、作者等途径查询某本图书的详细信息(含书名、作者、出版社、页数、最新入库时间、库存量、价格等)。

4、自动预警提示(当某图书的库存量为1时自动预警提示)

模块化

根据类的继承与多态,我们可以创建以书Book为基类,BookStore为派生类,分为头文件.h和函数文件.c再加上主函数main.c即可

 类的分别实现

类的实现是在分别的.h文件当中,并且.h文件当中应当包含类所含成员函数和属性等等。

Book.h

#pragma once
#include <iostream>
#include <fstream>
#include <cstring>
#include <ctime>
#include <cstdlib>
using namespace std;

class Book {
private:
    string title, author, publisher, time;
    int pages, quantity;
    float price;

public:
    Book();

    void setTitle(string title);
    void setAuthor(string author);
    void setPublisher(string publisher);
    void setTime(string time);
    void setPages(int pages);
    void setQuantity(int quantity);
    void setPrice(float price);
    string getTitle();
    string getAuthor();
    string getPublisher();
    string getTime();
    int getPages();
    int getQuantity();
    float getPrice();
};

BookStore.h

#pragma once
#include <iostream>
#include <fstream>
#include <cstring>
#include <ctime>
#include <cstdlib>
using namespace std;

class BookStore
{
private:
    Book books[1000];
    int count;

public:
    BookStore();
    void addBook();
    void sellBook();
    void queryBook();
    void checkStock();
};

在.c文件中类外定义

注意带上头文件

Book.c

#include <iostream>
#include <fstream>
#include <cstring>
#include <ctime>
#include <cstdlib>
#include "Book.h"
using namespace std;

Book::Book()
{
    // 初始化
    title = "";
    author = "";
    publisher = "";
    time = "";
    pages = 0;
    quantity = 0;
    price = 0.0;
}
//设置图书信息
void Book::setTitle(string title)
{
    this->title = title;
}
void Book::setAuthor(string author)
{
    this->author = author;
}
void Book::setPublisher(string publisher)
{
    this->publisher = publisher;
}
void Book::setTime(string time)
{
    this->time = time;
}
void Book::setPages(int pages)
{
    this->pages = pages;
}
void Book::setQuantity(int quantity)
{
    this->quantity = quantity;
}
void Book::setPrice(float price)
{
    this->price = price;
}
//获取图书信息
string Book::getTitle()
{
    return title;
}
string Book::getAuthor()
{
    return author;
}
string Book::getPublisher()
{
    return publisher;
}
string Book::getTime()
{
    return time;
}
int Book::getPages()
{
    return pages;
}
int Book::getQuantity()
{
    return quantity;
}
float Book::getPrice()
{
    return price;
}

主函数进行运行和设置菜单操作等,其余的请关注用户CodeSeven

我都放在那里面了,感谢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

书店管理系统 的相关文章

随机推荐

  • input选择保存的文件夹路径

    input添加这两个属性directory nwdirectory
  • stl_set

    begin 返回指向第一个元素的 迭代器 clear 清除所有元素 size 集合中元素的数目 count 返回某个值元素的个数 empty 如果集合为空 返回true 真 end 返回指向最后一个元素之后的迭代器 不是最后一个元素器 in
  • vue 省市区三级联动选择 pc端项目插件element-china-area-data(非常推荐)

    使用步骤 1 npm install element china area data S 2 import provinceAndCityData regionData provinceAndCityDataPlus regionDataP
  • 解决挂载ext4格式文件系统错误 JBD2: Unrecognised features on journal问题

    1 mount demo img mnt dmesg 报如下错误 1479130 280508 JBD2 Unrecognised features on journal 1479130 280512 EXT4 fs loop1 error
  • python 如果你的年龄大于18_python基础

    在python是空格是很重要的比如 如果在print前面加一个空格就会报错 在python中你必须顶格写 if 要判断的条件 条件成立时要执行的事情 图1 在图1中要判断的条件是年龄是不是大于18岁 大于18岁就可以去酒吧了 else语句配
  • Qt实现简单的显示网页(QtWebkit、QtWebEngine、QAxWidget)

    首先先说说QtWebkit QtWebEngine QAxWidget三种方式显示网页的应用场景 QtWebkit 在Qt5 6以前 都是使用QtWebkit组件 但Qt5 6以后 移除了QtWebkit这个组件 QtWebEngine Q
  • 握手信号valid/ready的打拍技巧

    一 前言 valid和ready信号 尤其是ready信号的时序一般很差 因为它通常是接收端通过组合逻辑输出的 当流水线的级数较多时 ready反压信号一级一级往前传递 时序将会变得更差 为了优化时序 通常需要对valid和ready信号进
  • Pyhton,OpenCV对象检测之——Haar级联人脸及眼睛检测

    Pyhton OpenCV对象检测之 Haar级联人脸及眼睛检测 1 效果图 2 原理 2 1 Haar人脸检测原理 2 2 Haar级联预训练的模型 3 源码 3 1 图像面部及眼睛检测 3 2 视频帧面部及眼睛检测 参考 这篇博客将介绍
  • CMD找不到Python?

    前言 当我们费完一牛一虎之力给我们的Windows装上python后 却发现在CMD中输入python时发生这样一幕 D gt python python 不是内部或外部命令 也不是可运行的程序或批处理文件 那么这就需要来Look一下这篇文
  • shell中条件判断单双中括号&数值比较&字符串比较

    文章目录 条件判断中的单双中括号 单中括号 双中括号 背景 在修改centreon监控脚本的时候发现shell脚本中if判断条件使用的几点疑问 遂记录 条件判断中的单双中括号 样例1如下 判断当前小时 24小时制 是否大于2点 time d
  • [Interview系列 知识储备回顾] 集合篇 - Map[1]

    concurrentHashMap考点分析 concurrentHashMap在JDK 1 7怎么解决线程安全 concurrentHashMap在JDK 1 8怎么解决线程安全 concurrentHashMap在JDK 1 7怎么解决线
  • JeeSite数据权限控制解决方案

    支持如下数据范围设置 所有数据 所在公司及以下数据 所在公司数据 所在部门及以下数据 所在部门数据 仅本人数据 按明细设置 特殊情况下 跨机构授权 User user UserUtils getUser 使用标准查询 DetachedCri
  • 【python设置临时环境变量】export PYTHONPATH=$(pwd):${PYTHONPATH}

    PYTHONPATH是Python搜索路径 默认我们import的模块都会从PYTHONPATH里面寻找 打印PYTHONPATH import os print sys path gt usr local lib python2 7 di
  • 机器学习之朴素贝叶斯

    朴素贝叶斯 贝叶斯法则 条件独立 如果P X Y Z P X Z P Y Z 或等价地P X Y Z P X Z 则称事件X Y对于给定事件Z是条件独立的 也就是说 当Z发生时 X发生与否与Y发生与否是无关的 朴素贝叶斯 假设每个输入变量独
  • Qt + OpenGL 教程(六):旋转的几种方法(自动旋转、键盘控制、鼠标控制旋转)

    总结了几种旋转的方法 自动旋转 利用计时器 每隔一段时间重新绘制屏幕 实现旋转 键盘控制 点击某个按键 旋转某一角度 鼠标控制 围绕y轴 跟随鼠标旋转 目前只是围绕y轴旋转 不能按任意轴旋转 代码分别为 以后补充
  • ORB_SLAM2 源码解析 特征匹配 (五)

    目录 一 单目初始化中的特征匹配SearchForInitialization 二 跟踪 TrackwithModel TrackReferenceKeyFrame 三 词袋介绍BoW 1 直观理解词袋 2 词袋基本思想 3 从字典结构到k
  • 使用D3.js实现框选节点并进行多节点拖动

    最近再使用d3 js关系图形展示时 需要选中多节点并进行拖动 一开始并不知道D3提供了此API 下面是我结合项目业务整理的框选操作的重点方面的应用 这是d3提供的api 使用鼠标或触摸选择一维或二维区域 可参考示例 https blockb
  • Unity 使用 Dotween 的 Sequence 制作UI动画并且可重复利用

    目录 前言 一 DOTween是什么 二 使用步骤 1 导入DOTween 2 配置DOTween 3 使用代码编写动画 4 代码API解释 总结 前言 DOTween可以制作简易的UI动画 避免创建大量的Animator 本篇文章介绍一下
  • Spring Boot + k8s 最佳实践

    前言 K8s Spring Boot实现零宕机发布 健康检查 滚动更新 优雅停机 弹性伸缩 Prometheus监控 配置分离 镜像复用 配置 健康检查 健康检查类型 就绪探针 readiness 存活探针 liveness 探针类型 ex
  • 书店管理系统

    设计一个书店管理系统 能完成书店的日常管理工作 要求完成的基本功能 1 进货入库记录 2 销售出货记录 3 图书信息查询 可通过书名 作者等途径查询某本图书的详细信息 含书名 作者 出版社 页数 最新入库时间 库存量 价格等 4 自动预警提