写一个C++代码利用抽象类编写一个程序实现公交车卡售票管理。“老年卡”购票金额=原价50%、“学生卡”购票金额=原价60%、“普通卡”购票金额=原价*95%)。 创建并实现公交卡类构造函数、公交卡充值函数、公交卡余额查询函数、公交卡刷卡消费函数,创建纯虚函数用于完成刷卡种类显示和设置折扣率的操作。
时间: 2023-03-25 17:04:16 浏览: 132
下面是一个使用抽象类实现公交车卡售票管理的 C++ 代码示例:
```
#include <iostream>
#include <string>
using namespace std;
// 定义抽象类 Card
class Card {
public:
// 构造函数
Card(string t, double b) : type(t), balance(b) {}
// 充值函数
void Recharge(double amount) { balance += amount; }
// 查询余额函数
double CheckBalance() { return balance; }
// 刷卡消费函数
virtual double Consume(double price) = 0;
// 纯虚函数,显示刷卡种类
virtual void ShowType() = 0;
// 纯虚函数,设置折扣率
virtual void SetDiscount() = 0;
protected:
string type; // 卡的种类
double balance; // 卡的余额
double discount; // 卡的折扣率
};
// 定义老年卡类 OldCard
class OldCard : public Card {
public:
OldCard(string t, double b) : Card(t, b) { SetDiscount(); }
// 刷卡消费函数
double Consume(double price) {
if (balance >= price * discount) {
balance -= price * discount;
return price * discount;
} else {
return -1;
}
}
// 显示刷卡种类
void ShowType() { cout << "老年卡" << endl; }
// 设置折扣率
void SetDiscount() { discount = 0.5; }
};
// 定义学生卡类 StudentCard
class StudentCard : public Card {
public:
StudentCard(string t, double b) : Card(t, b) { SetDiscount(); }
// 刷卡消费函数
double Consume(double price) {
if (balance >= price * discount) {
balance -= price * discount;
return price * discount;
} else {
return -1;
}
}
// 显示刷卡种类
void ShowType() { cout << "学生卡" << endl; }
// 设置折扣率
void SetDiscount() { discount = 0.6; }
};
阅读全文