程序如下:就是怎样可以实现以下功能;
设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。
(1)在一条医生记录中,包括医生的专业说明(specialty),如内科医生(surgeon)、儿科医生(pediatrician) 、产科医生(obstetrician)及全科医生(general practitioner)。
(2)Doctor记录还含有诊费(office_vist_fee)。
(3)在一条患者记录中,包括该患者产生的药费(drug_fee) ,患者的诊费(即医生的诊费)。
(4)在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。
(5)应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。
(6)能够统计出所有患者的总费用。
yiyxiai
#include<iostream>
#include<string>
using namespace std;
class Person{ //人类
public:
Person(string name1,string sex1,int age1,double office_vist_fee1):name(name1),sex(sex1),age(age1),office_vist_fee(office_vist_fee1)
{
}
void show()
{cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"诊费:"<<office_vist_fee<<endl;
}
protected:
string name;
string sex;
int age;
double office_vist_fee; //诊费
};
class Doctor:public Person{ //医生类
public:
Doctor(string name1,string sex1,int age1,double office_vist_fee1,string spe):Person(name1,sex1,age1,office_vist_fee1)
{specialty=spe; //spe为医生的专业说明
}
void input() //增加医生信息
{cout<<endl;
/*cout<<"姓名:";
cout<<"性别:";
cout<<"年龄:";
cout<<"诊费:";*/
cout<<"主治病例:"<<specialty<<endl;
}
countkind() //按姓名查询患者信息
{char na;
cout<<"请输入要查询的医生姓名:";
{
if(na==name)
{cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"诊费:"<<office_vist_fee<<endl;//诊费
cout<<"病例:"<<specialty<<endl;} //主治病例
else
cout<<"查询信息错误!"<<endl;
}}
protected:
string specialty;
};
class Patient:public Person{ //患者类
public:
Patient(string name1,string sex1,int age1,double office_vist_fee1,double drug_fee1):Person(name1,sex1,age1,office_vist_fee1)
{drug_fee=drug_fee1;
}
input() //增加患者信息
{cout<<endl;
/*cout<<"姓名:";
cout<<"性别:";
cout<<"年龄:";
cout<<"诊费:";*/
cout<<"药费:"<<drug_fee<<endl;
}
countkind() //按姓名查询患者信息
{char na;
cout<<"请输入患者的姓名:"<<na<<endl;
if(na==name)
{cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"诊费:"<<office_vist_fee<<endl;
cout<<"药费:"<<drug_fee<<endl;}
else
cout<<"查询信息错误!"<<endl;
}
protected:
double drug_fee;
};
class Count:public Doctor,public Patient{ //Count为账单类
public:
Count(string name1,string sex1,int age1,double drug_fee1,double office_vist_fee1,double total_fee1):Doctor(name1,sex1,age1,office_vist_fee1/*,spe*/),Patient(name1,sex1,age1,office_vist_fee1,drug_fee1)
{total_fee=total_fee1;
}
void total_pay() //总的费用
{cout<<total_fee<<'='<<office_vist_fee<<'+'<<drug_fee<<endl;
}
void show()
{cout<<"patient.name"<<name<<endl;
cout<<"patient.sex"<<sex<<endl;
cout<<"patient.age"<<age<<endl;
cout<<"patient.drug_fee"<<drug_fee<<endl;
cout<<"patient.office_vist_fee"<<office_vist_fee<<endl;
cout<<"patient.total_fee"<<total_fee<<endl;
}
protected:
string name;
string sex;
int age;
double drug_fee;
double office_vist_fee;
double total_fee;
};
int main()
{
Doctor do1("扁鹊","男",24,110,"神经科");
Doctor do2("华佗","男",25,111,"精神病");
Doctor do3("小乔","女",23,112,"相思病");
Patient pa1("鲁班","男",21,100,10);
Patient pa2("赵云","男",22,100,11);
Patient pa3("周瑜","男",23,100,12);
Count C1;
C1.show;
return 0;
}
所有患者的总费用这里没有写出来,加一个static的成员就好了