关于P160~P166-练习-职工管理系统
1、显示职工功能
功能:显示当前所有职工信息
1 显示职工函数声明
在workerManager.h中添加成员函数void Show_Emp();
//显示职工
void Show_Emp();
2 显示职工函数实现
在workerManager.cpp中实现成员函数
//显示职工
void WorkerManager::Show_Emp()
{
//判断文件是否为空
if (this->m_FilesEmpty)
{
cout << "文件不存在或者记录为空!" << endl;
}
else
{
for (int i = 0;i < m_EmpNum;i++)
{
//利用多态调用程序接口
this->m_EmpArray[i]->showInfo();
}
}
//按任意键后清屏
system("pause");
system("cls");
}
3 测试显示职工
在main函数分支2选项中,调用显示程序的接口
case 2://显示职工信息
wm.Show_Emp();
2、删除职工-判断职工是否存在
功能:很多功能都需要根据职工是否存在来进行操作,如:删除职工、修改职工、查找职工
因此添加该公告函数,以便后续调用
1 判断职工是否存在函数声明
在workerManager.h中添加成员函数int IsExist(int id);
//按照职工编号判断职工是否存在
//若存在返回职工在数组中的位置,不存在返回-1
int IsExist(int id);
2 判断职工是否存在函数实现
在workerManager.cpp中实现成员函数
//判断职工是否存在
int WorkerManager::IsExist(int id)
{
int index = -1;
for (int i = 0;i < this->m_EmpNum;i++)
{
if (id == this->m_EmpArray[i]->m_Id)
{
index = i;
break;
}
}
return index;
}
3 测试判断职工是否存在
在main函数分支3选项中,调用测试判断职工是否存在程序的接口
case 3://删除离职职工
//测试
{
int ret = wm.IsExist(1);
if (ret != -1)
{
cout << "职工存在" << endl;
}
else
{
cout << "职工不存在" << endl;
}
break;
}
注意:出现以下报错是因为在main函数分支3选项中代码过长,用大括号括上即可
测试完,记住将测试代码删除,留下break语句
3、删除职工
功能:按照职工编号进行删除职工操作
1 删除职工函数声明
在workerManager.h中添加成员函数void Del_Emp();
//删除职工
void Del_Emp();
2 删除职工函数实现
在workerManager.cpp中实现成员函数
本质:数据前移
//删除职工
void WorkerManager::Del_Emp()
{
if (this->m_FilesEmpty)
{
cout << "文件不存在或者记录为空!" << endl;
}
else
{
//按照职工编号进行删除
int id = 0;
cout << "请输入您想删除的员工编号:" << endl;
cin >> id;
int index = this->IsExist(id);
if (index == -1)
{
cout << "删除失败,查无