按如下要求编写程序: 1)实现描述超市的的类Suppermacket 类,记录系统中现有商品(用指针实现),定义 增加商品的函数Append,删除商品的函数Delete,查询商品的函数Query,并显示查询结 果; 2)定义商品类Goods,具有商品名称Name,商品价格price,商品数量number等属 性,操作Sale(销售商品,余额不足时给予 提示)、Add(商品上架操作)和ShowMe (显示商品信息)。 3)编写main函数,测试以上所要求的各 种功能,完成商品的增加、删除和查询商品, 以及商品销售和商品上架的操作。 4)可以利用对象成员来实现。
时间: 2023-06-09 12:05:45 浏览: 77
很高兴为您解答这个问题!以下是按要求编写的程序:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 商品类
class Goods{
public:
string Name; // 商品名称
double price; // 商品价格
int number; // 商品数量
// 上架商品
void Add(){
cout << "请输入商品名称:";
cin >> Name;
cout << "请输入商品价格:";
cin >> price;
cout << "请输入商品数量:";
cin >> number;
cout << "商品已成功上架!" << endl;
}
// 显示商品信息
void ShowMe(){
cout << "商品名称:" << Name << endl;
cout << "商品价格:" << price << endl;
cout << "商品数量:" << number << endl;
}
// 销售商品
void Sale(double &balance){
int count;
cout << "请输入购买数量:";
cin >> count;
if(count > number){
cout << "商品数量不足!" << endl;
} else if(count * price > balance){
cout << "余额不足!" << endl;
} else{
number -= count;
balance -= count * price;
cout << "购买成功!" << endl;
}
}
};
// 超市类
class Suppermacket{
public:
vector<Goods*> list; // 超市中的商品列表
// 增加商品
void Append(){
Goods *g = new Goods;
g->Add();
list.push_back(g);
cout << "商品已成功添加!" << endl;
}
// 删除商品
void Delete(){
string name;
cout << "请输入要删除的商品名称:";
cin >> name;
for(auto it = list.begin(); it != list.end(); it++){
if((*it)->Name == name){
delete (*it);
list.erase(it);
cout << "商品已成功删除!" << endl;
return;
}
}
cout << "商品不存在!" << endl;
}
// 查询商品
void Query(){
string name;
cout << "请输入要查询的商品名称:";
cin >> name;
for(auto it = list.begin(); it != list.end(); it++){
if((*it)->Name == name){
(*it)->ShowMe();
return;
}
}
cout << "商品不存在!" << endl;
}
};
int main(){
Suppermacket market;
double balance = 1000.0;
int choice;
while(true){
cout << "请选择操作:1.增加商品 2.删除商品 3.查询商品 4.销售商品 5.退出" << endl;
cin >> choice;
switch(choice){
case 1:
market.Append();
break;
case 2:
market.Delete();
break;
case 3:
market.Query();
break;
case 4:
if(market.list.size() == 0){
cout << "超市中暂无商品!" << endl;
} else{
string name;
cout << "请输入要销售的商品名称:";
cin >> name;
for(auto it = market.list.begin(); it != market.list.end(); it++){
if((*it)->Name == name){
(*it)->Sale(balance);
return;
}
}
cout << "商品不存在!" << endl;
}
break;
case 5:
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
}
}
}
```
希望这个代码可以帮助到您!如果您还有其他问题,请随时提出!
阅读全文