写一个C++代码 利用抽象类编写一个程序实现公交车卡售票管理。当输入为“老年卡”、“学生卡”和“普通卡”时显示不同的卡类,及购票金额(“老年卡”购票金额=原价50%、“学生卡”购票金额=原价60%、“普通卡”购票金额=原价*95%)。 具体实现步骤:创建并实现公交卡类构造函数、公交卡充值函数、公交卡余额查询函数、公交卡刷卡消费函数,创建纯虚函数用于完成刷卡种类显示和设置折扣率的操作。 第三步:建立普通卡类(Acard)、学生卡类(Bcard)、老年卡类(Ccard)的结构,他们的基类均为boardingcard,分别在这三个派生类中实现基类中定义的两个虚函数。创建并实现公交卡类构造函数、公交卡充值函数、公交卡余额查询函数、公交卡刷卡消费函数,创建纯虚函数用于完成刷卡种类显示和设置折扣率的操作。 第三步:建立普通卡类(Acard)、学生卡类(Bcard)、老年卡类(Ccard)的结构,他们的基类均为boardingcard,分别在这三个派生类中实现基类中定义的两个虚函数。
时间: 2023-02-16 21:47:56 浏览: 146
你好,这是一份使用抽象类实现公交车卡售票管理的C++代码:
```
#include <iostream>
#include <string>
using namespace std;
class BoardingCard // 公交卡基类
{
private:
string name; // 卡名
double balance; // 余额
public:
BoardingCard(string name, double balance)
{
this->name = name;
this->balance = balance;
}
void recharge(double amount) // 充值函数
{
balance += amount;
}
double getBalance() // 查询余额函数
{
return balance;
}
virtual void swipe() = 0; // 纯虚函数,用于完成刷卡种类显示和设置折扣率的操作
virtual void setDiscount() = 0; // 纯虚函数,用于完成刷卡种类显示和设置折扣率的操作
};
class Acard : public BoardingCard // 普通卡类
{
private:
double discount; // 折扣率
public:
Acard(string name, double balance) : BoardingCard(name, balance)
{
discount = 0.95;
}
void swipe()
{
cout << "刷普通卡" << endl;
}
void setDiscount()
{
cout << "折扣率为 " << discount * 100 << "%" << endl;
}
};
class Bcard : public BoardingCard // 学生卡类
{
private:
double discount; // 折扣率
public:
Bcard(string name, double balance) : BoardingCard(name, balance)
{
discount = 0.6;
}
void swipe()
{
cout << "刷学生卡" << endl;
}
void setDiscount()
{
cout << "折扣率为 " << discount * 100 << "%" << endl;
}
};
class Ccard : public BoardingCard // 老年卡类
{
private:
double discount; // 折扣率
public:
Ccard(string name, double balance) : BoardingCard(name, balance)
{
discount = 0.5;
}
void swipe()
{
cout << "刷老年