写一个C++代码 利用抽象类编写一个程序实现公交车卡售票管理。当输入为“老年卡”、“学生卡”和“普通卡”时显示不同的卡类,及购票金额(“老年卡”购票金额=原价50%、“学生卡”购票金额=原价60%、“普通卡”购票金额=原价*95%)。 创建并实现公交卡类构造函数、公交卡充值函数、公交卡余额查询函数、公交卡刷卡消费函数,创建纯虚函数用于完成刷卡种类显示和设置折扣率的操作。
时间: 2023-02-16 13:51:40 浏览: 181
#include <iostream>
#include <string>
using namespace std;
const int ORIGINAL_PRICE = 100; // 原价
// 公交卡抽象类
class BusCard {
public:
// 构造函数
BusCard(int balance, int discount) : balance_(balance), discount_(discount) {}
// 充值函数
void Recharge(int amount) { balance_ += amount; }
// 余额查询函数
int CheckBalance() { return balance_; }
// 刷卡消费函数
void Swipe() {
balance_ -= ORIGINAL_PRICE * discount_ / 100;
cout << "刷卡成功,消费 " << ORIGINAL_PRICE * discount_ / 100 << " 元。" << endl;
}
// 纯虚函数,用于显示刷卡种类
virtual void DisplayCardType() = 0;
// 纯虚函数,用于设置折扣率
virtual void SetDiscount() = 0;
protected:
int balance_; // 余额
int discount_; // 折扣率
};
// 老年卡类
class ElderlyCard : public BusCard {
public:
// 构造函数
ElderlyCard(int balance) : BusCard(balance, 50) {}
// 实现纯虚函数
void DisplayCardType() { cout << "老年卡" << endl; }
void SetDiscount() { discount_ = 50; }
};
// 学生卡类
class StudentCard : public BusCard {
public:
// 构造函数
StudentCard(int balance) : BusCard(balance, 60) {}
// 实现纯虚函数
void DisplayCardType() { cout << "学生卡" << endl; }
void SetDiscount() { discount_ = 60; }
};
// 普通卡类
class NormalCard : public BusCard {
public:
// 构造函数
NormalCard(int balance) : BusCard(balance, 95) {}
// 实现纯虚函数
void DisplayCardType() { cout << "普通卡" << endl; }
void SetDiscount() { discount_ = 95; }
};
int main() {
// 创建三种不同的公交卡对象
BusCard* elderly_card = new ElderlyCard(200);
BusCard* student_
阅读全文