写一个C++代码用C语言利用抽象类编写一个程序实现公交车卡售票管理。当输入为“老年卡”、“学生卡”和“普通卡”时显示不同的卡类,及购票金额(“老年卡”购票金额=原价50%、“学生卡”购票金额=原价60%、“普通卡”购票金额=原价*95%)。 具体实现步骤: 第一步:建立公交卡(boardingcard)的结构 第二步:创建并实现公交卡类构造函数、公交卡充值函数、公交卡余额查询函数、公交卡刷卡消费函数,创建纯虚函数用于完成刷卡种类显示和设置折扣率的操作。 第三步:建立普通卡类(Acard)、学生卡类(Bcard)、老年卡类(Ccard)的结构,他们的基类均为boardingcard,分别在这三个派生类中实现基类中定义的两个虚函数。
时间: 2023-02-16 13:47:56 浏览: 194
Car Cards and Way Bills Page-开源
以下是用 C 语言实现公交车卡售票管理的代码示例:
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define PRICE 100 // 公交车票价格
// 定义公交卡结构体
typedef struct {
char type[20]; // 卡类型
int balance; // 余额
} BoardingCard;
// 公交卡类的纯虚函数,用于完成刷卡种类显示和设置折扣率的操作
void virtual_func(BoardingCard *card) {
printf("卡类型: %s\n", card->type);
// 设置不同卡类的折扣率
if (strcmp(card->type, "老年卡") == 0) {
card->balance = PRICE * 0.5;
} else if (strcmp(card->type, "学生卡") == 0) {
card->balance = PRICE * 0.6;
} else if (strcmp(card->type, "普通卡") == 0) {
card->balance = PRICE * 0.95;
}
}
// 公交卡类的构造函数
BoardingCard *create_card(char *type) {
BoardingCard *card = (BoardingCard*)malloc(sizeof(BoardingCard));
strcpy(card->type, type);
card->balance = 0;
return card;
}
// 公交卡充值函数
void recharge(BoardingCard *card, int amount) {
card->balance += amount;
printf("充值成功,余额为: %d 元\n", card->balance);
}
// 公交卡余额查询函数
void check_balance(BoardingCard *card) {
printf("余额: %d 元\n", card->balance);
}
// 公交卡刷卡消费函数
void consume(BoardingCard *card) {
if (card->balance < card->balance) {
printf("余额不足\n");
} else {
card->balance -= card->balance;
printf("消费成功,余额为: %d 元\n", card->balance);
}
阅读全文