写一个C++代码利用抽象类编写一个程序实现公交车卡售票管理。“老年卡”购票金额=原价50%、“学生卡”购票金额=原价60%、“普通卡”购票金额=原价*95%)。 创建并实现公交卡类构造函数、公交卡充值函数、公交卡余额查询函数、公交卡刷卡消费函数,创建纯虚函数用于完成刷卡种类显示和设置折扣率的操作
时间: 2023-04-05 07:00:31 浏览: 342
c++公交车线路查询管理系统
4星 · 用户满意度95%
以下是使用抽象类实现公交车卡售票管理的 C 代码示例:
```
#include <stdio.h>
#include <stdlib.h>
// 定义公交卡类型枚举
enum CardType {
OLD_AGE_CARD,
STUDENT_CARD,
NORMAL_CARD
};
// 定义抽象类 BusCard,其中包含了公交卡充值、余额查询、刷卡消费等操作
class BusCard {
public:
// 构造函数,设置公交卡的初始余额
BusCard(double initial_balance) {
balance_ = initial_balance;
}
// 充值函数,amount 为充值金额
void Recharge(double amount) {
balance_ += amount;
}
// 余额查询函数
double GetBalance() const {
return balance_;
}
// 刷卡消费函数,fare 为购票金额
void PayFare(double fare) {
balance_ -= fare;
}
// 纯虚函数,用于获取公交卡类型
virtual CardType GetType() const = 0;
// 纯虚函数,用于设置公交卡折扣率
virtual void SetDiscountRate(double rate) = 0;
protected:
// 余额
double balance_;
};
// 定义老年卡类型,继承自 BusCard 类
class OldAgeCard : public BusCard {
public:
// 构造函数,调用父类构造函数
OldAgeCard(double initial_balance) : BusCard(initial_balance) {
}
// 覆盖纯虚函数,返回老年卡类型
CardType GetType() const {
return OLD_AGE_CARD;
}
// 覆盖纯虚函数,设置老年卡折扣率
void SetDiscountRate(double rate) {
discount_rate
阅读全文