职工管理系统之添加职工

//workermanager.h
#pragma once//防止头文件重复使用
#include<iostream>
#include"worker0.h"
#include"manager.h"
#include"boss.h"
#include"employ.h"

using namespace std;
class workermanger
{
public:
	//workermanger();//构造函数
	~workermanger();//析构函数
	void exitsystem();//退出系统
	void show_menu();//菜单显示
	//记录职工人数
	int m_empnum;
	//职工数组指针
	worker** m_emparray;
	//添加职工函数
	void add_emp();
		//显示类成员
	void show_emp();
		bool m_Fileisempty;
	
};
//workermanager.cpp
#include"workermanger.h"

//workermanger::workermanger()//构造函数
//{
//	this->m_empnum = 0;
//	this->m_emparray = NULL;
//}

void workermanger::show_menu()
{
	cout << "*****************************************" << endl;
	cout << "********* 欢迎使用职工管理系统 **********" << endl;
	cout << "***********  0.退出管理系统  ************" << endl;
	cout << "***********  1.增加职工信息  ************" << endl;
	cout << "***********  2.显示职工信息  ************" << endl;
	cout << "***********  3.删除离职职工  ************" << endl;
	cout << "***********  4.修改职工信息  ************" << endl;
	cout << "***********  5.查找职工信息  ************" << endl;
	cout << "***********  6.按照编号排序  ************" << endl;
	cout << "***********  7.清空所有文档  ************" << endl;
	cout << "*****************************************" << endl;
	cout << endl;
}
void workermanger::exitsystem()//退出系统
{
	cout << "欢迎下次使用" << endl;
	system("pause");
	exit(0);//退出程序
}
void workermanger::add_emp()
{
	cout << "请输入添加苦力工的数量:" << endl;
	int addnum = 0;//保存用户的输入数量
	cin >> addnum;
	if (addnum > 0)
	{
		//添加
		int newsize = this->m_empnum + addnum;
		//计算添加新空间大小
		//开辟新空间
		worker**newspace= new worker* [newsize];
		//把原来空间数据拷贝
		if (this->m_empnum != 0)
		{
			for (int i = 0; i < this->m_empnum; i++)
			{
				newspace[i] = this->m_emparray[i];
			}
		}
		//添加新数据
		for (int i = 0; i < addnum; i++)
		{
			int id;//职工编号
			string name;//职工姓名
			int dselect;//部门选择
			cout << "请输入第" << i + 1 << "个新职工编号" << endl;
			cin >> id;
			cout << "请输入第" << i + 1 << "个新职工姓名" << endl;
			cin >> name;
			cout << "请输入第" << i + 1 << "个新职工岗位" << endl;
			cout << "1.苦力工" << endl;
			cout << "2.周扒皮" << endl;
			cout << "3.李老板" << endl;
			cin >> dselect;
			worker* worker = NULL;
			switch (dselect)
			{
			case1:
				worker = new employee(id, name, 1);
				break;
			case2:
				worker = new manager(id, name, 2);
				break;
			case3:
				worker = new boss(id, name, 3);
				break;
			dafault:
				break;
			}
			//把指针放到数组中
			newspace[this->m_empnum + i] = worker;
		}
		
		//释放原有的空间
		delete[]this->m_emparray;
		//更改新空间的指向
		this->m_emparray = newspace;
		//更新新的职工人数
		this->m_empnum = newsize;
		//表示添加成功
		cout << "添加成功" << addnum << "公司成员" << endl;
		//保存数据到文件中
		
	}
	else
		cout << "我一眼看穿你不是人" << endl;
}
//显示类成员
void workermanger::show_emp()
{
	for (int i = 0; i < m_empnum; i++)
	{
		this->m_emparray[i]->showinfo();
	}
	system("pause");
}
workermanger::~workermanger()
{
	if (this->m_emparray != NULL)
	{
		delete[]this->m_emparray;
		this->m_emparray = NULL;
	}
}

