11.9 Package_Inheritance

11.9 Package_Inheritance

描述

按照书本11.9描述编写快递的类继承结构
支持求快递的运费(calculateCost方法,返回值为double类型)
定义一个Person类保存个人信息
为了统一实现方式,请使用下面的main函数,main函数代码不得修改

int main(){
    //录入收件人信息 
    Person sender;
    cin >> sender;
    
    //录入取件人信息
    Person recipient;
    cin >> recipient;
    
    //录入重量和单位重量的价格
    double weight;
    double price; 
    cin >> weight;
    cin >> price;
    //创建Package实例
    Package p(sender, recipient, weight, price);
    //检测weight和price是否是正数
    if(!p.check()){
        cout<<"error"<<endl;
        return 0;
    }
    
    //输入TwoDayPackage的固定费用
    double flatFee;
    cin >> flatFee;
    //创建 TwoDayPackage实例
    TwoDayPackage pTwoDay(p, flatFee);
    
    //输入OvernightPackage额外的单位重量收费
    double addFee;
    cin >> addFee;
    //创建 OvernightPackage实例
    OvernightPackage pOvernight(p, addFee);
    
    //打印发件人和收件人信息
    p.print(); 
     
    //打印 Package 收费
    cout<< fixed << setprecision(3) << p.calculateCost() <<endl;
    
    //打印 TwoDayPackage 收费 
    cout<< fixed << setprecision(3) << pTwoDay.calculateCost() <<endl;
    
    //打印 OvernightPackage 收费
    cout<< fixed << setprecision(3) << pOvernight.calculateCost() << endl;
    
    return 0;
} 

输入

输入包含五行

1.4个字符串和一个整数,表示寄件人的name address city state ZIPcode
2.4个字符串和一个整数,表示收件人的name address city state ZIPcode
3.两个实数,表示快递的重量和单位重量的价格(Package收费标准)
4.一个非负实数,表示TwoDayPackage额外所收的固定费用
5.一个非负实数,表示OvernightPackage收取的单位重量的附加费用

输出

输出包含五行(如果输入的重量和单位价格不是正数,只输出"error",不再输出下面的答案)

1.4个字符串和一个整数,表示寄件人信息
2.4个字符串和一个整数,表示收件人信息
3.一个实数,这件快递用Package寄出去的费用
4.一个实数,这件快递用TwoDayPackage寄出去的费用
5.一个实数,这件快递用OvernightPackage寄出去的费用

输出的实数保留3位小数

输入样例1

张三 商城 信阳 河南 53400
王五 永城 商丘 河南 78500
7 2
2
0.5

输出样例1

张三 商城 信阳 河南 53400
王五 永城 商丘 河南 78500
14.000
16.000
17.500

输入样例2

张三 商城 信阳 河南 53400
王五 永城 商丘 河南 78500
7 -2
2
0.5

输出样例2

error

信息

ID
1005
难度
2
分类
(无)
标签
递交数
89
已通过
45
通过率
51%
上传者