我自己写的源代码!各位给看一下。谢谢
#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;
}
#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;
}
论坛是用来交流的,如果要想获得帮助,就得提个好问题,别人不来回复,可能是你的问题不好。
要知道,逛论坛也是有成本的,你的问题得给别人一种价值才行,别老是抱怨别人,不检讨自己,这样对自己没有什么好处。
既然是个新手,可以先读读如何提问题,网上有篇很好的文章,你可以搜索一下“how to ask questions the smart way”。