C++公司类镶嵌员工类

运行效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
头文件:
#include
#include
using namespace std;


员工类:
class Cemployee
{

private: 
	string name;
	int age;
	string sex; 
	string ID;
	string worknumber;
	float salary;
	string position; 
public:
	Cemployee();
	float get_salary();
	string get_name(); 
	string get_worknumber();
	void show_employee();

};


员工类函数实现如下:
Cemployee::Cemployee()
{

	cout << "请输入员工信息" << endl;
	cout << "员工姓名: " << endl;
    cin >>name;
    cout << "员工年龄: " << endl;
    cin >>age;
    cout<<"员工性别:"<<endl; 
    cin>>sex;
    cout << "员工身份证号: " << endl;
    cin >>ID;
    cout << "员工工号: " << endl;
    cin >>worknumber;
    cout << "员工工资: " << endl;
    cin >>salary;
}

void Cemployee::show_employee()
{

cout <<"姓名: " <<name<<'\t' << "年龄: " <<age<<'\t'<<
"性别:"<<sex<<'\t'<< "身份证号: "<<ID << '\t'<< "工号: " 
<<worknumber<<'\t'<< "工资: " << salary<<'\b'<<endl;

}

float Cemployee::get_salary()
{

return salary;

}

string Cemployee::get_name()
{

return name;

}

string Cemployee::get_worknumber()
{

return worknumber;

}


公司类:
class Ccompany
{

private:
	string comname;
	string comrelevant;
	float comexpend;
	float comincome;		
public:
	int number;
	Ccompany();//构造函数
	~Ccompany(); //析构函数 
	Cemployee *emp[100];
	void show_company();//显示公司信息
	void plus_salary();//显示员工工资总和
	void search_name();//按照姓名查询员工信息
	void delete_name();//删除员工
	void add_employee();//增加员工 

};


公司类函数实现如下:
Ccompany::Ccompany()
{

cout<<"请输入公司的相关信息"<<endl; 
cout<<"公司名:";
cin>>comname;
cout<<"公司信息:";
cin>>comrelevant;
cout<<"公司员工工资支出:";
cin>>comexpend;
cout<<"公司收入:";
cin>>comincome; 
cout<<"公司员工个数:";
cin>>number;

} //构造函数初始化

void Ccompany::show_company()//显示公司信息
{

cout<<"******************"<<endl; 
cout<<"公司信息"<<endl;
cout<<"公司名字:"<<comname<<'\t'<<"公司相关信息:"<<comrelevant<<'\t'<<
"公司员工工资总支出:"<<comexpend<<'\t'<<"公司收入:"<<comincome<<'\t'<<
"公司员工个数:"<<number<<endl;
cout<<"员工信息"<<endl; 

}

void Ccompany::plus_salary()//显示员工工资总和
{

float sum;
for(int i=0;i<number;i++)
	sum+=emp[i]->get_salary() ;
cout<<"员工工资总和:"<<sum<<endl;

}

void Ccompany::search_name()//按照姓名查询员工信息
{

string n;
int i,count=0;
cout<<"请输入员工姓名:";
cin>>n;
for(i=0;i<number;i++)
{
	if(emp[i]!=NULL)
	{
		if(emp[i]->get_name() ==n)
		{
			emp[i]->show_employee();
			count++;
		}		
	}
	else
		cout<<"对不起,查无此人!"<<endl;		
}
if(count==0)
	cout<<"对不起,查无此人!"<<endl;

}

void Ccompany::delete_name()//删除员工
{

string n;
cin>>n;
for(int i=0;i<number;i++)
{
	if(emp[i]->get_name() ==n)
		emp[i]=NULL;
}

}

void Ccompany::add_employee()//增加员工
{

int n,i;
cout<<"请输入增加员工的数量:";
cin>>n;
for(i=number;i<number+n;i++)
	emp[i]=new Cemployee;
number+=n;

}

Ccompany::~Ccompany()
{
}


main()函数:

int main()
{

Ccompany company;
cout<<endl;
for(int i=0;i<company.number;i++)
	company.emp[i]=new Cemployee;	
company.show_company();
for(int i=0;i<company.number;i++)
	company.emp[i]->show_employee();
cout<<endl;
cout<<"******************"<<endl; 	
 while(1)
{
	cout <<"---------------------"<< endl;
	cout << "1.按照姓名查询员工信息" << endl;
    cout << "2.按姓名删除员工信息" << endl;
    cout << "3.所有员工的工资总额"<<endl;
    cout << "4.增加新员工"<<endl; 
    cout << "0.退出" << endl;
    cout <<"---------------------"<< endl;
    cout << "请输入你想选择的功能:" << endl;
    int num;
    cin >> num;
    cout<<"--------------------"<<endl;
    if(num==0)
    	break;
	switch(num)
	{
	    case 1:
	        company.search_name();break;
	    case 2:
		   	company.delete_name();break;
	    case 3:
		    company.plus_salary();break;
		case 4:
			company.add_employee();break;
		default: 
	        cout<<"请输入正确的操作指令"<<endl;
	        cout<<"**************************"<<endl; 
	}
}
return 0;

}
新手发博,纯原创

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
员工管理系统】 问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 基本要求:排序:按不同关键字,对所有员工的信息进行排序;查询:按特定条件查找员工;更新,按编号对某个员工的某项信息进行修改;插入,加入新员工的信息;删除,按编号删除已离职的员工的信息。 选作内容:实现图形用户界面。 通过链表实现 数据结构: #include #include #include #include #include using namespace std; typedef struct workers{ char name[15];//姓名 char department[18];//单位 char gender;//性别 unsigned int age;//年龄 unsigned long long telephone;//电话 unsigned long wage;//工资 unsigned long num;//职工号 struct workers *next; }*Linklist,Lnode; void frist_print() { printf("\t\t⊙▽⊙ ⊙▽⊙ ⊙▽⊙ ⊙▽⊙ ⊙▽⊙ ⊙▽⊙ \n\n"); printf("\t\t\t欢迎进入员工管理系统\n"); } void menu() { printf("\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); printf("\t\t \t ◎1.创建员工信息\t \n"); printf("\t\t \t ◎2.插入员工信息\t \n"); printf("\t\t \t ◎3.修改员工信息\t \n"); printf("\t\t \t ◎4.删除员工信息\t \n"); printf("\t\t \t ◎5.查询员工信息\t \n"); printf("\t\t \t ◎6.员工信息排序\t \n"); printf("\t\t \t ◎7.显示员工信息\t \n"); printf("\t\t \t ◎8.员工工资情况\t \n"); printf("\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); printf("注意:输入均以回车作为结束\n"); printf("please choise 1--8:\t "); //putchar(12); } void Inset(Linklist Head){ Linklist s,L; unsigned int agee; unsigned long wagee,numm;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值