编程: 按如下要求编写程序: 1)实现描述超市的的类 Suppermacket类,记录系统中现有商品(用指针实现),定义增加商品的函数Append,删除商品的函数D elete,查询商品的函数Query,并显示查询结果; 2)定义商品类 Goods,具有商品名称Na me,商品价格Price,商品数量number等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作) e(显示商品信息)。 和ShowM 3)编写main函数,测试以上所要求的各种功能,完成商品的增加、删除和查询商品,以及商品销售和商品上架的操作。 可以利用对象成员来实现。
时间: 2023-06-10 18:04:20 浏览: 108
我明白了,下面是对应的C++代码:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Goods {
public:
string Name;
double Price;
int Number;
Goods(string name = "", double price = 0.0, int number = 0) {
Name = name;
Price = price;
Number = number;
}
void Sale(int num) {
if (Number >= num) {
Number -= num;
cout << "销售成功!" << endl;
} else {
cout << "商品数量不足!" << endl;
}
}
void Add(int num) {
Number += num;
cout << "商品上架操作成功!" << endl;
}
void Show() {
cout << "商品名称:" << Name << endl;
cout << "商品价格:" << Price << endl;
cout << "商品数量:" << Number << endl;
}
};
class Supermarket {
public:
vector<Goods*> goods_list;
void Append(Goods* goods) {
goods_list.push_back(goods);
cout << "商品添加成功!" << endl;
}
void Delete(int index) {
if (index < 0 || index >= goods_list.size()) {
cout << "商品不存在!" << endl;
} else {
goods_list.erase(goods_list.begin() + index);
cout << "商品删除成功!" << endl;
}
}
void Query(string name) {
bool found = false;
cout << "查询结果如下:" << endl;
for (int i = 0; i < goods_list.size(); i++) {
if (goods_list[i]->Name == name) {
goods_list[i]->Show();
found = true;
}
}
if (!found) {
cout << "商品不存在!" << endl;
}
}
};
int main() {
Supermarket s;
Goods* g1 = new Goods("可乐", 2.5, 100);
Goods* g2 = new Goods("雪碧", 2.5, 50);
Goods* g3 = new Goods("矿泉水", 1.5, 200);
s.Append(g1);
s.Append(g2);
s.Append(g3);
s.Query("可乐");
g1->Sale(50);
g1->Show();
g2->Add(30);
g2->Show();
s.Delete(1);
return 0;
}
```
运行结果:
```
商品添加成功!
商品添加成功!
商品添加成功!
查询结果如下:
商品名称:可乐
商品价格:2.5
商品数量:100
销售成功!
商品名称:可乐
商品价格:2.5
商品数量:50
商品上架操作成功!
商品名称:雪碧
商品价格:2.5
商品数量:80
商品删除成功!
```
阅读全文