#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() {
// 初始化
title = "";
author = "";
publisher = "";
time = "";
pages = 0;
quantity = 0;
price = 0.0;
}
void setTitle(string title)
{
this->title = title;
}
void setAuthor(string author)
{
this->author = author;
}
void setPublisher(string publisher)
{
this->publisher = publisher;
}
void setTime(string time)
{
this->time = time;
}
void setPages(int pages)
{
this->pages = pages;
}
void setQuantity(int quantity)
{
this->quantity = quantity;
}
void setPrice(float price)
{
this->price = price;
}
string getTitle()
{
return title;
}
string getAuthor()
{
return author;
}
string getPublisher()
{
return publisher;
}
string getTime()
{
return time;
}
int getPages()
{
return pages;
}
int getQuantity()
{
return quantity;
}
float getPrice()
{
return price;
}
};
class BookStore {
private:
Book books[1000];
int count;
public:
BookStore() {
// 初始化
count = 0;
}
void addBook() {
// 添加书籍
Book b;
string title, author, publisher, time;
int pages, quantity;
float price;
cout << "\n请输入书籍信息:" << endl;
cout << "书名:";
cin >> title;
cout << "作者:";
cin >> author;
cout << "出版社:";
cin >> publisher;
cout << "页数:";
cin >> pages;
cout << "单价:";
cin >> price;
cout << "入库时间:";
cin >> time;
cout << "库存量:";
cin >> quantity;
b.setTitle(title);
b.setAuthor(author);
b.setPublisher(publisher);
b.setPages(pages);
b.setPrice(price);
b.setTime(time);
b.setQuantity(quantity);
books[count++] = b;
// 将书籍信息写入文件中
ofstream out("books.txt", ios::app);
out << b.getTitle() << "," << b.getAuthor() << "," << b.getPublisher() << "," << b.getPages() << "," << b.getPrice() << "," << b.getTime() << "," << b.getQuantity() << endl;
cout << "添加成功!" << endl;
}
void sellBook() {
// 出售书籍
string title;
cout << "\n请输入出售的书籍名称:";
cin >> title;
for (int i = 0; i < count; i++) {
if (books[i].getTitle() == title) {
int quantity = books[i].getQuantity() - 1;
if (quantity < 0) {
cout << "库存不足,无法出售!" << endl;
return;
}
books[i].setQuantity(quantity);
// 将销售信息写入文件中
ofstream out("sales.txt", ios::app);
time_t now = time(0);
char* dt = ctime(&now);
out << dt << " " << books[i].getTitle() << "," << books[i].getAuthor() << "," << books[i].getPublisher() << "," << books[i].getPrice() << endl;
cout << "出售成功!" << endl;
return;
}
}
cout << "未找到该书籍!" << endl;
}
void queryBook() {
// 查询书籍信息
int option;
string keyword;
cout << "\n请选择查询方式:" << endl;
cout << "1. 书名" << endl;
cout << "2. 作者" << endl;
cout << "3. 出版社" << endl;
cout << "4. 价格" << endl;
cin >> option;
if (option <= 0 || option > 4) {
cout << "无效的选择!" << endl;
return;
}
cout << "请输入关键词:";
cin >> keyword;
cout << "查询结果:" << endl;
for (int i = 0; i < count; i++) {
Book b = books[i];
bool match = false;
switch (option) {
case 1:
if (b.getTitle() == keyword)
match = true;
break;
case 2:
if (b.getAuthor() == keyword)
match = true;
break;
case 3:
if (b.getPublisher() == keyword)
match = true;
break;
case 4:
if (b.getPrice() == atof(keyword.c_str()))
match = true;
break;
}
if (match) {
cout << "书名:" << b.getTitle() << endl;
cout << "作者:" << b.getAuthor() << endl;
cout << "出版社:" << b.getPublisher() << endl;
cout << "页数:" << b.getPages() << endl;
cout << "单价:" << b.getPrice() << endl;
cout << "入库时间:" << b.getTime() << endl;
cout << "库存量:" << b.getQuantity() << endl;
cout << endl;
}
}
}
void checkStock() {
// 自动预警提示
bool warning = false;
for (int i = 0; i < count; i++) {
if (books[i].getQuantity() == 1) {
cout << "警告:书籍\"" << books[i].getTitle() << "\"的库存仅剩1本!" << endl;
warning = true;
}
}
if (!warning) {
cout << "当前无需预警。" << endl;
}
}
};
int main() {
BookStore bs;
int option;
while (1) {
cout << "\n请选择以下操作:" << endl;
cout << "1. 进货" << endl;
cout << "2. 销售" << endl;
cout << "3. 查询" << endl;
cout << "4. 自动预警提示" << endl;
cout << "5. 退出" << endl;
cin >> option;
switch (option) {
case 1:
bs.addBook();
break;
case 2:
bs.sellBook();
break;
case 3:
bs.queryBook();
break;
case 4:
bs.checkStock();
break;
case 5:
cout << "谢谢使用,再见!" << endl;
return 0;
default:
cout << "无效的选择!" << endl;
}
}
return 0;
}
相关推荐
【MFiX后处理】MFiX中使用des_usr_var输出颗粒的传热量(2020-11-27更新变更输出变量名方法)
参考之前Yin的那一篇博客 https://www.cnblogs.com/Jay-CFD/p/10621274.html 输出一下颗粒传热量 使用的算例是fluid_bed_dem_2d 打开des scalar tracking 前面都和Yin那篇一样,打开enable user scalar tracking 输入2 因为第一个用来测试Y加速度了 第二个输出传热量 然后在output vtk中勾选好 更改源代码 源代码为des_thermo_newvalues.f 在mfix-GUI自带的ed
echarts实现3D地图——map3D
【代码】echarts实现3D地图——map3D。
腾讯会议录屏损坏修复:使用 recover_mp4 工具的完整解决方案
腾讯会议录屏损坏修复指南 当腾讯会议录屏因电脑蓝屏等意外导致MP4文件损坏时,可使用recover_mp4工具结合FFMPEG进行修复。操作步骤包括:1)准备相同参数正常视频作为参考;2)分析正常视频生成结构文件;3)分离损坏视频的音视频流;4)使用FFMPEG重新封装。该方法能有效修复因意外中断导致的视频索引损坏问题。修复前需将工具和文件放在同一目录下,并确保参考视频与损坏录屏的参数完全一致。
相机标定-机器视觉基础(理论推导、Halcon和OpenCV相机标定)
相机标定是获得目标工件精准坐标信息的基础。首先,必须进行相机内参标定,构建一个模型消除图像畸变;其次,需要对相机和机器人的映射关系进行手眼标定,构建一个模型将图像坐标系上的点映射到世界坐标系。主要分为背景知识、相机内外参模型推导、编程代码实现三个部分。
【通信】多径衰落信道的matlab仿真
1 简介 2 部分代码 clearf_c=1e3; %carrier frequency(no modulation)time_1 = (linspace (0, 10, 1000)); %timesignal_in = sin (2 * pi *f_c* time_1); %sine wave plot (time_1, signal_in, 'b');grid on;
【知识分享】IBIS 建模指南 03
本文介绍了差分缓冲器的数据提取方法,重点分析了差分系统与单端系统的核心差异。文章详细阐述了差分接收机和驱动器的结构特点、工作原理及建模方法,指出全差分结构具有优异的电源噪声抑制能力。针对IBIS建模规范,作者提出了三维I-V曲面数据提取技术,并介绍了共模/差模电流分离、片上端接处理以及V-T表生成的解决方案。文章还探讨了差分电容(C_diff)的测量方法和数据简化策略,为复杂差分缓冲器的精确建模提供了系统化的技术路径。
VAY 是 SAP 自动科目确定(OBYC-GBB)中的科目修改码,专用于带科目分配对象的销售订单发货场景,核心是触发 “Dr 成本要素科目(如销售费用 / 特定成本对象) Cr 库存商品” 的分录,
摘要:VAY是SAP中用于带科目分配对象(如成本中心、WBS)的销售订单发货的科目修改码,与标准VAX场景不同,它生成"借成本要素科目/贷库存商品"的分录。配置路径为OBYC-GBB-VAY,需确保借方科目为成本要素。典型业务场景包括免费样品、项目专用发货等。常见问题包括VAY未触发或科目记账错误,需检查销售订单科目分配、移动类型设置及OBYC配置。特殊场景建议单独配置科目以便费用分析。
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
1532



被折叠的 条评论
为什么被折叠?



