14.12 修改职工信息

14.12 修改职工信息

1、按照编号修改职工信息

先声明

	//修改职工
	void mod_Emp();

再实现
就是把查到的职工删除,再在那个位置输入一个新职工。
所以跟添加职工的代码很多地方一样。

//修改职工
void WorkerManager::mod_Emp()
{
	if (this->m_FileIsEmpty)
	{
		cout << "文件不存在或记录为空!" << endl;
	}
	else
	{
		cout << "请输入修改的职工编号:";
		int id = 0;
		cin >> id;
		int index = this->isExit(id);
		if (index != -1)
		{
			//找到了
			cout << "找到了一个职工:" << endl;
			this->m_EmpArray[index]->showInfo();

			delete this->m_EmpArray[index];

			int newId = 0;
			string newName = "";
			int newDId = 0;

			while (true)
			{
				cout << "请输入新编号:";
				cin >> id;
				int index = this->isExit(id);
				if (index != -1)
				{
					cout << "该编号已被占用,请重新输入编号" << endl;
				}
				else
				{
					break;
				}
			}
			cout << "请输入新姓名:";
			cin >> newName;

			Worker* worker = NULL;
			while (true)
			{
				cout << "请输入新岗位:" << endl;;
				cout << "1、普通职工" << endl;
				cout << "2、经理" << endl;
				cout << "3、老板" << endl;
				cin >> newDId;

				switch (newDId)
				{
				case 1:
					worker = new Employee(id, newName, newDId);
					break;
				case 2:
					worker = new Manager(id, newName, newDId);
					break;
				case 3:
					worker = new Boss(id, newName, newDId);
					break;
				default:
					cout << "输入的数据有误,请重新选择" << endl;
					break;
				}
				if (worker != NULL)
				{
					break;
				}
			}
			this->m_EmpArray[index] = worker;
			cout << "修改成功!" << endl;
			this->Save();
		}
		else
		{
			cout << "修改失败,查无此人!";
		}
	}
}
2、在main里添加选择
		case 4:	//修改职工
			wm.mod_Emp();
			break;
3、测试:

先显示一下信息
在这里插入图片描述
把2号改一下
在这里插入图片描述
再显示一下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值