T.h
#if !defined(T_H)
#define T_H
#include
using namespace std;
//教职工简表
class employee
{
private:
char name[10];
int age;
public:
void setname(char s[]){strcpy(name,s);}
char *getname(){return name;}
void setage(int a){age=a;}
int getage(){return age;}
virtual void display()
{
cout<<"\t"<<name<<"\t"<<age<<endl;
}
};
//教shi信息类
class worker :public employee
{
private:
char num[8];
char sex[6];
int wage;
//int birthtime;
//int worktime;
public:
void setnum(char n[]){strcpy(num,n);}
void setsex(char s[]){strcpy(sex,s);}
void setwage(int w){wage=w;}
char*getnum(){return num;}
char *getsex(){return sex;}
int getwage(){return wage;}
void display()
{
cout<<"\t"<<num<<"\t"<<getname()<<"\t"<<sex<<"\t"<<wage<<endl;
}
void addin();//接受输入
void brevity();//简化信息
void Dispwk();//显示全部信息
void Dispem();//显示简明信息
void handle_menu();//菜单处理
int menu_select();//菜单选择
virtual void printer(employee &e);
};
#endif
T.cpp
#include "T.h"
#include
vectorvwk;//完整信息向量数组
vectorvem;//简表信息向量数组
//显示处理函数
void worker::printer(employee&e)
{e.display();}
//输入处理函数
void worker::addin()
{
char ch[10];
int age,wage;
worker wk;//暂存对象
for(int i=0;i {
cout cin.getline(ch,'\n');
if(ch[0]=='0')break;//结束输入
wk.setnum(ch);
cout cin.getline(ch,'\n');
wk.setname(ch);
cout cin.getline(ch,'\n');
wk.setsex(ch);
cout cin>>age;
wk.setage(age);//especially
cout<<"\t工资:";
cin.getline(ch,'\n');
cin>>wage;
wk.setwage(wage);
vwk.push_back(wk);//从尾部追加到向量数组
getchar();
}
}
//简表处理函数
void worker::brevity()
{
employee em;
int top=vwk.size();
int size=vem.size();
if(top==0)
{
cout<<"\t没有建立记录,请先建立记录信息。"<<endl;
return;
}
for(int i=size;i<top;i++)
{
vem.push_back(em);
vem[i]=vwk[i];
}
}
//显示教职工完整信息处理函数
void worker::Dispwk()
{
if(vwk.size()==0)
{
cout<<"\t没有输入信息,请先输入信息。"<<endl;
return;
}
cout<<"\t编号"<<"\t姓名"<<"\t性别"<<"\t年龄"<<"\t工资"<<endl;
for(int i=0;i<vwk.size();i++)
printer(vwk[i]);
}
//显示简表信息处理函数
void worker::Dispem()
{
int top=vwk.size();
int size=vem.size();
if(size==0)
{
cout<<"\t没有生成简表,请先生成简表。"<<endl;
return;
}
if(size!=top)
{
cout<<"\t没有生成新的简表,"<<endl<<"\t原来的简表内容如下:"<<endl;
}
else size=top;
cout<<"\t姓名"<<"\t年龄"<<endl;
for(int i=0;i<size;i++)
printer(vem[i]);
}
main.cpp
#include"T.h"
void mian()
{
worker w;
w.handle_menu();
}
void worker::handle_menu(void)
{
for(;;)
{
switch(menu_select())//
{
case 1:
addin();
break;
case 2:
brevity();
break;
case 3:
Dispwk();
break;
case 4:
Dispem();
break;
case 5:
cout<<"\t再见\n";
return;
}
}
}
//菜单选择函数
int worker::menu_select()
{
char e[2];
int cn;
cout<<"\t1.增加职工记录\n";
cout<<"\t2.生成信息简表\n";
cout<<"\t3.显示原始记录\n";
cout<<"\t4.显示简表记录\n";
cout<<"\t5.结束程序运行\n";
cout<<"\t选择1--5:\n";
for(;;)
{
gets(e);
cn=atoi(e);
if(cn5)
cout<<"\n\t输入错误,重选1-5:";
else
break;
}
return cn;
}