基于C++控制台的职工管理系统

本文档详细介绍了使用C++构建一个多态职工管理系统的实现过程,包括添加、删除、修改和查找职工信息等功能,以及文件操作和面向对象设计。系统涉及五类关键对象:WorkerManger、Worker、OrdinaryWorker、Manager和Boss。
摘要由CSDN通过智能技术生成

管理系统需求文档

本系统利用C++来实现一个基于多态的职工管理系统,可用于管理公司内所有员工的信息。

公司中有三类职工:普通员工,经理,老板;每个员工对应的信息有: 职工编号、职工姓名、职工岗位和员工职责。

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

  • 退出管理系统:退出当前系统
  • 添加职工信息:实现批量添加职工的功能,将信息录入文件中,职工信息为:职工编号、职工姓名、职工岗位
  • 显示职工信息:显示公司中所有职工的信息
  • 删除离职职工:按照编号删除指定的职工
  • 修改职工信息:按照编号修改指定的职工的信息
  • 查找职工信息:按照职工的编号或者职工的姓名查找对应职工的信息
  • 按照编号排序:按照职工编号排序,可以选择升序或者降序。
  • 清空所有文档:清空文件中记录的所有职工的信息(清空前需要再次确认,防止误删)

开始界面:
在这里插入图片描述
类与类图:

此程序共用到5个类:

  • WorkerManger 职工管理类,主要功能的实现都在此类中
  • Worker 职工类(抽象类),定义职工的基本信息
  • OrdinaryWorker 普通职工类,实现普通职工的特殊职责
  • Manager 经理类,实现经理的特殊职责
  • Boss 老板类,实现老板的特殊职责
WorkerManger int m_workerNum Worker** m_workerArr bool EmptyFile +showMenu() : void +ExitSystem() : void +AddWorker() : void +isRepeat(int, int, Worker**) : bool +isExit(int) : int +save() : void +getNum() : int +initArray() : void +showWorker() : void +modifyWorker() : void +searchWorker() : void +sortWorker() : void +cleanFile() : void «abstract» Worker int m_id string m_name string m_dId +showInfo() OrdinaryWorker +showInfo() : void +OrdinaryWorker(string, int, string) Manger +showInfo() : void +Manger(string, int, string) Boss +showInfo() : void +Boss(string, int, string)

各个功能的实现

为用到面向对象,此系统将职工管理封装成一个WorkerManger类,该类的成员函数实现系统的各项功能(在主函数中创建对象并调用)

0 主函数

//main.cpp
#include <iostream>
#include "WorkerManger.h"
#include "Worker.h"
#include "OrdinaryWorker.h"
#include "Manger.h"
#include "Boss.h"

using namespace std;

int main()
{
   
    WorkerManger wm; //初始化管理对象
    while(1)
    {
   
//        // 测试代码
//        Worker * ow = NULL;
//        ow = new OrdinaryWorker("xx", 1, "普通员工");
//        ow->showInfo();
//        delete ow;
//
//        ow = new Manger("ll", 2, "经理");
//        ow->showInfo();
//        delete ow;
//
//        ow = new Boss("xl", 3, "老板");
//        ow->showInfo();
//        delete ow;
        wm.showMenu();   //显示菜单

        //定义选择变量
        int select;
        cout << "请输入您的选择:";
        cin >> select;

        switch(select)
        {
   
        case 1:
            wm.ExitSystem();
            break;
        case 2:
            wm.AddWorker();
            break;
        case 3:
            wm.showWorker();
            break;
        case 4:
            wm.deleteWorker();
            break;
        case 5:
            wm.modifyWorker();
            break;
        case 6: //查找
            wm.searchWorker();
            break;
        case 7
【员工管理系统】 问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 基本要求:排序:按不同关键字,对所有员工的信息进行排序;查询:按特定条件查找员工;更新,按编号对某个员工的某项信息进行修改;插入,加入新员工的信息;删除,按编号删除已离职的员工的信息。 选作内容:实现图形用户界面。 通过链表实现 数据结构: #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.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值