C++实现简单职工信息管理系统攻略
1. 需求分析
简单职工信息管理系统需要实现以下功能:
- 添加职工信息
- 显示职工信息
- 删除职工信息
- 修改职工信息
- 查找职工信息
- 排序
- 清空职工信息
- 退出系统
2. 设计思路
2.1 类的设计
我们可以设计一个职工类,用于存储职工的信息,包括编号、姓名、部门编号、职位信息等。同时,我们还可以设计一个管理类,用于管理所有的职工信息,实现添加、删除、修改、查询等功能。
具体的,职工类的设计如下:
class Worker {
public:
int m_Id; // 编号
string m_Name; // 姓名
int m_DeptId; // 部门编号
virtual void showInfo() = 0; // 显示个人信息
virtual string getDeptName() = 0; // 获取岗位名称
};
管理类的设计如下:
class WorkerManager {
public:
vector<Worker*> vWorker; // 容器保存职工信息
void addWorker(); // 添加职工
void showWorkerInfo(); // 显示职工信息
void deleteWorker(); // 删除职工
void modifyWorker(); // 修改职工信息
void findWorker(); // 查找职工信息
void sortWorker(); // 排序职工信息
void cleanWorker(); // 清空所有职工信息
void exitSystem(); // 退出管理系统
};
2.2 功能的实现
添加职工信息:
void WorkerManager::addWorker() {
...
}
显示职工信息:
void WorkerManager::showWorkerInfo() {
...
}
删除职工信息:
void WorkerManager::deleteWorker() {
...
}
修改职工信息:
void WorkerManager::modifyWorker() {
...
}
查找职工信息:
void WorkerManager::findWorker() {
...
}
排序职工信息:
void WorkerManager::sortWorker() {
...
}
清空职工信息:
void WorkerManager::cleanWorker() {
...
}
退出系统:
void WorkerManager::exitSystem() {
...
}
3. 代码实现
详细的代码实现请见附件中的代码文件。以下是添加职工信息和显示职工信息两个功能的示例说明。
示例1:添加职工信息
在实现添加职工信息功能时,我们首先需要定义一个输入职工信息的函数。
void add(EmployeeType etype) {
int id = m_EmpManager.getMaxId() + 1;
string name;
int deptId = 0;
string etypeInfo;
if (etype == NormalEmp) {
etypeInfo = "普通职工";
deptId = 1;
} else if (etype == ManagerEmp) {
etypeInfo = "经理";
deptId = 2;
} else {
etypeInfo = "老板";
deptId = 3;
}
// 输入姓名
cout << "请输入姓名:" << endl;
cin >> name;
// 创建职工对象
Worker* worker = NULL;
if (etype == NormalEmp) {
worker = new Employee(id, name, deptId);
} else if (etype == ManagerEmp) {
worker = new Manager(id, name, deptId);
} else {
worker = new Boss(id, name, deptId);
}
// 添加职工到容器
m_EmpManager.addWorker(worker);
// 提示添加成功
cout << etypeInfo << " 添加成功!" << endl;
}
其中,m_EmpManager是管理类的一个对象,用于管理所有的职工信息。职工对象的创建使用了工厂模式。
在主函数中,我们可以使用以下代码来实现添加职工信息的功能:
case 1: // 添加职工
{
int selectAddType = 0;
cout << "请输入职工类型:" << endl;
cout << "1. 普通职工" << endl;
cout << "2. 经理" << endl;
cout << "3. 老板" << endl;
cin >> selectAddType;
add((EmployeeType)selectAddType);
system("pause");
system("cls");
break;
}
示例2:显示职工信息
在实现显示所有职工信息的功能时,我们可以使用以下代码:
void WorkerManager::showWorkerInfo() {
// 判断信息容器中是否有信息
if (this->vWorker.size() == 0) {
cout << "当前记录为空!" << endl;
system("pause");
system("cls");
return;
}
for (vector<Worker*>::iterator it = this->vWorker.begin(); it != this->vWorker.end(); it++) {
(*it)->showInfo();
}
system("pause");
system("cls");
return;
}
在主函数中,我们可以使用以下代码来实现显示所有职工信息的功能:
case 2: // 显示职工
{
manger.showWorkerInfo();
break;
}
4. 总结
通过以上的设计和实现,我们可以实现一个简单的职工信息管理系统,可以方便地管理职工的信息,并且提供了添加、删除、修改、查询等各种功能,非常实用。同时,这个简单的管理系统也给我们演示了如何使用面向对象的思想进行程序设计,这对于我们提高程序设计的水平很有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现简单职工信息管理系统 - Python技术站