利用C++的多态性,设计一快递运费计算软件。 货物由北京可通过快递公司运往天津、上海、太原、广州、昆明、新疆六个城市,分别用1、2、3、4、5、6作为它们编号。运送货物的重量分为1、2、3公斤。快递公司有四家:E通宝、顺风、EMS和圆通,编号为1、2、3、4。不同城市、不同重量、不同的快递公司所费用由表1给出。当输入快递公司编号、城市编号和货物重量时,屏幕输出货物运送快递公司名称、到达的城市及费用。编程要求如下:
1.定义一基类为快递公司,类中定义“城市编号”、货物个数、重量等成员,成员函数有基本成员输出函数及两个纯虚函数:求运输费用函数和输出信息函数。
2.分别定义各快递公司的派生类,在类中参照表中提供的数据,根据自己的实际,编写各自的运输费用函数和输出信息函数。
3.用实例测试。在主函数中定义一基类的指针数组,使这些指针分别指向不同的快递公司。
测试用例说明: 第一位:快递公司编号;第二位:城市编号;第三位:货物个数;第四位:货物重量。
基类定义参考:
class Expresscom
{
protected:
int No,Num;//城市编号、货物个数
double zh;//货物重量
public:
Expresscom(int no,int num,double zhong);
virtual double Feiyong()=0;//计算运费函数
virtual void Disp()=0;//输出全部信息
void Edisp();//输出货物个数、货物重量信息
};
#include <iostream>
using namespace std;
class Expresscom
{
public:
Expresscom(int no,int num,double zhong)
:No(no),Num(num),zh(zhong)
{
}
virtual double Feiyong() = 0; //计算费用
virtual void Disp() = 0; //输出全部信息
void Edisp(void) {
//输出货物个数、货物重量信息
Disp();
switch (No) {
case 1:
cout << "目的地:天津" << endl;
break;
case 2:
cout << "目的地:上海" << endl;
break;
case 3:
cout << "目的地:太原" << endl;
break;
case 4:
cout << "目的地:广州" << endl;
break;
case 5:
cout << "目的地:昆明" << endl;
break;
case 6:
cout << "目的地:新疆" << endl;
break;
}
cout << "重量:" << zh << "KG" << endl
<< "货物个数:" << Num