1)实现描述超市的的类 Suppermacket 类,记录系统中现有商品(用指针实现),定义增加商品的函数 Append ,删除商品的函数 Delete ,查询商品的函数 Query,并显示查询结果; 2)定义商品类 Goods ,具有商品名称Name,商品价格Price,商品数量number等属性,操作 Sale (销售商品,余额不足时给予提示)、Add(商品上架操作) 和ShowMe(显示商品信息)。 3)编写main函数,测试以上所要求的各种功能,完成商品的增加、删除和查询商品,以及商品销售和商品上架的操作。 4)可以利用对象成员来实现。
时间: 2023-06-06 21:07:13 浏览: 70
python利用dir函数查看类中所有成员函数示例代码
回答:好的,我明白了。以下是对您的问题的回答:
1) 好的,我可以为您实现一个描述超市的类 Suppermacket 类,用指针实现现有商品记录,定义增加商品的函数 Append,删除商品的函数 Delete,查询商品的函数 Query,并显示查询结果。这个类的定义如下:
```C++
class Suppermacket {
private:
Goods **goodsList; // 商品列表,用指针实现
int goodsNumber; // 商品数量
public:
Suppermacket(); // 构造函数
~Suppermacket(); // 析构函数
void Append(Goods *goods);
void Delete(int index);
void Query(char *name);
};
```
其中,Goods 为商品类,具有商品名称 Name、商品价格 Price、商品数量 Number 等属性,操作 Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和 ShowMe(显示商品信息),其定义如下:
```C++
class Goods {
private:
char *name; // 商品名称
double price; // 商品价格
int number; // 商品数量
public:
Goods(char *name, double price, int number);
~Goods();
void Sale(int amount, double &balance);
void Add(int amount);
void ShowMe();
};
```
2) 好的,我已经为您定义了商品类 Goods,其中具有商品名字 Name、商品价格 Price、商品库存 Number 等属性。操作 Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和 ShowMe(显示商品信息)是这个类的成员函数。定义如下:
```C++
Goods::Goods(char *name, double price, int number) {
this->name = new char[strlen(name) + 1];
strcpy(this->name, name);
this->price = price;
this->number = number;
}
Goods::~Goods() {
delete[] name;
}
void Goods::Sale(int amount, double &balance) {
if (amount * price > balance) {
std::cout << "Sorry, your balance is not enough!" << std::endl;
} else if (amount > number) {
std::cout << "Sorry, we don't have enough goods!" << std::endl;
} else {
number -= amount;
balance -= amount * price;
}
}
void Goods::Add(int amount) {
number += amount;
}
void Goods::ShowMe() {
std::cout << "Name: " << name << ", Price: " << price << ", Number: " << number << std::endl;
}
```
3) 好的,我已经为您编写了 main 函数,来测试上述所要求的各种功能,包括商品的增加、删除和查询,以及商品销售和商品上架的操作。代码如下:
```C++
int main() {
Suppermacket s;
double balance = 100.00;
Goods *g1 = new Goods("Apple", 4.50, 100);
Goods *g2 = new Goods("Banana", 3.00, 50);
Goods *g3 = new Goods("Milk", 5.00, 20);
s.Append(g1);
s.Append(g2);
s.Append(g3);
g1->Sale(5, balance);
g2->Sale(10, balance);
g1->Add(20);
g3->Add(10);
s.Delete(2);
s.Query("Banana");
delete g1;
delete g2;
delete g3;
return 0;
}
```
4) 好的,我已经了解您的意思了,可以使用对象成员来实现上述功能。我会为您调整代码。
阅读全文