写一个C++代码 利用抽象类编写一个程序实现公交车卡售票管理。当输入为“老年卡”、“学生卡”和“普通卡”时显示不同的卡类,及购票金额(“老年卡”购票金额=原价50%、“学生卡”购票金额=原价60%、
时间: 2023-10-01 19:06:41 浏览: 86
以下是一个简单的C++代码,利用抽象类实现公交车卡售票管理:
```c++
#include <iostream>
using namespace std;
// 抽象类:卡类
class Card {
public:
// 纯虚函数:获取购票金额
virtual float getTicketPrice(float originalPrice) = 0;
};
// 老年卡类
class ElderCard : public Card {
public:
// 实现纯虚函数:获取购票金额
float getTicketPrice(float originalPrice) {
return originalPrice * 0.5;
}
};
// 学生卡类
class StudentCard : public Card {
public:
// 实现纯虚函数:获取购票金额
float getTicketPrice(float originalPrice) {
return originalPrice * 0.6;
}
};
// 普通卡类
class NormalCard : public Card {
public:
// 实现纯虚函数:获取购票金额
float getTicketPrice(float originalPrice) {
return originalPrice;
}
};
int main() {
// 根据输入创建不同的卡类
string cardType;
cout << "请输入卡的类型(老年卡/学生卡/普通卡):" << endl;
cin >> cardType;
Card* card;
if (cardType == "老年卡") {
card = new ElderCard();
} else if (cardType == "学生卡") {
card = new StudentCard();
} else {
card = new NormalCard();
}
// 获取购票金额并输出
float originalPrice = 20; // 假设原价为20元
float ticketPrice = card->getTicketPrice(originalPrice);
cout << "购票金额:" << ticketPrice << "元" << endl;
// 释放动态分配的内存
delete card;
return 0;
}
```
该代码实现了一个简单的公交车卡售票管理程序,用户输入卡的类型后,根据输入创建不同的卡类,并获取购票金额并输出。其中,抽象类`Card`定义了纯虚函数`getTicketPrice`,该函数用于获取购票金额,不同的卡类继承并实现该函数以实现不同的购票金额计算方式。用户输入的卡类型会决定创建哪个卡类对象,并调用该对象的`getTicketPrice`函数获取购票金额。最后,动态分配的卡类对象需要手动释放。
阅读全文