基于多态的职工管理系统(12)------修改职工

12、修改职工

功能描述:能够按照职工的编号对职工信息进行修改并保存

12.1 修改职工函数声明

在workerManager.h中添加成员函数 void Mod_Emp();

    //修改职工
    void Mod_Emp();

12.2 修改职工函数实现

在workerManager.cpp中实现成员函数 void Mod_Emp();

//修改职工
void WorkerManager::Mod_Emp()
{
    if (this->m_FileIsEmpty)
    {
        cout << "文件不存在或记录为空!" << endl;
    }
    else
    {
        cout << "请输入修改职工的编号:" << endl;
        int id;
        cin >> id;

        int ret = this->IsExist(id);
        if (ret != -1)
        { 
            //查找到编号的职工

            delete this->m_EmpArray[ret];
            
            int newId = 0;
            string newName = "";
            int dSelect = 0;

            cout << "查到: " << id << "号职工,请输入新职工号: " << endl;
            cin >> newId;

            cout << "请输入新姓名: " << endl;
            cin >> newName;

            cout << "请输入岗位: " << endl;
            cout << "1、普通职工" << endl;
            cout << "2、经理" << endl;
            cout << "3、老板" << endl;
            cin >> dSelect;

            Worker * worker = NULL;
            switch (dSelect)
            {
            case1:
                worker = new Employee(newId, newName, dSelect);
                break;
            case2:
                worker = new Manager(newId, newName, dSelect);
                break;
            case 3:
                worker = new Boss(newId, newName, dSelect);
                break;
            default:
                break;
            }

            //更改数据 到数组中
            this->m_EmpArray[ret]= worker;
            
            cout << "修改成功!" << endl;

            //保存到文件中
            this->save();
        }
        else
        {
            cout << "修改失败,查无此人" << endl;
        }
    }

    //按任意键 清屏
    system("pause");
    system("cls");
}

12.3 测试修改职工

在main函数分支 4 选项中,调用修改职工接口

 

测试1 - 修改不存在职工情况

测试2 - 修改存在职工情况,例如将职工 "李四" 改为 "赵四"

修改后再次查看所有职工信息,并确认修改成功

再次确认文件中信息也同步更新

至此,修改职工功能已实现!

 

posted @ 2021-06-24 16:08  清水石头  阅读(100)  评论(0)    收藏  举报