公司员工管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公司员工管理系统
/////////////////////////////////////////////////////////
//公司员工管理系统--CEMS
#include
#include
#include
//////////////////////////////////////////////////////////
// 工资明细结构体
typedef struct WAGE
{
float Base_Wage; // 基本工资
float Merit_Wage; // 绩效工资
float Sum_Wage; // 总工资
}WAGE;
// 包括职工姓名、职工号的工资记录
typedef struct Emplo_Wage
{
char id[10]; // 职工编号
char name[10]; // 职工姓名
WAGE data; // 工资
}Emplo_Wage;
typedef struct Node
{
char E_id[10]; //职工号
char E_name[10]; //姓名
char E_sex[3]; //性别
char E_dep[20]; //部门
char E_job[20]; //职务
float E_wage; //工资
struct Node *prior; //前驱指针
struct Node *next; //后继指针
}Node,*DLink;
////////////////////////////////////////////////////////// // 工资大于1000的员工,超过部门需要按税率交税float Tax_Rate1=0.05f; // 3000 以下
float Tax_Rate2=0.1f; // 3000-8000
float Tax_Rate3=0.15f; // 8000 以上
void SetWage(DLink p);
//////////////////////////////////////////////////////////
// 职工类
class employee
{
private:
Node data; // 结构体类型的数据成员
public:
friend ostream & operator<<(ostream & stream,const DLink p); //友元重载输出
流运算符
friend istream & operator>>(istream & stream,DLink p); //友元重载输入
流运算符
employee(); // 构造函数
DLink CreateLink(); // 创立链表
DLink InsertNode(DLink Head); // 插入一个结点
};
///////////////////////////////////////////////////////////
// 全局常量,一个结点的大小
const int NUM=sizeof(Node);
///////////////////////////////////////////////////////////
// 重载输出流运算符
ostream & operator<<(ostream & stream,const DLink p)
{
stream< >E_id< (10)< < >E_dep< (15)< } /////////////////////////////////////////////////////////// // 重载输入流运算符 istream & operator>>(istream & stream,DLink p) { cout<<"姓名:"; //输入姓名 stream>>p->E_name; cout<<"性别:"; //输入性别 stream>>p->E_sex; cout<<"部门:"; //输入所在部门 stream>>p->E_dep; cout<<"职务:"; //输入职务 stream>>p->E_job; SetWage(p); //输入工资 cout< return stream; } ////////////////////////////////////////////////////////// //构造函数 employee::employee() { } ////////////////////////////////////////////////////////// //创立链表(申请一个头结点) DLink employee::CreateLink() { DLink Head; Head=new Node; //申请一个空间 Head->prior=NULL; Head->next=NULL; return Head; } ////////////////////////////////////////////////////////// //插入结点 DLink employee::InsertNode(DLink Head) {