题目描述

地铁公司将客户分为三类:老年人、学生、普通客户,分别颁发老年卡、学生卡和普通卡,对不同持卡人购票时的折扣率是不一样的。假设每种卡初始余额都为100元。比如:老年卡购票金额为原价的50%,学生卡的购票金额为原价的60%,普通卡的购票金额为原价的95%。设计程序,输入为老年卡、学生卡、普通卡的折扣率、标准票价,输出为刷卡种类(OLDER、STUDENT、COMMON)以及实际扣款数目(程序要能判断余额是否不足,并给出提示信息Please recharge!)。要求使用两层类结构实现。


输入格式

包括两行:第一行输入老年卡、学生卡、普通卡的折扣率和标准票价。第二行输入刷卡次数。


输出格式

输出刷卡种类(OLDER、STUDENT、COMMON)以及实际扣款数目,两者之间空三个空格。


样例数据

输入

0.5 0.6 0.8 20
8

输出

OLDER   10
STUDENT   12
COMMON   16
OLDER   10
STUDENT   12
COMMON   16
OLDER   10
STUDENT   12
COMMON   16
OLDER   10
STUDENT   12
COMMON   16
OLDER   10
STUDENT   12
COMMON   16
OLDER   10
STUDENT   12
COMMON   16
OLDER   10
STUDENT   12
COMMON   Please recharge!
OLDER   10
STUDENT   12
COMMON   Please recharge!

备注

//建立地铁卡类为抽象类,将刷卡种类和设置折扣率定义成纯虚函数。由地铁卡类派生老年卡、学生卡和普通卡。

include

using namespace std;
//补充程序,使其符合题目要求

int main(){
double o,s,c,p;
int n;
cin>>o>>s>>c>>p;
olderCard O(p);O.setDiscount(o);
studentCard S(p);S.setDiscount(s);
commonCard C(p);C.setDiscount(c);
while(cin>>n){
for(int i=0;i<n;i++){
O.setType();O.consume();
S.setType();S.consume();
C.setType();C.consume();
}
}
return 0;
}


操作

评测记录

优秀代码

信息

时间限制: 1s
内存限制: 128MB
评测模式: Normal

题解