首页 > 其他 > 详细

p152-项目之职工管理系统(第二部分)

时间:2021-04-06 09:03:59      阅读:15      评论:0      收藏:0      [点我收藏+]

第6步、创建职工类

技术分享图片

 

 

创建普通员工类、创建经理类、创建老板类

worker.h

 1 #pragma once
 2 #include<iostream>
 3 using namespace std;
 4 #include<string>
 5 
 6 //职工抽象类
 7 class Worker
 8 {
 9 public:
10     //显示个人信息
11     virtual void showInfo() = 0;
12     //获取岗位名称
13     virtual string getDeptName() = 0;
14 
15 
16     //职工编号
17     int m_Id;
18     //职工姓名
19     string m_Name;
20     //部门编号
21     int m_DeptId;
22 
23 };

 

 

employee.h

 1 //普通员工文件
 2 #pragma once
 3 #include<iostream>
 4 using namespace std;
 5 #include"worker.h"
 6 
 7 class Employee :public Worker
 8 {
 9 public:
10     //构造函数
11     Employee(int id, string name, int did);
12     //显示个人信息
13     virtual void showInfo();
14 
15     //获取岗位名称
16     virtual string getDeptName();
17 
18 };

 

employee.cpp

 1 #include"employee.h"
 2 
 3 //构造函数
 4 Employee::Employee(int id, string name, int did)
 5 {
 6     this->m_Id = id;
 7     this->m_Name = name;
 8     this->m_DeptId = did;
 9 }
10 //显示个人信息
11 void Employee::showInfo()
12 {
13     cout << "职工编号: " << this->m_Id
14         << "\t" << "职工姓名:" << this->m_Name
15         << "\t" << "岗位:" << this->getDeptName()
16         << "\t岗位职责:完成经理交给的任务" << endl;
17 }
18 
19 //获取岗位名称
20 string Employee::getDeptName()
21 {
22     return string("员工");
23 }

主函数

 1 #include<iostream>
 2 using namespace std;
 3 #include"workerManager.h"
 4 #include"worker.h"
 5 #include"employee.h"
 6 
 7 int main()
 8 {
 9     //测试代码:
10     Worker * worker = NULL;
11     worker = new Employee(1, "张三", 1);
12     worker->showInfo();
13     /*
14     //实例化管理者对象
15     WorkerManager wm;
16 
17     int choice = 0;//用来存储用户的选项
18 
19     while (true)
20     {
21         //调用展示菜单成员函数
22         wm.show_Menu();
23 
24         cout << "请输入您的选择:" << endl;
25         cin >> choice;//接收用户的选项
26         switch (choice)
27         {
28         case 0://退出系统
29             wm.exitSystem();
30             break;
31 
32         case 1://增加职工
33             break;
34 
35         case 2://显示职工
36             break;
37 
38         case 3://删除职工
39             break;
40 
41         case 4://修改职工
42             break;
43 
44         case 5://查找职工
45             break;
46 
47         case 6://排序职工
48             break;
49 
50         case 7://清空文档
51             break;
52         default:
53             system("cls");//清屏
54             break;
55         }
56     }
57 
58 
59     */
60     system("pause");
61     return 0;
62 }

 

创建经理类

manager.h

 1 #pragma once
 2 #include<iostream>
 3 using namespace std;
 4 #include"worker.h"
 5 
 6 //经理类
 7 class Manager :public Worker
 8 {
 9 public:
10 
11     //构造函数
12     Manager(int id, string name, int dId);
13 
14     //显示个人信息
15     virtual void showInfo();
16 
17     //获取岗位名称
18     virtual string getDeptName();
19 
20 };

 

manager.cpp

 1 #include"manager.h"
 2 
 3 //构造函数
 4 Manager::Manager(int id, string name, int dId)
 5 {
 6     this->m_Id = id;
 7     this->m_Name = name;
 8     this->m_DeptId = dId;
 9 }
10 
11 //显示个人信息
12 void Manager::showInfo()
13 {
14     cout << "职工编号: " << this->m_Id
15         << "\t" << "职工姓名:" << this->m_Name
16         << "\t" << "岗位:" << this->getDeptName()
17         << "\t岗位职责:完成老板交给的任务,并且下发任务给普通员工" << endl;
18 
19 }
20 
21 //获取岗位名称
22 string Manager::getDeptName()
23 {
24     return string("经理");
25 }

 

创建老板类

boss.h

 1 #pragma once
 2 #include<iostream>
 3 using namespace std;
 4 #include"worker.h"
 5 
 6 //老板类
 7 class Boss :public Worker
 8 {
 9 public:
10 
11     //构造函数
12     Boss(int id, string name, int dId);
13 
14     //显示个人信息
15     virtual void showInfo();
16 
17     //获取岗位名称
18     virtual string getDeptName();
19 
20 };

 

boss.cpp

 1 #include"boss.h"
 2 
 3 //构造函数
 4 Boss::Boss(int id, string name, int dId)
 5 {
 6     this->m_Id = id;
 7     this->m_Name = name;
 8     this->m_DeptId = dId;
 9 }
10 
11 //显示个人信息
12 void Boss::showInfo()
13 {
14     cout << "职工编号: " << this->m_Id
15         << "\t" << "职工姓名:" << this->m_Name
16         << "\t" << "岗位:" << this->getDeptName()
17         << "\t岗位职责:管理公司所有的事务" << endl;
18 
19 }
20 
21 //获取岗位名称
22 string Boss::getDeptName()
23 {
24     return string("总裁");
25 }

主函数文件

 1 #include<iostream>
 2 using namespace std;
 3 #include"workerManager.h"
 4 
 5 //#include"worker.h"
 6 //#include"employee.h"
 7 //#include"manager.h"
 8 //#include"boss.h"
 9 
10 int main()
11 {
12     ////测试代码:
13     //Worker * worker = NULL;
14     //worker = new Employee(1, "张三", 1);
15     //worker->showInfo();
16     //delete worker;
17 
18     //worker = new Manager(2, "李四", 2);
19     //worker->showInfo();
20     //delete worker;
21 
22     //worker = new Boss(3, "王五", 3);
23     //worker->showInfo();
24     //delete worker;
25 
26 
27     
28     //实例化管理者对象
29     WorkerManager wm;
30 
31     int choice = 0;//用来存储用户的选项
32 
33     while (true)
34     {
35         //调用展示菜单成员函数
36         wm.show_Menu();
37 
38         cout << "请输入您的选择:" << endl;
39         cin >> choice;//接收用户的选项
40         switch (choice)
41         {
42         case 0://退出系统
43             wm.exitSystem();
44             break;
45 
46         case 1://增加职工
47             break;
48 
49         case 2://显示职工
50             break;
51 
52         case 3://删除职工
53             break;
54 
55         case 4://修改职工
56             break;
57 
58         case 5://查找职工
59             break;
60 
61         case 6://排序职工
62             break;
63 
64         case 7://清空文档
65             break;
66         default:
67             system("cls");//清屏
68             break;
69         }
70     }
71 
72 
73     
74     system("pause");
75     return 0;
76 }

 

第7步、添加职工

 

思路:数组

问题:批量创建时,会有不同类的 职工

方法:利用数组保存所有的父类指针。

开辟在哪里呢?栈区?堆区?——堆区,自己开辟自己释放。

技术分享图片

 

p152-项目之职工管理系统(第二部分)

原文:https://www.cnblogs.com/zlh-1024powr/p/14619835.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!