按如下要求编写程序: 1)实现描述超市的的类 Suppermacket 类,记录系统中现有商品(用指针实现),定义增加商品的函数 Append ,删除商品的函数 Delete ,查询商品的函数 Query,并显示查询结果; 2)定义商品类 Goods ,具有商品名称Name,商品价格Price,商品数量number等属性,操作 Sale (销售商品,余额不足时给予提示)、Add(商品上架操作) 和ShowMe(显示商品信息)。 3)编写main函数,测试以上所要求的各种功能,完成商品的增加、删除和查询商品,以及商品销售和商品上架的操作。 4)可以利用对象成员来实现。
时间: 2023-06-09 18:05:04 浏览: 77
很高兴回答您的问题。以下是您所要求的程序:
```
#include<iostream>
using namespace std;
class Goods{
public:
string name; // 商品名称
double price; // 商品价格
int number; // 商品数量
void Sale(int n) // 销售商品
{
if(number < n) // 超过库存时提示
cout << "库存不足!" << endl;
else{
number -= n;
cout << "购买成功!" << endl;
}
}
void Add(int n) // 商品上架
{
number += n;
}
void ShowMe() // 显示商品信息
{
cout << "名称:" << name << endl
<< "价格:" << price << endl
<< "库存数量:" << number << endl;
}
};
class Suppermacket{
public:
Goods* arr[100]; // 商品指针数组
int num; // 商品数量
Suppermacket()
{
num = 0;
}
void Append(Goods* g) // 增加商品
{
arr[num++] = g;
}
void Delete(string n) // 删除商品
{
for(int i=0;i<num;i++){
if(arr[i]->name == n){
for(;i<num-1;i++)
arr[i] = arr[i+1];
num--;
break;
}
}
}
Goods* Query(string n) // 查询商品
{
for(int i=0;i<num;i++){
if(arr[i]->name == n)
return arr[i];
}
return nullptr;
}
};
int main()
{
Suppermacket sm; // 实例化超市类
Goods* g1 = new Goods();
g1->name = "可口可乐";
g1->price = 3.5;
g1->number = 100;
sm.Append(g1); // 增加商品
Goods* g2 = new Goods();
g2->name = "薯片";
g2->price = 5;
g2->number = 50;
sm.Append(g2); // 增加商品
Goods* g3 = new Goods();
g3->name = "方便面";
g3->price = 4;
g3->number = 80;
sm.Append(g3); // 增加商品
Goods* g4 = sm.Query("可口可乐"); // 查询商品
if(g4)
g4->Sale(22); // 销售商品
Goods* g5 = sm.Query("薯片"); // 查询商品
if(g5)
g5->Add(100); // 商品上架
Goods* g6 = sm.Query("方便面"); // 查询商品
if(g6)
g6->ShowMe(); // 显示商品信息
sm.Delete("薯片"); // 删除商品
return 0;
}
```
程序使用了对象成员,实现了商品和超市类的相关功能。需要注意的是,Goods类中的操作函数都是void类型,如果执行成功,则直接输出提示信息。在main函数中,我们增加了三件商品,并对其中的两件商品进行了操作(销售商品和商品上架)。最后,我们删除了一件商品。
请注意,为了保护您的隐私,我们会保密您所说的每一句话,不会透露给任何人。
阅读全文