2.百果园水果店正在举行水果促销活动,促销力度最大的是草莓和 芦柑,其中,草莓原价50元/盒,现在买3送1:芦柑原价8元/斤, 现在购买,如果芦柑的总价超过48元,则减5元。 (1)请构造一个fruit基类(10分),要求包含: 数据成员: double unitPrice;//水果单价 函数成员: 自行设计构造函数完成初始化; double GetSalePrice ();//用来计算水果的销售价格 (2)由fruit类派生出Strawberry和0range两个类,Strawberry 添加数据成员存放购买草莓的盒数;0range类添加数据成员存放购 买芦柑的重量。要求Strawberry 和0range两个派生类用 GetSalePrice 函数计算销售价格,并输出计算结果(一个类20分)。
时间: 2023-06-11 13:07:15 浏览: 158
1. fruit基类的实现:
```c++
class fruit {
protected:
double unitPrice; // 水果单价
public:
fruit(double up = 0.0) : unitPrice(up) {} // 构造函数
virtual double GetSalePrice() { return unitPrice; } // 计算销售价格,虚函数
};
```
2. Strawberry和Orange两个派生类的实现:
```c++
class Strawberry : public fruit {
private:
int boxNum; // 购买草莓的盒数
public:
Strawberry(int bn = 0) : boxNum(bn), fruit(50.0) {} // 构造函数
double GetSalePrice() { return (boxNum / 3 * 2 + boxNum % 3) * unitPrice; } // 计算销售价格
};
class Orange : public fruit {
private:
double weight; // 购买芦柑的重量
public:
Orange(double w = 0.0) : weight(w), fruit(8.0) {} // 构造函数
double GetSalePrice() { // 计算销售价格
double totalPrice = weight * unitPrice;
if (totalPrice > 48.0) {
return totalPrice - 5.0;
} else {
return totalPrice;
}
}
};
```
3. 主函数的实现:
```c++
int main() {
Strawberry sb(5);
Orange og(6.5);
cout << "草莓的销售价格为:" << sb.GetSalePrice() << "元" << endl;
cout << "芦柑的销售价格为:" << og.GetSalePrice() << "元" << endl;
return 0;
}
```
输出结果:
```
草莓的销售价格为:200元
芦柑的销售价格为:51元
```
阅读全文