STL容器List应用——简易的员工信息管理系统

项目要求:

1、员工类中包含以下元素:

员工编号
部门编号
姓名
年龄
工资

2、按需求显示:

(1)按部门升序显示,在部门中按员工编号显示;
(2)按工资从高到低显示,工资水平一样的按照部门升序显示,部门里按员工编号升序;

3、查找:

按员工编号查找

4、删除:

按员工编号删除;
删除 工资 低于 1000元的员工;
删除 某个 部门的所有员工

程序示例:

#include <iostream>
#include <algorithm>
#include <list>
using namespace std;

class Emp{
private:
	int empno;
	int deptno;
	string name;
	int age;
	double salary;
public:
	int getEmpNo()const{
		return empno;	
	}
	int getDeptNo()const{
		return deptno;	
	}
	string getName()const{
		return name;	
	}
	int getAge()const{
		return age;	
	}
	double getSalary()const{
		return salary;	
	}
	Emp(int empno=0,int deptno=0,string name="",int age=0,double salary=0):
		empno(empno),deptno(deptno),name(name),age(age),salary(salary){}
	bool operator==(const Emp& e)const{
		return empno == e.empno;	
	}
	int operator<(const Emp& e)const{
		return empno < e.empno;
	}
	friend ostream& operator<<(ostream& os,const Emp& e){
		return os << e.empno << ":" << e.deptno << ":" << e.name << ":" << e.age << ":" << e.salary;	
	}
	friend istream& operator>>(istream& is,Emp& e){
		return is>>e.empno>>e.deptno>>e.name>>e.age>>e.salary;	
	}
};

class Comp1{
public:	
	int operator()(const Emp& e1,const Emp& e2){
		if(e1.getDeptNo() == e2.getDeptNo()){
			return e1.getEmpNo() < e2.getEmpNo();
		}
		return e1.getDeptNo() < e2.getDeptNo();
	}
};

class Comp2{
public:	
	int operator()(const Emp& e1,const Emp& e2){
		if(e1.getSalary() == e2.getSalary()){
			Comp1 c;
			return c(e1,e2);
		}
		return e1.getSalary() > e2.getSalary();
	}
};

class Cond1{
public:	
	bool operator()(const Emp& e){
		return e.getSalary() < 1000;	
	}
};

class Cond2{
public:	
	Cond2(int deptno):deptno(deptno){}
	bool operator()(const Emp& e){
		return e.getDeptNo == deptno;
	}
private:
	int deptno;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值