C++實(shí)現(xiàn)職工管理系統(tǒng)
本文實(shí)例為大家分享了C++實(shí)現(xiàn)職工管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
workermanager.h
#pragma once//防止頭文件重復(fù)包含 #include <iostream> #include "worker.h" using namespace std; #include "boss.h" #include "employee.h" #include "manager.h" #include <fstream> #define FILENAME "empFile.txt" class WorkerManager { public: WorkerManager(); void Show_Menu();//菜單功能 void ExitSystem();//退出功能 int m_EmpNum;//記錄職工人數(shù) Worker ** m_EmpArray;//職工數(shù)組指針 void Add_Emp();//添加職工 void Del_Emp();//刪除職工 void Find_Emp();//查找職工 void Mod_Emp();//修改職工 void Show_Emp();//顯示職工 void Sort_Emp();//排序 void Clean_File(); int IsExist(int id);//按照職工編號(hào)判斷職工是否存在,存在返回職工在數(shù)組中的位置,不存在返回-1 void save();//保存文件 bool m_FileIsEmpty;//判斷文件是否為空,標(biāo)志 int get_EmpNum();//統(tǒng)計(jì)人數(shù) void init_Emp();//初始化元員工 ~WorkerManager(); };
worker.h
#pragma once//防止頭文件重復(fù)包含 #include <iostream> #include <string> using namespace std; class Worker//職工抽象類(lèi) { public: //顯示個(gè)人信息 virtual void showInfo() = 0; //獲取崗位名稱(chēng) virtual string getDeptName() = 0; int m_Id;//職工編號(hào) string m_Name;//職工姓名 int m_DeptId;//職工所在部門(mén)的編號(hào) };
employee.h
#pragma once #include <iostream> using namespace std; #include "worker.h" class Employee :public Worker { public: //構(gòu)造函數(shù) Employee(int id, string name, int dId); //顯示個(gè)人信息 virtual void showInfo(); //獲取崗位信息 virtual string getDeptName(); };
manager.h
#pragma once #include <iostream> using namespace std; #include "worker.h" class Manager :public Worker { public: //構(gòu)造函數(shù) Manager (int id, string name, int dId); //顯示個(gè)人信息 virtual void showInfo(); //獲取崗位信息 virtual string getDeptName(); };
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(); };
職工管理系統(tǒng).cpp
#include <iostream> using namespace std; #include "WorkerManager.h" #include "worker.h" #include "employee.h" int main() { WorkerManager wm;//實(shí)例化管理對(duì)象 int choice = 0;//存儲(chǔ)用戶(hù) while (true) { //顯示菜單 wm.Show_Menu(); cout << "請(qǐng)輸入你的選擇:" << endl; cin >> choice; switch (choice) { case 0://退出系統(tǒng) wm.ExitSystem(); break; case 1://增加職工 wm.Add_Emp(); break; case 2://刪除職工 wm.Del_Emp(); break; case 3://查找職工 wm.Find_Emp(); break; case 4://修改職工 wm.Mod_Emp(); break; case 5://顯示職工 wm.Show_Emp(); break; case 6://排序職工 wm.Sort_Emp(); break; case 7://清空文檔 wm.Clean_File(); system("cls"); break; } } system("pause"); return 0; }
workermanager.cpp
#pragma once//防止頭文件重復(fù)包含 #include <iostream> #include "worker.h" using namespace std; #include "boss.h" #include "employee.h" #include "manager.h" #include <fstream> #define FILENAME "empFile.txt" class WorkerManager { public: WorkerManager(); void Show_Menu();//菜單功能 void ExitSystem();//退出功能 int m_EmpNum;//記錄職工人數(shù) Worker ** m_EmpArray;//職工數(shù)組指針 void Add_Emp();//添加職工 void Del_Emp();//刪除職工 void Find_Emp();//查找職工 void Mod_Emp();//修改職工 void Show_Emp();//顯示職工 void Sort_Emp();//排序 void Clean_File(); int IsExist(int id);//按照職工編號(hào)判斷職工是否存在,存在返回職工在數(shù)組中的位置,不存在返回-1 void save();//保存文件 bool m_FileIsEmpty;//判斷文件是否為空,標(biāo)志 int get_EmpNum();//統(tǒng)計(jì)人數(shù) void init_Emp();//初始化元員工 ~WorkerManager(); };
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 << "職工編號(hào):" << this->m_Id << "\t職工姓名:" << this->m_Name << "\t崗位:" << getDeptName() << "\t崗位職責(zé):完成經(jīng)理交給的任務(wù)" << endl; } string Employee::getDeptName() { return string("員工"); }
manager.cpp
#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 << "職工編號(hào):" << this->m_Id << "\t職工姓名:" << this->m_Name << "\t崗位:" << getDeptName() << "\t崗位職責(zé):完成老板布置的任務(wù)并下發(fā)給員工" << endl; } string Manager::getDeptName() { return string("經(jīng)理"); }
boss.cpp
#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 << "\t職工編號(hào):" << this->m_Id << "\t職工姓名:" << this->m_Name << "\t崗位:" << getDeptName() << "\t崗位職責(zé):管理整個(gè)公司" << endl; } string Boss::getDeptName() { return string ("老板"); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++利用GPAC實(shí)現(xiàn)生成MP4文件的示例代碼
GPAC主要針對(duì)學(xué)生和內(nèi)容創(chuàng)作者,代表了一個(gè)跨平臺(tái)的多媒體框架,開(kāi)發(fā)人員可以使用它在?LGPL?許可下制作開(kāi)源媒體。本文就來(lái)用GPAC實(shí)現(xiàn)生成MP4文件,感興趣的可以了解一下2023-02-02對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明
下面小編就為大家?guī)?lái)一篇對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12C++實(shí)現(xiàn)LeetCode(312.打氣球游戲)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(312.打氣球游戲),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C語(yǔ)言之實(shí)現(xiàn)單鏈表指定結(jié)點(diǎn)的插入方式
這篇文章主要介紹了C語(yǔ)言之實(shí)現(xiàn)單鏈表指定結(jié)點(diǎn)的插入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07