用c++实现职工管理系统

本文档详细介绍了如何使用C++实现一个基于多态的职工管理系统,包括系统结构、功能模块、菜单设计、文件交互、多态实现、职工信息管理、文件读写等。系统支持添加、显示、删除、修改、查找和排序职工信息,并能保存到文件中。

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

首先带大家看看文件的结构以及树状图

以下是具体的思路:

1、管理系统需求

职工管理系统可以用来管理公司内所有员工信息

本教程主要利用c++来实现一个基于多态的职工管理系统

公司中职工分为三类:普通员工、经理、老板、显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责

普通员工职责:完成经理交给的任务

经理的职责:完成老板交给的任务,并下发给任务给员工

老板职责:管理公司所有事物

管理系统中需要实现的功能如下

  • 推出管理程序: 退出当前管理系统

  • 增加职工信息: 实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号

  • 显示职工信息: 显示公司内部所有职工的信息

  • 删除离职职工:按照编号删除指定的职工

  • 修改职工信息: 按照编号修改职工个人信息

  • 查找职工信息: 按照职工的编号或者职工的姓名进行查找相关的人员信息

  • 按照编号排序:按照职工编号、进行排序,排序规则由用户指定

  • 清空所有文档:清空文件中记录的所有职工信息(清空前需要在此取人,防止误删)

系统界面效果如图:

2、创建项目

创建项目步骤如下:

  • 创建新项目

  • 添加文件

2.1创建项目

打开vs2017后,点击创建项目,创建新的C++项目

 

填写项目名称以及项目路径,点击确认

 

2.2添加文件

右键源文件,进行添加文件操作

 

 

至此项目已经创建完毕

3、创建管理类

管理类负责的内容如下:

  • 与用户的沟通菜单界面

  • 对职工增删改查的操作

  • 与文件的读写交互

3.1创建文件

在头文件和源文件的文件下分别创建workerManager.h和workManager.cpp文件

 

3.2头文件实现

在workManager.h中设计管理类

代码如下:

#pragma  once//防止头文件重复包含
#include <iostream>//包含输入输出流头文件
using namespace std;//使用标准命名空间
class WorkerManager
{
public:
    //构造函数
    WorkerManager();
    //析构函数
    ~WorkerManager();
};

在workerManager.cpp中设计管理类

代码如下:

#include "workerManager.h"
​
WorkerManager::WorkerManager()
{
​
}
WorkerManager::~WorkerManager()
{
​
​
}

4、菜单功能

功能描述:与用户的沟通界面

4.1 添加成员函数

在管理类workerManager.h中添加成员函数 void Show_Menu():

#pragma  once//防止头文件重复包含
#include <iostream>//包含输入输出流头文件
using namespace std;//使用标准命名空间
class WorkerManager
{
public:
    //构造函数
    WorkerManager();
​
    //展示菜单
    void Show_Menu();
​
    //析构函数
    ~WorkerManager();
};

4.2 菜单功能实现

在管理类workerManager.cpp中实现Show_Menu()函数

#include "workerManager.h"
​
WorkerManager::WorkerManager()
{
​
}
//展示菜单
void WorkerManager::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;
}
WorkerManager::~WorkerManager()
{
    if (this->m_EmArray != NULL)
    {
        delete[] this->m_EmArray;
        this->m_EmArray = NULL;
    }
​
}

4.3 测试菜单功能

在职工管理系统.cpp中测试菜单功能

代码:

#include<iostream>
using namespace std;
#include "workerManager.h"
​
int main()
{
    //实例化管理者对象
    WorkerManager wm;
    //调用展示菜单成员函数
    wm.Show_Menu();
    system("pause");
    return 0;
}

运行效果如图:

 

5、退出功能

5.1提供功能接口

在main函数中提供分支选择,提供每个功能接口

代码:

#include<iostream>
using namespace std;
#include "workerManager.h"
​
int main()
{
    //实例化管理者对象
    WorkManager wm;
​
    int choice = 0;//用来存储用户的选项
    while(true)
    {
   //调用展示菜单成员函数
    wm.Show_Menu();
    cout << "请输入您的选择" << endl;
    cin >> choice;//接受用户的选项
    switch (choice)
    {
    case 0://退出系统
        wm.ExitSystem();
        break;
    case 1://增加职工
        break;
    case 2://显示职工
        break;
    case 3://删除职工
        break;
    case 4://修改职工
        break;
    case 5://查找职工
        break;
    case 6://排序职工
        break;
    case 7://清空文档
        break;
    default://清屏
        break;
    }
    }
    
    system("pause");
    return 0;
}

5.2实现退出功能

在workerManager.h中退出系统的成员函数 void exitSystem();

void ExitSystem();

在workerManager.cpp中提供具体的功能实现

代码:

void WorkerManager::ExitSystem()
{
    cout << "欢饮下次再使用" << endl;
    system("pause");
    exit(0);//退出程序
}

5.3测试功能

在main函数分支0选项中,调用退出程序的接口

运行测试截图

 

6、创建职工类

6.1创建职工抽象类

职工的分类为: 普通员工、经理、老板

将三种职工抽象到一个类(worker)中,利用多态管理不同职工种类

职工的属性为:职工编号、职工姓名、职工所在部门编号

职工的行为:岗位指责信息描述、获取岗位

【员工管理系统】 问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 基本要求:排序:按不同关键字,对所有员工的信息进行排序;查询:按特定条件查找员工;更新,按编号对某个员工的某项信息进行修改;插入,加入新员工的信息;删除,按编号删除已离职的员工的信息。 选作内容:实现图形用户界面。 通过链表实现 数据结构: #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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值