C++员工管理系统

本文介绍了一个使用C++编写的员工管理系统,代码经过验证,运行稳定,无明显错误,可供学习和参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看一下整体框架
请添加图片描述

//boss.h
#pragma once
#include <iostream>
#include "worker.h"
using namespace std;

class Boss :public Worker
{
public:
	//声明构造函数
	Boss(int id, string name, int dep);

	virtual void showInfo();
	virtual string getDeptName();
};
//manager.h
#pragma once
//普通员工
#include <iostream>
using namespace std;

#include "worker.h"

class Manager :public Worker
{
public:

	//声明构造函数
	Manager(int id, string name, int dep);

	//显示个人信息
	virtual void showInfo();

	//获取岗位名称
	virtual string getDeptName();
};
//employee.h
#pragma once
//普通员工
#include <iostream>
using namespace std;

#include "worker.h"

class Employee :public Worker
{
public:

	//声明构造函数
	Employee(int id, string name, int dep);

	//显示个人信息
	virtual void showInfo();

	//获取岗位名称
	virtual string getDeptName();
};
//worker.h
#pragma once
#include <iostream>
#include <string>
using namespace std;

//员工抽象基类(运用多态弄出三个小类)
class Worker
{
public:

	//显示个人信息(用到多态)
	virtual void showInfo() = 0;

	//获取岗位名称
	virtual string getDeptName() = NULL;

	int p_ID;	//员工编号
	string p_Name;//员工姓名
	int p_DeptId;//员工所在部门名称编号

};

//workManager.h
#pragma once	//防止头文件重复包含
#include<iostream>	//包含输入输出流头文件
using namespace std;//使用标准命名空间

#include "worker.h"
#include "employee.h"
#include "manager.h"
#include"boss.h"

#include <fstream>
#define FILENAME "empFile.txt"

class WorkManager
{
public:

	//构造函数
	WorkManager();
	
	//展示菜单
	void showMenu();

	//退出系统功能
	void exitSystem();

	//记录员工人数
	int p_EmpNum;

	//员工数组指针
	Worker ** p_EmpArray;

	//添加员工
	void add_Emp();

	//保存文件
	void save();

	//判断文件是否为空的标志
	bool p_FileIsEmpty;

	//统计人数
	int getEmpNum();

	//初始化员工
	void init_Emp();

	//显示员工
	void show_Emp();

	//删除员工
	void del_Emp();

	//判断员工是否存在
	int isExist(int id);

	//修改员工
	void modify_Emp();

	//查找员工
	void find_Emp();

	//员工排序
	void sort_Emp();

	//清空文件
	void clean_Emp();

	//析构函数
	~WorkManager();


};
//boss.cpp
#include "boss.h"

Boss::Boss(int id, string name, int dep)
{
	this->p_ID = id;
	this->p_Name = name;
	this->p_DeptId = dep;
}

void Boss::showInfo()
{
	cout << "员工编号:" << this->p_ID
		<< "\t员工姓名:" << this->p_Name
		<< "\t员工岗位:" << this->getDeptName()
		<< "\t岗位职责:管理公司所有事情" << endl;
}

string Boss::getDeptName()
{
	return string("老板");
}

//employee.cpp
#include "employee.h"

Employee::Employee(int id, string name, int dep)
{
	this->p_ID = id;
	this->p_Name = name;
	this->p_DeptId = dep;
}

void Employee::showInfo()
{
	cout << "员工编号:" << this->p_ID
		<< "\t员工姓名:" << this->p
员工管理系统】 问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 基本要求:排序:按不同关键字,对所有员工的信息进行排序;查询:按特定条件查找员工;更新,按编号对某个员工的某项信息进行修改;插入,加入新员工的信息;删除,按编号删除已离职的员工的信息。 选作内容:实现图形用户界面。 通过链表实现 数据结构: #include #include #include #include #include using namespace std; typedef struct workers{ char name[15];//姓名 char department[18];//单位 char gender;//性别 unsigned int age;//年龄 unsigned long long telephone;//电话 unsigned long wage;//工资 unsigned long num;//职工号 struct workers *next; }*Linklist,Lnode; void frist_print() { printf("\t\t⊙▽⊙ ⊙▽⊙ ⊙▽⊙ ⊙▽⊙ ⊙▽⊙ ⊙▽⊙ \n\n"); printf("\t\t\t欢迎进入员工管理系统\n"); } void menu() { printf("\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); printf("\t\t \t ◎1.创建员工信息\t \n"); printf("\t\t \t ◎2.插入员工信息\t \n"); printf("\t\t \t ◎3.修改员工信息\t \n"); printf("\t\t \t ◎4.删除员工信息\t \n"); printf("\t\t \t ◎5.查询员工信息\t \n"); printf("\t\t \t ◎6.员工信息排序\t \n"); printf("\t\t \t ◎7.显示员工信息\t \n"); printf("\t\t \t ◎8.员工工资情况\t \n"); printf("\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); printf("注意:输入均以回车作为结束\n"); printf("please choise 1--8:\t "); //putchar(12); } void Inset(Linklist Head){ Linklist s,L; unsigned int agee; unsigned long wagee,numm;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0泡果奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值