8078:社会保障卡

Time/Memory Limit:1000 MS/32768 K
Submitted: 982 Accepted: 430

 Problem Description

漳州发行了新的社会保障卡,这种卡集合了银行卡与医保卡的功能于一身,社会保障卡的银行存款额与医保存款额是分开的,它可以像银行卡那样进行存、取、查等业务,取款的时候,如果余额小于取款额,则无法取款并给出一定的提示;它也可以像医保卡那样每月存入医保额,这部分钱是个人出一半,工作单位再出一半,比如当月个人扣除的医保额是50元,则医保账户存入的是100元,保障卡还可以进行买药与查询功能,在买药的时候,社保机构规定一天最多只能用医保卡买100元(包括100)以内的药品,超过100元的部分可以用现金支付,同时如果买药的钱大于医保余额时,医保余额将被扣空,剩下的也用现金支付。现在要求你定义一个Card类,该类包含账号与用户名两个数据成员,及构造与显示信息等成员函数;由Card类派生出Bankcard类和Medicare两个类,根据说明给这两个类新增数据成员及成员函数,要求银行卡能查询余额,存钱及取钱,医保卡能查询余额、存入医保额及买药;最后由这两个类派生出社会保障卡类,使得该类可以集合上述两种类的功能。

 Input

输入数据有多组,每组有多行,第一行是社会保障卡的基本信息,包括账号、用户名、密码、银行卡余额、医保卡余额,接下来的若干行是对保障卡的操作,每个操作都由命令及必要的数字组成,命令如下:show-显示社会保障卡的基本信息,bsave-向银行卡存钱,bdraw-从银行卡部分取钱,bshow-显示银行卡余额,msave-存入医保额(只包括个人该出的部分),mdraw-买药(从医保额支出),mshow-显示医保余额,stop-该组测试数据测试结束。命令后面跟的数值部分是操作的数额。

 Output

如输出样例所示,每组数据测试完成之后用十个*分隔。

 Sample Input

0019890714 Jacky 888888 1000 200
show
bsave 200
bdraw 2000
bdraw 100
bshow
mdraw 201
msave 40
mshow
mdraw 90
mshow
stop
0020130530 Marry 000000 1500 1000
mdraw  200
mshow
stop

 Sample Output

Social Security Card:
Card ID:0019890714 User Name:Jacky
Account:1000
Medicare Card Account:200
Insufficient account balance!
Account:1100
Medicare Card Account:180
Medicare Card Account:90
**********
Medicare Card Account:900
**********

 Author

wj

 Recommend

zh