继续
时间: 2024-02-29 10:52:39 浏览: 2
vector<Item>::iterator findItem(int id); // 查找商品
};
#endif
```
warehouse.cpp
```c++
#include "warehouse.h"
#include <fstream>
using namespace std;
void Warehouse::add() {
Item item;
cout << "请输入商品编号:";
cin >> item.id;
// 检查商品是否已经存在
if (findItem(item.id) != items.end()) {
cout << "商品已经存在!" << endl;
return;
}
cout << "请输入商品名称:";
cin >> item.name;
cout << "请输入库存数量:";
cin >> item.quantity;
cout << "请输入单价:";
cin >> item.price;
items.push_back(item);
cout << "商品添加成功!" << endl;
}
void Warehouse::remove() {
int id;
cout << "请输入要删除的商品编号:";
cin >> id;
auto iter = findItem(id);
if (iter == items.end()) {
cout << "商品不存在!" << endl;
return;
}
items.erase(iter);
cout << "商品删除成功!" << endl;
}
void Warehouse::query() {
int id;
cout << "请输入要查询的商品编号:";
cin >> id;
auto iter = findItem(id);
if (iter == items.end()) {
cout << "商品不存在!" << endl;
return;
}
cout << "商品编号:" << iter->id << endl;
cout << "商品名称:" << iter->name << endl;
cout << "库存数量:" << iter->quantity << endl;
cout << "单价:" << iter->price << endl;
}
void Warehouse::modify() {
int id;
cout << "请输入要修改的商品编号:";
cin >> id;
auto iter = findItem(id);
if (iter == items.end()) {
cout << "商品不存在!" << endl;
return;
}
cout << "请输入新的商品名称:";
cin >> iter->name;
cout << "请输入新的库存数量:";
cin >> iter->quantity;
cout << "请输入新的单价:";
cin >> iter->price;
cout << "商品信息修改成功!" << endl;
}
void Warehouse::display() {
cout << "商品编号\t商品名称\t库存数量\t单价" << endl;
for (auto& item : items) {
cout << item.id << "\t\t" << item.name << "\t\t" << item.quantity << "\t\t" << item.price << endl;
}
}
void Warehouse::sort() {
int choice;
cout << "请选择排序方式:1. 按编号排序 2. 按名称排序 3. 按库存数量排序 4. 按单价排序" << endl;
cin >> choice;
switch (choice) {
case 1:
std::sort(items.begin(), items.end(), [](const Item& a, const Item& b) { return a.id < b.id; });
break;
case 2:
std::sort(items.begin(), items.end(), [](const Item& a, const Item& b) { return a.name < b.name; });
break;
case 3:
std::sort(items.begin(), items.end(), [](const Item& a, const Item& b) { return a.quantity < b.quantity; });
break;
case 4:
std::sort(items.begin(), items.end(), [](const Item& a, const Item& b) { return a.price < b.price; });
break;
default:
cout << "无效的选择!" << endl;
return;
}
cout << "商品信息排序成功!" << endl;
}
void Warehouse::save() {
ofstream file("warehouse.txt");
if (!file.is_open()) {
cout << "文件打开失败!" << endl;
return;
}
for (auto& item : items) {
file << item.id << "," << item.name << "," << item.quantity << "," << item.price << endl;
}
file.close();
cout << "商品信息保存成功,程序即将退出!" << endl;
}
vector<Item>::iterator Warehouse::findItem(int id) {
return std::find_if(items.begin(), items.end(), [id](const Item& item) { return item.id == id; });
}
```
这里实现了基本的增删改查、排序和保存功能,你可以根据需要修改和扩展代码。