基于C++的职工管理系统

这篇具有很好参考价值的文章主要介绍了基于C++的职工管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、管理系统需求

职工管理系统可以用来管理公司内所有员工的信息
本教程主要利用C++来实现一个基于多态的职工管理系统
公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责
普通员工职责:完成经理交给的任务
经理职责:完成老板交给的任务,并下发任务给员工
老板职责:管理公司所有事务

管理系统中需要实现的功能如下:
●退出管理程序:退出当前管理系统
●增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号
●显示职工信息:显示公司内部所有职工的信息
●删除离职职工:按照编号删除指定的职工
●修改职工信息:按照编号修改职工个人信息
●查找职工信息:按照职工的编号或者职工的姓名进行查找相关的人员信息
●按照编号排序:按照职工编号,进行排序,排序规则由用户指定
●清空所有文档:清空文件中记录的所有职工信息(清空前需要再次确认,防止误删)

系统界面效果图如下:

2、创建项目

创建项目步骤如下:
●创建新项目

文件新建一个空项目,配置好项目名和项目存放路径。

基于C++的职工管理系统
●添加文件

源文件->右键“添加”->新建项->创建“职工管理系统.cpp”文件

 基于C++的职工管理系统基于C++的职工管理系统

 3、创建管理类

管理类负责的内容如下: 
  ●与用户的沟通菜单界面
  ●对职工增删改查的操作
  ●与文件的读写交互
3.1创建文件
在头文件和源文件的文件夹下分别创建workerManager.h和workerManager.cpp文件

基于C++的职工管理系统
3.2头文件实现
在workerManager.h中设计管理类
代码如下:

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

class WorkerManager
{
public:
    // 构造函数
    WorkerManager(/* args */);

    // 析构函数
    ~WorkerManager();
};


3.3源文件实现
在workerManager.cpp中将构造和析构函数空实现补全

#include "workerManager.h"

WorkerManager::WorkerManager(/* args */)
{
}

WorkerManager::~WorkerManager()
{
}

4、菜单功能

功能描述:与用户的沟通界面
4.1添加成员函数
在管理类workerManager.h中添加成员函数void Show_ Menu();

基于C++的职工管理系统

4.2菜单功能实现
在管理类workerManager.cpp中实现Show_ Menu()函数

// 展示菜单
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;
    cout << endl;
}

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

#include <iostream>
using namespace std;
#include "workerManager.h"

int main()
{
    // 实例化管理者对象
    WorkerManager wm;
    // 调用展示菜单成员函数
    wm.Show_Menu();

    system("pause");
    return 0;
}

运行效果图:

基于C++的职工管理系统

5、退出功能

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

#include <iostream>
using namespace std;
#include "workerManager.h"

int main()
{
    // 实例化管理者对象
    WorkerManager 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:
            system("pause");
            return 0;
        }
    }
}

 5.2实现退出功能
在workerManager.h中提供退出系统的成员函数woid exitSystem(); 
在workerManager.cpp中提供具体的功能实现
workerManager.h中:

基于C++的职工管理系统

 workerManager.cpp中:

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

6、创建职工类

6.1创建职工抽象类
职工的分类为:普通员工、经理、老板
将三种职工抽象到一个类(worker) 中,利用多态管理不同职工种类
职工的属性为:职工编号、职工姓名、职工所在部门编号
职工的行为为:岗位职责信息描述,获取岗位名称
头文件文件夹下创建文件worker.h文件并且添加如下代码:

#pragma once
#include <iostream>
using namespace std;

// 职工抽象类
class Worker
{
public:
    // 显示个人信息
    virtual void showInfo() = 0;

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

    // 职工编号
    int m_Id;
    // 职工姓名
    string m_Name;
    // 部门编号
    int m_DeptId;
};

6.2创建普通员工类
普通员工类继承职工抽象类,并重写父类中纯虚函数
在头文件和源文件的文件夹下分别创建employee.h和employee.cpp文件
employee.h中代码如下:

// 普通员工文件
#pragma once
#include <iostream>
using namespace std;
#include "worker.h"

class Employee : public Worker
{
public:
    // 构造函数
    Employee(int id, string name, int dId);

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

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

employee.cpp中代码如下:

#include "employee.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("员工");
}

6.3创建经理类
经理类继承职工抽象类,并重写父类中纯虚函数,和普通员工类似
在头文件和源文件的文件夹下分别创建manager.h和manager.cpp文件
manager .h中代码如下:

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

// 经理类
class Manager : public Worker
{
public:
    // 构造函数
    Manager(int id, string name, int dId);

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

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

manager.cpp中代码如下:

#include <string>
#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岗位:" << string(this->getDeptName())
         << "\t岗位职责:完成老板交给的任务,并且下发任务给员工" << endl;
}

