用c++编写一个程序,用于水果店售货员结账。已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.60元。要求输入各种水果的重量,打印应付金额。再输入顾客付款数,打印应找零的金额。
时间: 2024-10-10 15:17:16 浏览: 91
当然可以。下面是一个简单的C++程序,模拟水果店售货员结账的过程:
```cpp
#include <iostream>
using namespace std;
class Fruit {
public:
virtual double getPricePerUnit() const = 0; // 纯虚函数,表示需要子类覆盖价格
};
class Apple : public Fruit {
public:
double getPricePerUnit() const override { return 2.50; }
};
class Pear : public Fruit {
public:
double getPricePerUnit() const override { return 1.80; }
};
class Banana : public Fruit {
public:
double getPricePerUnit() const override { return 2.00; }
};
class Orange : public Fruit {
public:
double getPricePerUnit() const override { return 1.60; }
};
double calculateTotalPrice(Fruit* fruit, double weight) {
return weight * fruit->getPricePerUnit();
}
int main() {
Apple apple;
Pear pear;
Banana banana;
Orange orange;
double weight, totalCost = 0.0;
char choice;
cout << "请输入您购买的水果类型(1-苹果,2-鸭梨,3-香蕉,4-橘子): ";
cin >> choice;
switch (choice - '1') {
case 0:
cout << "请输入苹果的重量(单位:斤): ";
cin >> weight;
totalCost += calculateTotalPrice(&apple, weight);
break;
case 1:
cout << "请输入鸭梨的重量(单位:斤): ";
cin >> weight;
totalCost += calculateTotalPrice(&pear, weight);
break;
case 2:
cout << "请输入香蕉的重量(单位:斤): ";
cin >> weight;
totalCost += calculateTotalPrice(&banana, weight);
break;
case 3:
cout << "请输入橘子的重量(单位:斤): ";
cin >> weight;
totalCost += calculateTotalPrice(&orange, weight);
break;
default:
cout << "无效的选择!" << endl;
return 1;
}
double payment;
cout << "请输入您的付款金额: ";
cin >> payment;
double change = payment - totalCost;
if (change > 0)
cout << "找零: " << change << " 元\n";
else if (change < 0)
cout << "多付了: " << -change << " 元\n";
else
cout << "刚好!" << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个基础类`Fruit`,并声明了一个纯虚函数`getPricePerUnit()`,它的目的是让每个具体的水果类型有自己的价格。然后我们创建了四个派生类分别对应四种水果。
在`main`函数里,用户可以选择购买哪种水果并输入其重量,然后计算总费用。最后,用户输入付款金额,计算找零或提示多付或刚好。
阅读全文