⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 人事管理.h

📁 这个系统功能稍微简单了
💻 H
字号:
class Employee
{
protected:
	int NO;
	char name[10];
	int GZcode;
	int ZWcode;
	int month;
	double salary;
public:
	void addEmployee();    //增加员工信息
	void delEmployee();    //删除员工信息
	void statusChange();     //改变员工柜组或职务
	void findStatus();     //查询员工代码
	void recordSalary();     //记录员工工资
	void Query();        //查询员工信息
	friend void in_message();
};

class Salesman:public Employee
{public:
	void Salary()
	{
	cout<<"请输入其当月销售额:  ";
	double s;
	cin>>s;
	salary=2000+s*0.05;  
	}
};
class Manager:public Employee
{public:
	void Salary()
	{
	cout<<"请输入其当月销售额:  ";
	double s;
	cin>>s;
	salary=4000+s*0.005;  
	}
};
class Warehouseman:public Employee
{public:
	void Salary()
	{
	cout<<"请输入其当月表现应得的奖金额:  ";
	double s;
	cin>>s;
	salary=3000+s;  
	}
};


#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
#include<string.h>

int m=0; int k=0;
Employee a[30];

void in_message()
{
    ifstream p;
	p.open("D:\\员工信息.txt",ios::nocreate);
	if(!p.is_open())
		cout<<"没有任何员工信息!! 返回上级! \n";
    m=0;
	while(!p.eof())
	{
		p>>a[m].NO>>a[m].name>>a[m].GZcode>>a[m].ZWcode;
		m++;
	}
	p.close();
}

void Employee::addEmployee()
{
	Employee b;
	cout<<"请输入新添员工信息:\n";
	cout<<"编号: ";
	cin>>b.NO; 
	cout<<"姓名: ";
	cin>>b.name;
	cout<<"所在柜组的代码(1食品2服装3电器): ";
	cin>>b.GZcode; 
	cout<<"职务代码(1销售员2经理3库管): ";
	cin>>b.ZWcode;
	ofstream p;
	p.open("D:\\员工信息.txt",ios::app);
    p<<setw(6)<<b.NO<<setw(8)<<b.name<<setw(10)<<b.GZcode<<setw(10)<<b.ZWcode<<endl;
	p.close();
}

void Employee::delEmployee()
{
    in_message();
    ofstream p;
	cout<<"请选择要删除员工的编号: \n";
	int n=0;
	cin>>n;
    p.open("D:\\员工信息.txt");
	for(k=0;k<m-1;k++)
		if(n!=a[k].NO)
			p<<setw(6)<<a[k].NO<<setw(8)<<a[k].name<<setw(10)<<a[k].GZcode<<setw(10)<<a[k].ZWcode<<endl;
	p.close();
	cout<<"删除成功!"<<endl;
}

void Employee::findStatus()
{   
	in_message();
	cout<<"请输入要查找编号员工的姓名: ";
	char na[10];
	cin>>na;
	for(k=0;k<m-1;k++)
		if(strcmp(na,a[k].name)==0)
		{cout<<a[k].name<<"的柜组代码为: "<<a[k].GZcode<<"  "
		        <<"职务代码为: "<<a[k].ZWcode<<endl; }
	if(k==m-1)
		cout<<"没有此人信息!\n";
}

void Employee::Query()    
{   
    in_message();
	cout<<"员工信息: \n"
		<<setw(6)<<"编号"<<setw(8)<<"姓名"<<setw(10)<<"柜组代码"<<setw(10)<<"职务代码"<<endl;
	for(k=0;k<m-1;k++)
		cout<<setw(6)<<a[k].NO<<setw(8)<<a[k].name<<setw(10)<<a[k].GZcode<<setw(10)<<a[k].ZWcode<<endl;  
}		

void Employee::statusChange()
{
	in_message();
	ofstream p;
	cout<<"请输入要更改柜组或职务员工的编号: \n";
	int n=0;
	cin>>n;
	for(k=0;k<m-1;k++)
	   if(n==a[k].NO)
	   {cout<<a[k].name<<"的柜组代码为:"<<a[k].GZcode<<"  "<<"职务代码为:"<<a[k].ZWcode<<endl
			  <<"请选择更改项目: 1.柜组代码 2.职务代码 \n";
	      goto a;}
	cout<<"没有这个员工代码,请查询在改!"<<endl; return;
a:	cin>>n;
	switch(n)
	{
	case 1: 
		cout<<"请输入新的柜组代码:";
		cin>>a[k].GZcode;
		break;
	case 2:
		cout<<"请输入新的职务代码:";
		cin>>a[k].ZWcode; 
	}
    p.open("D:\\员工信息.txt");
	for(k=0;k<m-1;k++)
		p<<setw(6)<<a[k].NO<<setw(8)<<a[k].name<<setw(10)<<a[k].GZcode<<setw(10)<<a[k].ZWcode<<endl;
	p.close();
	cout<<"修改成功!"<<endl;
}

void Employee::recordSalary()
{
	cout<<"请选择操作: 1.计算员工工资 2.显示工资情况 \n";
    fstream p;	
	cin>>k;
	switch(k)
	{
	case 1:
		Salesman a1;Manager a2;Warehouseman a3;
		in_message();
		cout<<"请输入工资所在月份: ";
		cin>>a[0].month;
		p.open("D:\\员工工资.txt",ios::out);
		p<<"月份: "<<a[0].month<<endl;
		for(k=0;k<m-1;k++)
		{
			cout<<setw(6)<<"编号"<<setw(6)<<"姓名"<<setw(5)<<"职务"<<endl;
			p<<setw(6)<<a[k].NO<<setw(6)<<a[k].name<<setw(5)<<a[k].ZWcode;
			cout<<setw(6)<<a[k].NO<<setw(6)<<a[k].name<<setw(5)<<a[k].ZWcode<<endl;
			if(a[k].ZWcode==1)
			{ a1.Salary();
			  p<<setw(7)<<a1.salary<<endl;
			  cout<<a[k].name<<"的薪水为: "<<setw(7)<<a1.salary<<endl;}
			if(a[k].ZWcode==2)
			{ a2.Salary();
			  p<<setw(7)<<a2.salary<<endl;
		      cout<<a[k].name<<"的薪水为: "<<setw(7)<<a2.salary<<endl;}
			if(a[k].ZWcode==3)
			{ a3.Salary();
		      p<<setw(7)<<a3.salary<<endl;
		      cout<<a[k].name<<"的薪水为: "<<setw(7)<<a3.salary<<endl;}
		}
        p.close();break;
	case 2:
		p.open("D:\\员工工资.txt",ios::in|ios::nocreate);
		if(!p.is_open())
		{cout<<"没有员工工资记录!!"; break;}
		char nouse[20];
		p.getline(nouse,sizeof(nouse));
		cout<<nouse<<endl;
		k=0;
		while(!p.eof())
		{ p>>a[k].NO>>a[k].name>>a[k].ZWcode>>a[k].salary;
		  k++;
		}
		cout<<setw(6)<<"编号"<<setw(6)<<"姓名"<<setw(5)<<"职务"<<setw(7)<<"薪水"<<endl;
		for(int i=0;i<k-1;i++)
			cout<<setw(6)<<a[i].NO<<setw(6)<<a[i].name<<setw(5)<<a[i].ZWcode<<setw(7)<<a[i].salary<<endl;
	}
	p.close();
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -