继承与派生应用实例

继承与派生应用实例

ID:42611792

大小:69.50 KB

页数:6页

时间:2019-09-18

继承与派生应用实例_第1页
继承与派生应用实例_第2页
继承与派生应用实例_第3页
继承与派生应用实例_第4页
继承与派生应用实例_第5页
资源描述:

《继承与派生应用实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第五章继承与派生应用实例一小型诊所的简单信息管理程序以一个小型诊所的简单信息管理程序为例,来说明类和数据成员、成员函数的设计,以及继承与派生的应用。1.提出问题前面讨论过“人”Person类,在此基础上,我们通过增加医生、患者和账单,使它们共同用于表示一家诊所的信息管理。在一条医生记录中,包括医生的专业说明(specialty),如内科医生(internist)>外科医生(surgeon)、儿科医生(pediatrician)>产科医生(obstetrician)及全科医生(generalpractitioner);除此之外,Doctor记录还含有诊费(offic

2、e_visit_fee)o在一条患者记录中,包括该患者产生的药费(drug_fee),患者的诊费(即医牛的诊费)。在一条账单中,包括一名患者对象、该患者对应的主治医生、该患者产生的诊费和药费。应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息,还应能统计出所有患者的总费用。2.类的设计根据上述需求,设i^一个基类Person,派生出Doctor医生类和Patient患者类,由于账单中包括患者记录以及该患者对应的主治医生,因此,构造Billing账单类时,包含Doctor类和Patient患者类的内嵌对象成员;除此之外,在Billing类中还应含有静态数据成

3、员,用于统计全部患者的总费用,即诊所的总收入。每个类都包含构造函数和析构函数。Person类:姓名(name)年龄(age)性别(gender)身份证号码(id_number)构造函数析构函数getName()showlnfo()Doctor类:专业名称(specialty)诊费(office_visit_fee)构造函数析构函数getOfficeVisit_fee()showlnfo()Patient类:药费(drug_fee)费用(payment,包括诊费和药费)主治医生(dr)构造函数析构函数getPayment()showlnfo()Billing类:患者

4、对象(m_patient)主治医生(m_doctor)总收入(total_income)构造函数析构函数showlnfo()get_total_income()参考代码如下:#include#includeusingnamespacestd;classPerson〃基类{protected:stringname;〃姓名intage;〃年龄chargender;〃性别,f女性,'nT男性stringidNumber;//身份证号码public:Person(string,int,char,string);Person(Person

5、&);〜Person(){}stringgetName();voidshowlnfo();};classDoctor:publicPerson〃医牛类{private:stringspecialty;〃专业名称doubleofficeVisitFee;〃诊费public:Doctor(string,int,char,string,string,double);〜Doctor。{}doublegetOfficeVisitFee();voidshowlnfo();};classPatient:publicPerson〃患者类{private:doubledrugFee

6、;〃药费doublepayment;〃患者费用,包括诊费和药费Doctordr;public:Patient(string,int,char,string,double,Doctor&);〜Patient(){}doublegetPayment();voidshowlnfo();};classBilling〃账单类{private:PatientmPatient;//内嵌患者类对象DoctormDoctor;〃内嵌医生类对象staticdoubletotalincome;//诊所总收入,静态数据成员public:Billing(Patient&,Doctor&);

7、-Billing(){}voidshowlnfo();staticdoublegetTotalIncome();〃静态成员函数};doubleBilling::totallncome=0.0;Person::Person(stringtheName,inttheAge,chartheGender,stringtheldNumber){name=theName;age二theAge;gender=theGender;idNumber=theldNumber;}Person::Person(Person&theObject){name二theObject.name;a

8、ge=th

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。