//职工管理系统.cpp
#include<iostream>
using namespace std;
#include"workermanger.h"
#include"worker0.h"
#include"employ.h"
#include"manager.h"
#include"boss.h"
int main()
{
	/*worker* worker = NULL;
	worker = new employee(1, "张三", 1);
	worker->showinfo();
	delete worker;
	worker = new manager(2, "李四", 2);
	worker->showinfo();
	delete worker;
	worker = new boss(3, "王五", 3);
	worker->showinfo();
	delete worker;*/
	//实例化一个管理者的对象
	workermanger wm;
	int choice = 0;//用来存储用户选项
	while (true)
	{
		//调用菜单函数
		wm.show_menu();
		cout << "请输入您的选择: " << endl;
		cin >> choice;//输入选择
		switch (choice)
		{
		case 0:wm.exitsystem();//退出系统
			break;
		case 1://增加职工
			wm.add_emp();
			break; 
		case 2://显示职工
			wm.show_emp();
				break;
		case 3://删除职工
			break;
		case 4://修改职工
			break;
		case 5://查找职工
			break;
		case 6://排序职工
			break;
		case 7://清空文档
			break;
		
		default:
			system("cls");//清屏操作
			break;
		}
	}

	system("pause");
	return 0;
}
//boss.h
//老板类
#pragma once
#include<iostream>
using namespace std;
#include"worker0.h"
class boss :public worker
{
public:
	//构造函数
	boss(int id, string name, int did);
	//显示个人信息
	virtual void showinfo();
	//获取岗位名称
	virtual string getdeptname();
};
//boss.cpp
#include"boss.h"
//构造函数
boss::boss(int id, string name, int did)
{
	this->m_id = id;
	this->m_name = name;
	this->m_deptid = did;
}
//显示个人信息
void boss::showinfo()
{
	cout << "职工编号:" << this->m_id
		<< "\t职工姓名:" << this->m_name
		<< "\t职位:" << this->getdeptname()
		<< "\t岗位职责:压榨经理老板,天天tv泡妞" << endl;
}
//获取岗位名称
string boss::getdeptname()
{
	return string("李老板");
}
//manager.h
#include"manager.h"
//构造函数
manager::manager(int id, string name, int did)
{
	this->m_id = id;
	this->m_name = name;
	this->m_deptid = did;
}
//显示个人信息
void manager::showinfo()
{
	cout << "职工编号:" << this->m_id
		<< "\t职工姓名:" << this->m_name
		<< "\t职位:" << this->getdeptname()
		<< "\t岗位职责:压榨普通员工当周扒皮,并且拍老板马屁" << endl;
}
//获取岗位名称
string manager::getdeptname()
{
	return string("周扒皮");
}
//manager.cpp
//经理类
#pragma once
#include<iostream>
using namespace std;
#include"worker0.h"
class manager :public worker
{
public:
	//构造函数
	manager(int id, string name, int did);
	//显示个人信息
	virtual void showinfo();
	//获取岗位名称
	virtual string getdeptname();
};
//employee.h
//普通职工类
#pragma once
#include<iostream>
using namespace std;
#include"worker0.h"
class employee :public worker
{
public:
	//构造函数
	employee(int id,string name,int did);
	//显示个人信息
	virtual void showinfo();
	//获取岗位名称
	virtual string getdeptname();
};
//employee.cpp
#include"employ.h"
//构造函数
employee::employee(int id, string name, int did)
{
	this->m_id = id;
	this->m_name = name;
	this->m_deptid = did;
}
//显示个人信息
void employee::showinfo()
{
	cout << "职工编号:" << this->m_id
	 << "\t职工姓名:" << this->m_name
	 << "\t职位:" << this->getdeptname() 
	 << "\t岗位职责:当苦力工完成最苦最累的任务" << endl;
}
//获取岗位名称
string employee::getdeptname()
{
	return string("苦力工");
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值