用c++写一个超市管理系统
时间: 2024-02-18 12:34:30 浏览: 26
好的,下面是一个简单的超市管理系统的 C++ 代码示例,包含了商品信息的录入、查询、修改、删除以及购物结算等功能。注意:本代码仅供参考,实际应用中需要根据具体需求进行适当的修改和完善。
```c++
#include <iostream>
#include <string>
#include <vector>
#include <iomanip> // 控制输出格式
using namespace std;
// 商品结构体
struct Commodity {
string name; // 商品名称
double price; // 商品价格
int stock; // 商品库存
};
// 超市类
class Supermarket {
public:
// 构造函数
Supermarket() {
// 初始化商品列表
Commodity c1 = {"iPhone X", 9999.0, 10};
Commodity c2 = {"华为P30", 5299.0, 20};
Commodity c3 = {"小米9", 2999.0, 30};
Commodity c4 = {"OPPO R17", 3199.0, 15};
m_commodities.push_back(c1);
m_commodities.push_back(c2);
m_commodities.push_back(c3);
m_commodities.push_back(c4);
}
// 添加商品
void addCommodity() {
Commodity c;
cout << "请输入商品名称:";
cin >> c.name;
cout << "请输入商品价格:";
cin >> c.price;
cout << "请输入商品库存:";
cin >> c.stock;
m_commodities.push_back(c);
cout << "添加成功!" << endl;
}
// 查询商品
void queryCommodity() {
string name;
cout << "请输入要查询的商品名称:";
cin >> name;
for (int i = 0; i < m_commodities.size(); i++) {
if (m_commodities[i].name == name) {
cout << setw(10) << "名称"
<< setw(10) << "价格"
<< setw(10) << "库存" << endl;
cout << setw(10) << m_commodities[i].name
<< setw(10) << m_commodities[i].price
<< setw(10) << m_commodities[i].stock << endl;
return;
}
}
cout << "未找到该商品!" << endl;
}
// 修改商品
void modifyCommodity() {
string name;
cout << "请输入要修改的商品名称:";
cin >> name;
for (int i = 0; i < m_commodities.size(); i++) {
if (m_commodities[i].name == name) {
cout << "请输入新的商品价格:";
cin >> m_commodities[i].price;
cout << "请输入新的商品库存:";
cin >> m_commodities[i].stock;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该商品!" << endl;
}
// 删除商品
void deleteCommodity() {
string name;
cout << "请输入要删除的商品名称:";
cin >> name;
for (int i = 0; i < m_commodities.size(); i++) {
if (m_commodities[i].name == name) {
m_commodities.erase(m_commodities.begin() + i);
cout << "删除成功!" << endl;
return;
}
}
cout << "未找到该商品!" << endl;
}
// 购物结算
void settleAccounts() {
vector<Commodity> shoppingList; // 购物清单
double totalPrice = 0; // 总价
char choice = 'y'; // 是否继续添加商品
while (choice == 'y' || choice == 'Y') {
string name;
cout << "请输入要购买的商品名称:";
cin >> name;
for (int i = 0; i < m_commodities.size(); i++) {
if (m_commodities[i].name == name) {
shoppingList.push_back(m_commodities[i]);
totalPrice += m_commodities[i].price;
break;
}
}
cout << "是否继续添加商品(y/n):";
cin >> choice;
}
// 输出购物清单
cout << "购物清单:" << endl;
cout << setw(10) << "名称"
<< setw(10) << "价格" << endl;
for (int i = 0; i < shoppingList.size(); i++) {
cout << setw(10) << shoppingList[i].name
<< setw(10) << shoppingList[i].price << endl;
}
// 输出总价
cout << "总价:" << totalPrice << endl;
}
private:
vector<Commodity> m_commodities; // 商品列表
};
int main() {
Supermarket market;
while (true) {
cout << "请选择功能:" << endl;
cout << "1.添加商品" << endl;
cout << "2.查询商品" << endl;
cout << "3.修改商品" << endl;
cout << "4.删除商品" << endl;
cout << "5.购物结算" << endl;
cout << "6.退出系统" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
market.addCommodity();
break;
case 2:
market.queryCommodity();
break;
case 3:
market.modifyCommodity();
break;
case 4:
market.deleteCommodity();
break;
case 5:
market.settleAccounts();
break;
case 6:
cout << "谢谢使用,再见!" << endl;
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```