我自己写的源代码!各位给看一下。谢谢
#if !defined(_people_h)
#define _people_h
class ymd
{
public: 
 ymd(int y=1986,int m=1,int d=1);
 void setymd();
 ymd(ymd &anotherdate);
 void print();
private:
 int year;
 int month;
 int date;
};
class people
{
public:
  people(){};
  people(char *num,char *nam,int se,ymd bir,char *i);
 void setpeople();
 int operator ==(char idcard[18]);
 void operator =(people otherpeo);
 ~people();
 void print();
private:
 char number[5];
 char name[6];
 int sex;
 ymd birthday;
 char id[18];
};
class student:public people
{
public:
 student();
 student(char *num,char *nam,int se,ymd bir,char *i,char *clasno);//:people(char *num,char *nam,int se,ymd bir,char *id);
 void setstudent();
 print();
private:
 char classno[7];
};
class teacher:public people
{
public:
 teacher();
 teacher(char *num,char *nam,int se,ymd bir,char *i,char *principal,char *depart,int workh);//:people(char *num,char *nam,int se,ymd bir,char *id);
 void setteacher();
 void print();
 pay();
 
private:
 char principalship[11],department[21];
 int workhour,hsalary;
};
class graduate:public student
{
public:
 graduate()
 {
 };
 graduate(char *num,char *nam,int se,ymd bir,char *i,char *clasno,char *subj,teacher tea_ad);//:student(char *num,char *nam,int se,ymd bir,char *id,char *clasno);
 ~graduate()
 {
 };
 void setgraduate();
 void print();
private:
 char subject[21];
 teacher teach_adviser;
};
class TA:virtual public graduate ,virtual public teacher
{
public:
 TA();
 pay();
 void setTA();
private:
 int workhour;
};
#endif
#include <iostream.h>
#include<iomanip.h>
ymd::ymd(int y,int m,int d)
{
 year=y;
 month=m;
 date=d;
}
void ymd::setymd()
{
 cout<<endl<<"请输入年份:";
 cin>>year;
 cout<<endl<<"请输入月份:";                
 cin>>month;
 cout<<endl<<"请输入日期:";
 cin>>date;
}
ymd::ymd(ymd &anotherdate)
{
 year=anotherdate.year ;
 month=anotherdate.month ;
 date=anotherdate.date ;
}
void ymd::print()
{
 cout<<year<<"年"<<month<<"月"<<date<<"日";
}
people::people(char *num,char *nam,int se,ymd bir,char *i):birthday(bir)
{
 int k;
 for(k=0;k<5;k++)
  number[k]=*(num+k);
 for(k=0;k<6;k++)
  name[k]=*(nam+k);
 for(k=0;k<18;k++)
  id[k]=*(id+k);
 sex=se;
 birthday=bir;
};
void people::setpeople()
{
 int i;
 cout<<endl<<"请输入编号:"<<endl;
 for(i=0;i<5;i++)
  cin>>number[i];
 cout<<endl<<"请输入姓名:"<<endl;
 for(i=0;i<6;i++)
  cin>>name[i];
 cout<<endl<<"请输入身份证号:"<<endl;
 for(i=0;i<18;i++)
  cin>>id[i];
 cout<<endl<<"请输入性别:"<<endl;
 cin>>sex;
 if (sex==0)
  cout<<"男";
 else
  cout<<"女";
 cout<<"   "<<endl;
 cout<<"请输入出生日期:"<<endl;
 birthday.setymd();
}
void people::print()
{
 int i;
 cout<<"编号"<<setw(5)<<"姓名"<<setw(5)<<"性别"<<setw(5)<<"出生日期"<<setw(7)<<"身份证号"<<endl;
 for(i=0;i<5;i++)
  cout<<number[i];
 cout<<setw(4);
 for(i=0;i<6;i++)
  cout<<name[i];
 cout<<"   ";
 if (sex==0)
  cout<<"男";
 else
  cout<<"女";
 cout<<setw(7);
 birthday.print();
 cout<<"  ";
 for(i=0;i<18;i++)
  cout<<id[i];
 cout<<endl;
}
int people:: operator ==(char idcard[18])
{
 int i;
 for (i=0;i<18;i++)
 {
  if (id[i]!=idcard[i])
   return 0;
 }
 return 1;
}
void people:: operator =(people otherpeo)
{
 int i;
 for(i=0;i<5;i++)
  number[i]=otherpeo.number[i];
 for(i=0;i<6;i++)
  name[i]=otherpeo.name[i];
 for(i=0;i<18;i++)
  id[i]=otherpeo.id[i];
 sex=otherpeo.sex;
 birthday=otherpeo.birthday;
}
people::~people ()
{};
student::student()
{
}
void student::setstudent ()
{
 int i;
 setpeople();
 cout<<"请输入班级(7):";
 for(i=0;i<7;i++)
  cin>>classno[i];
}
student::print ()
{
 int i;
 people::print ();
 cout<<endl<<"班级为:";
 for(i=0;i<7;i++)
  cout<<classno[i];
}
teacher::teacher()
{
}
void teacher::setteacher()
{
 int i;
 setpeople();
 cout<<"请输入该教师的职务:";
 for(i=0;i<8;i++)
  cin>>principalship[i];
 cout<<"请输入该教师的部门:";
 for(i=0;i<8;i++)
  cin>>department[i];
}
teacher::teacher(char *num,char *nam,int se,ymd bir,char *i,char *principal,char *depart,int workh)//:people(char *num,char *nam,int se,ymd bir,char *id);
{
 int k;
 for(k=0;k<11;k++)
 principalship[k]=*(principal+k);
 for(k=0;k<21;k++)
  department[k]=*(depart+k);
 workhour=workh;
}
void teacher::print()
{
 int i;
 //cout<<"编号"<<setw(5)<<"姓名"<<setw(5)<<"性别"<<setw(5)<<"出生日期"<<setw(7)<<"身份证号"<<setw(11)<<"职务"<<setw[8]<<"部门"<<setw(18)<<"薪金"<<endl;
 people::print();
 cout<<"endl";
 cout<<"职务为:";
 for(i=0;i<11;i++)
  cout<<principalship[i];
 cout<<"endl"<<"部门为:";
 for(i=0;i<21;i++)
  cout<<department[i];
 cout<<endl<<"工资为:";
 cout<<pay()<<endl;
}
teacher::pay()
{
 return (800+workhour*hsalary);
}
graduate::graduate(char *num,char *nam,int se,ymd bir,char *i,char *clasno,char *subj,teacher tea_ad)//:student(char *num,char *nam,int se,ymd bir,char *id,char *clasno);
{
 int k;
 for(k=0;k<21;k++)
 subject[k]=*(subj+k);
    teach_adviser=tea_ad;
}
void graduate::setgraduate()
{
 int i;
 setstudent ();
 cout<<endl<<"请输入主修的课程";
 for(i=0;i<21;i++)
  cin>>subject[i];
 cout<<"请输入导师的基本信息:";
 teach_adviser.setteacher();

void graduate::print()
{
 int i;
 student::print ();
 cout<<endl<<"专修课为:";
 for(i=0;i<21;i++)
  cout<<subject[i];
 cout<<endl<<"研究生的导师的基本信息为:";
 teach_adviser.print();
}
TA::TA()
{
}
void TA::setTA()
{
 cout<<"setTA"<<endl;
}
TA::pay()
{
 cout<<"助教的工资";
} const int peoplenum=10;
const int studentnum=10;
const int teachernum=10;
const int gradutenum=10;
const int TAnum=10;
void main()
{
 cout<<"你现在要输入人员信息吗?\"y\"  输入,\"n\"  退出!";
 char enterflag;
 cin>>enterflag;
 if(enterflag=='y')
 {
  people allpeople[peoplenum];
  student allstudent[studentnum];
  teacher allteacher[teachernum];
  graduate allgraduate[gradutenum];
  TA allta[TAnum];
  int peoplen(0),studentn(0),teachern(0),graduaten(0),TAn(0);
  int inputflag;
  char interflag,continuflag,printflag;
  cout<<endl;
  do
  {
   cout<<"您要输入的是什么人员的信息"<<endl<<"0--people,1--student,2--teacher,3--graduate,4--TA:";
   cin>>inputflag;
   switch(inputflag)
   {
   case 0:
    {
     do
     {
      allpeople[peoplen].setpeople();
      cout<<"继续吗?y 继续,n 退出";
      cin>>interflag;
      peoplen++;
     }while(interflag=='y'); 
     break;
    }
   case 1:
    {
     do
     {
      allstudent[studentn].setstudent();
      cout<<"s继续吗?y 继续,n 退出";
      cin>>interflag;
      studentn++;
     }while(interflag=='y'); 
     break;
    }
   case 2:
    {
     do
     {
      allteacher[teachern].setteacher();
      cout<<"t继续吗?y 继续,n 退出";
      cin>>interflag;
      teachern++;
     }while(interflag=='y'); 
     break;
    }
   case 3:
    {
     do
     {
      allgraduate[graduaten].setgraduate() ;
      cout<<"g继续吗?y 继续,n 退出";
      cin>>interflag;
      graduaten++;
     }while(interflag=='y'); 
     break;
    }
   case 4:
    {
     do
     {
      allta[TAnum].setTA();
      cout<<"T继续吗?y 继续,n 退出";
      cin>>interflag;
      TAn++;
     }while(interflag=='y'); 
     break;
    }
   }
   cout<<"您是要继续输入其他人员信息吗?y,继续  n  退出"<<endl;
   cin>>continuflag;
  }while(continuflag=='y');
  cout<<"你要显示人员的基本信息吗?y  显示 ,n 不显示。"<<endl;
  cin>>printflag;
   }
 cout<<"欢迎下次光临!"<<endl;
}
 

解决方案 »

  1.   

    既然你自己已经搞定了,何必还要麻烦别人。
    论坛是用来交流的,如果要想获得帮助,就得提个好问题,别人不来回复,可能是你的问题不好。
    要知道,逛论坛也是有成本的,你的问题得给别人一种价值才行,别老是抱怨别人,不检讨自己,这样对自己没有什么好处。
    既然是个新手,可以先读读如何提问题,网上有篇很好的文章,你可以搜索一下“how to ask questions the smart way”。