// 获取岗位名称
string Manager::getDeptName()
{
    return string("经理");
}

6.4创建老板类
老板类继承职工抽象类,并重写父类中纯虚函数,和普通员工类似
在头文件和源文件的文件夹下分别创建boss.h和boss.cpp文件
boss.h中代码如下:

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

// 老板类
class Boss : public Worker
{
public:
    // 构造函数
    Boss(int id, string name, int dId);

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

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

boss.cpp中代码如下:

#include <string>
#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岗位:" << string(this->getDeptName())
         << "\t岗位职责:管理公司所有的事务" << endl;
}

// 获取岗位名称
string Boss::getDeptName()
{
    return string("老板");
}

6.5测试多态
在职工管理系统.cpp中添加测试函数,并且运行能够产生多态
测试代码如下:文章来源地址https://www.toymoban.com/news/detail-435126.html

#include "worker.h"
#include "employee.h"
#include "manager.h"
#include "boss.h"
int main()
{

    // 测试代码:
    Worker *worker = NULL;
    worker = new Employee(1, "张三", 1);
    worker->showInfo();
    delete wo

到了这里,关于基于C++的职工管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 37基于java的职工管理系统设计与实现

    本章节给大家带来一个基于java的职工管理系统设计与实现,可适用于员工管理系统,企业员工管理系统,公司员工管理系统,企业人事管理系统,基于java职工管理系统,前后端分离,员工考勤管理系统,职工奖惩管理系统,职员合同管理,HR管理系统,人事HR管理系统等;

    2024年02月05日
    浏览(98)
  • 程序设计职工管理系统

    本系统要求用 C 语言建立 一个职工信息管理系统 ,本职工信息管理系统可以实现对众多员工信息 的管理 。 包含 对 职工信息 进行 添加 、 查询 、 删除 、修改 。 1.2 系统的界面要求  按任意键便可以进入主菜单,在主菜单上显示出 该系统 的功能,通过输入数字 0 到 6  来

    2024年02月08日
    浏览(43)
  • 职工信息管理系统(C语言)

    目录 1.前言 2.实现功能 3.流程图  4.源码 5.总结         距学习C语言已经相当长的一段时间了,编写一个小项目,功能实现可能不是很完美,算是复习和记录吧! 0.录入职工信息                      1.按工资高低排序 2.修改职工信息 3.显示职工信息 4.删除职工信息 5.查询

    2024年02月11日
    浏览(41)
  • C语言课程设计_职工工资管理系统

    设计一个职工工资管理系统: (1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 (2)显示记录:根据用户提供的记录或者根据职工姓名

    2024年02月10日
    浏览(36)
  • 数据结构C/C++ 职工信息管理系统

    数据结构C/C++ 职工信息管理系统 一、前言 二、系统结构设计 三、模块功能代码 3.1 菜单函数 3.2 初始化单链表 3.3 添加信息 3.4 信息输出 3.5 信息排序 3.6 信息删除 3.7 信息存储 四、系统完整代码 五、运行结果(部分展示) 六、实验总结 七、参考网址 本文还是使用较老的

    2024年01月16日
    浏览(42)
  • 黑马程序员-职工管理系统实战-附加源码Git

    职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老

    2024年02月03日
    浏览(64)
  • QT5实现职工工资信息管理系统(文件读写)

    暑期学校QT实践项目 该系统需创建和管理如下信息:1、职工信息:工号、姓名、年龄、入职日期、电话、住址、月工资数据集。2、月工资信息:月份、基本工资、岗位工资、工龄工资、津贴、岗贴、补贴、房贴、交通补贴。 系统功能要求如下: 1.创建和管理职工信息的对

    2024年02月09日
    浏览(45)
  • 基于Java+SpringBoot+Vue+Uniapp小程序前后端分离租房管理系统设计与实现(支持支付宝支付、有需求解析文档50页、演示视频)

    博主介绍: ✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品: 《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-

    2024年02月06日
    浏览(44)
  • 基于C++实现家谱管理系统

    家谱管理系统是一个社会不可缺少的部分,它对于家族中的各个人、社会、历史学家等来说都至关重要,所以一个良好的家谱管理系统应该能够为用户提供充足的信息和功能。家谱系统对于家族和历史学家研究家族的发展有极其重要的作用。随着家族人数的日益庞大,如何管

    2024年02月08日
    浏览(31)
  • 基于C++实现的学生信息管理系统

    点击获取(源码+课程设计报告文档+截图) 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包