用C++写代码仓库管理系统 系统功能的基本要求: 产品入库管理,可以填写入库单,确认产品入库; 产品出库管理,可以填写出库单,确认出库; 借出管理,凭借条借出,然后能够还库; 初始库存设置,设置库存的初始值,库存的上下警戒限; 可以进行盘库,反映每月、年的库存情况; 可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
时间: 2024-03-09 15:47:55 浏览: 138
好的,这是一个仓库管理系统,下面是一份简单的C++代码示例,可以根据您的实际情况进行修改和完善:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
#include <algorithm>
using namespace std;
// 产品结构体
struct Product {
string name; // 产品名称
int num; // 产品数量
};
// 入库单结构体
struct InRecord {
time_t time; // 入库时间
vector<Product> products; // 入库产品列表
};
// 出库单结构体
struct OutRecord {
time_t time; // 出库时间
vector<Product> products; // 出库产品列表
};
// 借出记录结构体
struct BorrowRecord {
time_t time; // 借出时间
string name; // 借出人姓名
vector<Product> products; // 借出产品列表
};
// 仓库管理系统类
class Warehouse {
public:
// 构造函数,初始化初始库存和上下限
Warehouse(int initialStock, int lowerLimit, int upperLimit) {
currentStock = initialStock;
this->lowerLimit = lowerLimit;
this->upperLimit = upperLimit;
}
// 产品入库
void addProduct(InRecord record) {
// 更新库存
for (auto& product : record.products) {
currentStock += product.num;
}
// 添加入库记录
inRecords.push_back(record);
}
// 产品出库
void removeProduct(OutRecord record) {
// 更新库存
for (auto& product : record.products) {
currentStock -= product.num;
}
// 添加出库记录
outRecords.push_back(record);
}
// 借出产品
void borrowProduct(BorrowRecord record) {
// 更新库存
for (auto& product : record.products) {
currentStock -= product.num;
}
// 添加借出记录
borrowRecords.push_back(record);
}
// 还库
void returnProduct(BorrowRecord record) {
// 更新库存
for (auto& product : record.products) {
currentStock += product.num;
}
// 添加还库记录
returnRecords.push_back(record);
}
// 盘库
void inventory() {
// 输出当前库存情况
cout << "当前库存:" << currentStock << endl;
}
// 查询入库记录
void queryInRecords() {
for (auto& record : inRecords) {
// 输出每个入库单的时间和产品列表
cout << "入库时间:" << asctime(localtime(&record.time));
for (auto& product : record.products) {
cout << "产品名称:" << product.name << ",数量:" << product.num << endl;
}
cout << endl;
}
}
// 查询出库记录
void queryOutRecords() {
for (auto& record : outRecords) {
// 输出每个出库单的时间和产品列表
cout << "出库时间:" << asctime(localtime(&record.time));
for (auto& product : record.products) {
cout << "产品名称:" << product.name << ",数量:" << product.num << endl;
}
cout << endl;
}
}
// 查询当前库存情况
void queryCurrentStock() {
cout << "当前库存:" << currentStock << endl;
}
private:
int currentStock; // 当前库存
int lowerLimit; // 库存下限
int upperLimit; // 库存上限
vector<InRecord> inRecords; // 入库记录列表
vector<OutRecord> outRecords; // 出库记录列表
vector<BorrowRecord> borrowRecords; // 借出记录列表
vector<BorrowRecord> returnRecords; // 还库记录列表
};
int main() {
// 初始化仓库管理系统
Warehouse warehouse(100, 20, 200);
// 添加入库记录
InRecord inRecord1;
inRecord1.time = time(NULL);
inRecord1.products.push_back({"产品A", 50});
inRecord1.products.push_back({"产品B", 30});
warehouse.addProduct(inRecord1);
// 添加出库记录
OutRecord outRecord1;
outRecord1.time = time(NULL);
outRecord1.products.push_back({"产品A", 20});
outRecord1.products.push_back({"产品B", 10});
warehouse.removeProduct(outRecord1);
// 添加借出记录
BorrowRecord borrowRecord1;
borrowRecord1.time = time(NULL);
borrowRecord1.name = "张三";
borrowRecord1.products.push_back({"产品A", 5});
borrowRecord1.products.push_back({"产品B", 3});
warehouse.borrowProduct(borrowRecord1);
// 添加还库记录
BorrowRecord returnRecord1;
returnRecord1.time = time(NULL);
returnRecord1.name = "张三";
returnRecord1.products.push_back({"产品A", 5});
returnRecord1.products.push_back({"产品B", 3});
warehouse.returnProduct(returnRecord1);
// 进行盘库
warehouse.inventory();
// 查询入库记录
warehouse.queryInRecords();
// 查询出库记录
warehouse.queryOutRecords();
// 查询当前库存情况
warehouse.queryCurrentStock();
return 0;
}
```
这个示例代码实现了仓库管理系统的基本要求,包括产品入库管理、产品出库管理、借出管理、初始库存设置、盘库和查询等功能。您可以根据具体需求进行修改和扩展。
阅读全文