急求C++一道关于继承问题程序

来源:百度知道 编辑:UC知道 时间:2024/06/14 19:54:06
设计要求:
(1)根据实际情况,确定购书人分为3类:普通人、会员、贵宾。
①“普通人”的购书费用按照原价收取;
②“会员”购书费的计算方法是:五星级会员按照原价的70%收取, 四星级会员按照原价的80%收取, 三星级会员按照原价的85%收取, 二星级会员按照原价的90%收取, 一星级会员按照原价的95%收取。
③“贵宾”的购书费根据特别指定的折扣率计算机收取的费用,例如折扣率40%,则按照实际书费的60%收取。
(2)对象(类)的设计
①根据(1)分析,需要设计一个基类buyer和它的3各派生类member(会员) 、layfolk(普通人) 、honoured_guest(贵宾)。基类中包括的数据成员是姓名、购书人编号、地址、购书金额。member类中除了继承了buyer的数据,还增加了会员级别:honoured_guest则增加了折扣率一项。
②在基类中定义了构造函数和对所有类型的购书人相同的操作,getbuyname()负责取出购书者的姓名;getaddress()负责取出购书者的地址;getpay()负责取出购书者应付出的金额;getid()负责取出购书者的编号。由于对不同购书者的购书额的计算方法不同,所以不能在基类中确定计算方法;又由于各类购书者的数据内容不同,显示的方法也不一样.因此在基类中将setpay和display定义为虚函数。

想你一定是个初学者吧,就帮帮你,给你提供个参考:)
以后还是要自己动手呀!
代码如下:

#include <string.h>
#include <iostream>
using namespace std;

class Buyer
{
public:
//构造函数
Buyer(const char* name, int ID)
{
strcpy(m_Name, name);
m_ID = ID;
strcpy(m_Address, "未记录");
m_Pay = 0.0;
}

//下面是各种操作
void SetName(const char* name)
{
strcpy(m_Name, name);
}

const char* GetName() const
{
return m_Name;
}

void SetAddress(const char* address)
{
strcpy(m_Address, address);
}

const char* GetAddress() const
{
return m_Address;
}

void SetID(int ID)
{
m_ID = ID;
}

int GetID() const
{
return m_ID;
}

virtual void SetPay(float pay) = 0; //定义为纯虚函数在派生类中实现

float GetPay() const
{
return m_P