c++编程 设计项目: 职工信息管理系统

一、设计项目:(一)职工信息管理系统问题描述(功能要求):(1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。(2)使用... 一、设计项目:
(一)职工信息管理系统
问题描述(功能要求):
(1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。
(2)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)使用相应的对象放置10个职工信息。
(3)编写同名display()成员函数,用来输出数组的内容。
(4)抽取并计算职工的平均年龄。
(5)检索(查找)指定信息。(如按姓名检索、按年龄检索)
(6)参考界面如下:
增加一位教师记录
增加一位工人记录
显示全部职工记录
计算教师平均年龄
计算工人平均年龄
删除一个教师
删除一个工人
按姓名检索所有信息
结束程序运行
只需要编(3)编写同名display()成员函数,用来输出数组的内容。
急需....
展开
 我来答
徐光猪
2011-01-03 · TA获得超过4167个赞
知道大有可为答主
回答量:1299
采纳率:50%
帮助的人:1734万
展开全部
#include <iostream>
#include <string>
using namespace std;

class employee
{
public:
virtual void display()=0;
protected:
int num;
string name;
string sex;
float income;
int birthday;
int workday;
int age;
};

class teacher:public employee
{
public:
void getdata()
{
cout<<"请输入编号:"<<endl;
cin>>num;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入姓别:"<<endl;
cin>>sex;
cout<<"请输入薪水:"<<endl;
cin>>income;
cout<<"请输入生日:"<<endl;
cin>>birthday;
cout<<"请输入工作年龄:"<<endl;
cin>>workday;
age=workday-birthday;
}
void display()
{
cout<<"编号:"<<num<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"姓别:"<<sex<<endl;
cout<<"薪水:"<<income<<endl;
cout<<"生日:"<<birthday<<endl;
cout<<"参加工作时间:"<<workday<<endl;
cout<<"年龄:"<<age<<endl;
}
int getage()
{
age=workday-birthday;
return age;
}
int getnum()
{
return num;
}
string getname()
{
return name;
}
};

class worker:public employee
{
public:
void getdata()
{
cout<<"请输入编号:"<<endl;
cin>>num;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入姓别:"<<endl;
cin>>sex;
cout<<"请输入薪水:"<<endl;
cin>>income;
cout<<"请输入生日:"<<endl;
cin>>birthday;
cout<<"请输入工作年龄:"<<endl;
cin>>workday;
}
void display()
{
cout<<"编号:"<<num<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"姓别:"<<sex<<endl;
cout<<"薪水:"<<income<<endl;
cout<<"生日:"<<birthday<<endl;
cout<<"参加工作时间:"<<workday<<endl;
cout<<"年龄:"<<age<<endl;
}
int getage()
{
age=workday-birthday;
return age;
}
int getnum()
{
return num;
}
string getname()
{
return name;
}
};

void menu(int &choice)
{
cout<<"\t\t\t 职工信息管理系统"<<endl;
cout<<"\t\t\t1、增加一位教师记录"<<endl;
cout<<"\t\t\t2、增加一位工人记录"<<endl;
cout<<"\t\t\t3、显示全部职工记录"<<endl;
cout<<"\t\t\t4、计算教师平均年龄"<<endl;
cout<<"\t\t\t5、计算工人平均年龄"<<endl;
cout<<"\t\t\t6、删除一个教师"<<endl;
cout<<"\t\t\t7、删除一个工人"<<endl;
cout<<"\t\t\t8、按姓名检索所有信息"<<endl;
cout<<"\t\t\t0、结束程序运行"<<endl;
cout<<"\t\t 请输入你的选择:";
cin>>choice;
}

int main()
{
int choice=0;
int indx1=0,indx2=0;
bool flag=false;
teacher t[50];
worker w[50];
while (1)
{
int i=0;
int average=0;
int temp;
string tname;
menu(choice);
switch (choice)
{
case 1:
t[indx1++].getdata();
break;
case 2:
w[indx2++].getdata();
break;
case 3:
cout<<"显示所有教师信息:"<<endl;
for (i=0;i!=indx1;++i)
{
t[i].display();
}
cout<<"显示所有工人信息:"<<endl;
for (i=0;i!=indx2;++i)
{
w[i].display();
}
break;
case 4:
cout<<"教师平均年龄:"<<endl;
for (i=0;i!=indx1;++i)
{
average+=t[i].getage();
}
cout<<average/indx1;
break;
case 5:
cout<<"工人平均年龄:"<<endl;
for (i=0;i!=indx2;++i)
{
average+=w[i].getage();
}
cout<<average/indx2;
break;
case 6:
cout<<"请输入要删除教师的编号"<<endl;
cin>>temp;
for (i=0;i!=indx1;++i)
{
if (temp==t[i].getnum())
{
do
{
t[i]=t[i+1];
++i;
} while (i!=indx1);
cout<<"已删除"<<endl;
--indx1;
break;
}
}
break;
case 7:
cout<<"请输入要删除工人的编号"<<endl;
cin>>temp;
for (i=0;i!=indx2;++i)
{
if (temp==w[i].getnum())
{
do
{
w[i]=w[i+1];
++i;
} while (i!=indx2);
cout<<"已删除"<<endl;
--indx2;
break;
}
}
break;
case 8:
cout<<"请输入姓名:"<<endl;
cin>>tname;
for (i=0;i!=indx1;++i)
{
if (tname==t[i].getname())
{
cout<<"这位是教师"<<endl;
t[i].display();
}
}
for (i=0;i!=indx2;++i)
{
if (tname==w[i].getname())
{
cout<<"这位是工人"<<endl;
w[i].display();
}
}
break;
case 0:
flag=true;
break;
}
if (flag)
{
break;
}
}
return 0;
}

楼主,我是自己写的,原创,你可以参考一下,个人推崇原创,拒接复制
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式