目录
此程序为根据黑马公开课展示实例进行编写,稍有改动
1.workersystem.cpp
#include "wokerManager.h"
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
wokerManager wm;
while (1)
{
wm.showMenu();
int choice = 0;
cout << "请输入你的选择" << endl;
cin >> choice;
switch (choice)
{
case 0: //退出系统
{
wm.eixtSystem();
break;
}
case 1: //添加职工
{
wm.addUser();
break;
}
case 2: //显示员工信息
{
wm.showallinfo();
break;
}
case 3: //查找员工信息
{
cout << "输入员工ID" << endl;
cin >> choice;
if (wm.searchuser(choice) != -1)
{
wm.worker_array[wm.searchuser(choice)]->showinfo();
system("pause");
system("cls");
}
else
{
cout << "查无此人" << endl;
system("pause");
system("cls");
}
break;
}
case 4: //修改员工信息
{
cout << "请输入需要修改的员工编号" << endl;
cin >> choice;
wm.modify_user(choice);
break;
}
case 5: //删除职工信息
{
cout << "请输入需要删除的员工编号" << endl;
cin >> choice;
wm.deleteUser(choice);
break;
}
case 6: //冒泡排序
{
break;
}
case 7: //删除所有信息
{
wm.deleteAll();
break;
}
default:
cout << "请重新输入" << endl;
break;
}
}
system("pause");
return 0;
}
2.wokerManager.h
#pragma once
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
#define FILENAME "workersystem.txt"
class Worker;
class wokerManager
{
private:
/* data */
public:
wokerManager();
~wokerManager();
void showMenu();//打印菜单
void eixtSystem();//退出系统
void addUser();//添加用户
void save();//保存数据到文本
int get_usernum();//统计当前用户数
void init_system();//初始化当前内存
void showallinfo();//打印所有用户
int searchuser(int id);//根据ID查找用户
void modify_user(int id);//修改用户信息
void deleteUser(int id);//删除单一用户信息
void deleteAll();//删除所有信息
int current_num; //当前用户数
Worker **worker_array; //用于维护用户的地址数组
bool fileisEmpty;
};
class Worker
{
public:
int num_id;
string name;
int num_depid;
virtual void showinfo() = 0;
};
class Employee : public Worker
{
public:
Employee(int id, string name, int depid);
virtual void showinfo();
};
class Manager : public Worker
{
public:
Manager(int id, string name, int depid);
virtual void showinfo();
};
class CEO : public Worker
{
public:
CEO(int id, string name, int depid);
virtual void showinfo();
};