[C++] 职工管理系统(新手版)-Clion

通过一段时间的学习,大概把c++的知识过了一遍,现在跟着黑马的教程做一个职工管理系统。

虽然是一个老到掉渣的经典程序了,基本上人人都会写一遍哈哈哈哈哈哈哈哈哈哈,但是我还是要写出来,记录一下,如此菜鸡的自己。

我会在这里加上一些自己的见解,当然有一部分是教程里面本身的笔记

程序的目录如下,想要看哪一部分可以直接跳转观看

1 明确 管理系统需求

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

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

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

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

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

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

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

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

页面展示哈哈哈哈哈哈哈哈哈哈:

在这里插入图片描述

看到这里,我在想没有前端的世界看起来确实没有这么美好,不多说,接着

2 创建项目

创建项目步骤如下:

我使用的是clion2020

第一步

没什么值得说的,无脑newProject就完事了

第二步

这里可以给自己的项目命名,注意了,请尽量使用英文

请尽量使用英文!!

如果不使用英文的话,有可能会导致某些莫名其妙的报错和bug,总之就是所有的名称都尽量使用英文,我将这个项目名称使用驼峰命名法将其命名为StaffManagementSystem,无脑机翻就完事了

在这里插入图片描述

创建完成!

新文件后面再添加,当然如果你看main.cpp名字不顺眼,可以改改名字

在这里插入图片描述

3 创建管理类

管理类负责的内容如下:

  • 与用户的沟通菜单界面
  • 对职工增产改查的操作
  • 与文件的读写交互操作

3.1 创建文件

在文件夹下创建头文件workerManager.h和源文件workerManager.cpp

操作如下图:

在这里插入图片描述

这个是头文件的页面,源文件也是一样的,就不演示了

在这里插入图片描述

3.2 头文件的实现

在workerManager.h中设计管理类

代码如下:

#pragma once
#include<iostream>

using namespace std;



class WorkerManager{
public:

    //构造函数
    WorkerManager();

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

3.3 源文件的实现

在workerManager.cpp中,将代码补全

代码如下:

#include "workerManger.h"


WorkerManager::WorkerManager() {}


WorkerManager::~WorkerManager() {}


至此,管理类创建完毕

4 菜单功能实现

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

4.1 添加成员函数

在管理类workerManger.h中添加成员函数 void show_Menu();

在这里插入图片描述

4.2 菜单功能实现

在源文件中实现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 测试菜单功能

在main函数中输入下列代码

在这里插入图片描述

运行页面略

注意:编码一定要保持一致,不然会乱码

5 退出功能

5.1 提供功能接口

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

代码:

#include <iostream> //标准输入输出流
#include "workerManger.h"
using namespace std;



int main() {

    //实例化管理者对象
    WorkerManager wm;
    int choice = 0;

   while(true) {
       //调用展示成员函数
       wm.Show_Menu();

       cout<<"请输入您要选择的功能"<<endl;
       cin>> choice;


       switch(choice) {
           case 0://退出
               break;
           case 1://增加职工信息
               break;
           case 2://显示职工信息
               break;
           case 3://删除离职员工
               break;
           case 4://修改职工信息
               break;
           case 5://查找职工信息
               break;
           case 6://按照编号排序
               break;
           case 7://清空所有文档
               break;
           default:
               system("cls");
               break;
       }
   }



    system("pause");
    return 0;
}

5.2 实现退出功能

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

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

void WorkerManager::exitSystem() {
    cout<<"欢迎下次使用"<<endl;
    system("pause");
    exit(0);
}

5.3 测试功能

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

case 0://退出
      wm.exitSystem();
	  break;

6 创建职工类

6.1 创建职工抽象类

职工分为三类:员工、经理、老板

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

职工的共有特性为: 职工编号、职工姓名、职工所在部门编号

职工的行为为:岗位职责信息描述,获取岗位名称

首先,我们先创建头文件worker.h,并添加下列的代码

#pragma once
#include<iostream>
#include<string>
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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值