不同人的信息,虚函数

来源:互联网 发布:windows 10预览版 编辑:程序博客网 时间:2024/04/27 23:44
#include<iostream.h>#include<string.h>class cpeople{protected:char name[10];char sex[4];int age;public:    char getsex[4];char getname[10];cpeople(char n[10],char s[4],int ag){strcpy(name,n);strcpy(sex,s);age=ag;strcpy(getname,n);strcpy(getsex,s);}int getage(){return age;}};class cstudent:virtual public cpeople{char id[20];char date[20];float grade;public:char getdate[20];char getid[20];cstudent(char n[10],char s[4],int ag,char id2[20],char da[20],float gr):cpeople(n,s,ag){strcpy(id,id2);strcpy(date,da);grade=gr;strcpy(getid,id2);strcpy(getdate,da);}float getgrade(){return grade;}};class cteacher:virtual public cpeople{char job[20];char depart[20];char worktime[20];public:char getjob[20];char getdepart[20];char getworktime[20];cteacher(char n[10],char s[4],int ag,char jo[20],char dep[20],char wo[20]):cpeople(n,s,ag){        strcpy(job,jo);strcpy(depart,dep);strcpy(worktime,wo);strcpy(getjob,jo);strcpy(getdepart,dep);strcpy(getworktime,wo);}};class cgraduate:public cstudent{char search[20];char teachername[10];public:char getsearch[20];char getteachername[10];cgraduate(char n[10],char s[4],int ag,char id2[20],char dat[20],float gr,char sea[20],char tea[10]):cstudent(n,s,ag,id2,dat,gr),cpeople(n,s,ag){strcpy(search,sea);strcpy(teachername,tea);strcpy(getsearch,sea);strcpy(getteachername,tea);}};class cgradonwork:public cgraduate,public cteacher{public:cgradonwork(char n[10],char s[4],int ag,char jo[20],char dep[20],char wo[20],char id2[20],char dat[20],float gr,char sea[20],char tea[10]):cgraduate( n,s,ag,id2,dat,gr,sea,tea),cteacher(n,s,ag,jo,dep,wo),cpeople(n,s,ag){cout<<"调用构造函数cgradonwork()"<<endl;}};void main(){char name1[10],sex1[4],id11[20],date11[20],jo[20],dep[20],wo[20],sea[20],tea[10];int age1;float grade11;   cout<<"***************(1)普通人****************"<<endl;cout<<"***************(2)学生***************"<<endl;cout<<"***************(3)老师***************"<<endl;cout<<"***************(4)研究生**************"<<endl;cout<<"***************(5)在职研究生************"<<endl;int num;                                                                                                             cout<<"请输入你所在职位的序号"<<endl;cin>>num;   if(num==1){cout<<"请输入您的姓名,性别,年龄"<<endl;         cin>>name1>>sex1>>age1;        cpeople pe(name1,sex1,age1);    cout<<"此人的信息为"<<pe.getname<<'\t'<<pe.getsex<<'\t'<<pe.getage();}else if(num==2){cout<<"请输入您的姓名,性别,年龄,学号,入学时间,入学成绩"<<endl;         cin>>name1>>sex1>>age1>>id11>>date11>>grade11;cstudent st(name1,sex1,age1,id11,date11,grade11);cout<<"此人的信息为"<<st.getname<<'\t'<<st.getsex<<'\t'<<st.getage()<<'\t'<<st.getid<<'\t'<<st.getdate<<'\t'<<st.getgrade()<<endl;}    else if(num==3){cout<<"请输入您的姓名,性别,年龄,职务,部门,工作时间"<<endl;         cin>>name1>>sex1>>age1>>jo>>dep>>wo;            cteacher te(name1,sex1,age1,jo,dep,wo);cout<<"此人的信息为"<<te.getname<<'\t'<<te.getsex<<'\t'<<te.getage()<<'\t'<<te.getjob<<'\t'<<te.getdepart<<'\t'<<te.getworktime<<endl;}     else if(num==4) { cout<<"请输入您的姓名,性别,年龄,学号,入学时间,入学成绩,研究方向,导师"<<endl;             cin>>name1>>sex1>>age1>>id11>>date11>>grade11>>sea>>tea;                 cgraduate gr(name1,sex1,age1,id11,date11,grade11,sea,tea);     cout<<"此人的信息为"<<gr.getname<<'\t'<<gr.getsex<<'\t'<<gr.getage()<<'\t'<<gr.getid<<'\t'<<gr.getdate<<'\t'<<gr.getgrade()<<'\t'<<gr.getsearch<<'\t'<<gr.getteachername<<endl; }     else { cout<<"请输入您的姓名,性别,年龄,职务,部门,工作时间,学号,入学时间,入学成绩,研究方向,导师"<<endl;                 cin>>name1>>sex1>>age1>>jo>>dep>>wo>>id11>>date11>>grade11>>sea>>tea;                     cgradonwork gradon(name1,sex1,age1,jo,dep,wo,id11,date11,grade11,sea,tea); cout<<"此人的信息为"<<gradon.getname<<'\t'<<gradon.getsex<<'\t'<<gradon.getage()<<'\t'<<gradon.getjob<<'\t'<<gradon.getdepart<<'\t'<<gradon.getworktime<<endl;         cout<<gradon.getid<<'\t'<<gradon.getdate<<'\t'<<gradon.getgrade()<<'\t'<<gradon.getsearch<<'\t'<<gradon.getteachername<<endl;          }}

0 0