C++ 设计员工类(Employee)

Posted ʚVVcatɞ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 设计员工类(Employee)相关的知识,希望对你有一定的参考价值。

题目描述

定义一个描述员工(Employee)基本情况的类,数据成员包括编号(num)、姓名(name)、性别(sex)、工资(wage)、人数(count)、总工资(totalWage)。其中姓名定义为长度为18的字符数组,性别定义为长度为3的字符数组,其它数据类型为整型,总工资和人数为静态数据成员,函数成员包括构造函数、显示基本函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造函数由已知参数编号(nu),姓名(nm)、性别(sx)和工资(wg)构造对象,显示基本数据函数用于显示学生的编号、姓名、性别和工资,显示静态数据函数为静态成员函数,用于显示人数和总工资;要求所有数据成员为protected访问权限,所有成员函数为public访问权限,在主函数中定义若干个员工对象,分别显示员工基本信息,以及显示员工人数和总工资。

输入描述

第一行要求输入一个小于10的数字n,表示即将录入的员工数量,换行后从键盘录入每个员工的数据,依次是
编号,姓名,性别,工资,每个员工占一行

输出描述

第一行显示“人数:”,第二行显示“总工资:”,后面分别显示每个员工的信息,每个员工之间空一行

输入样例

2
1008 张三 男 2500
1009 李四 女 2600

输出样例

人数:2
总工资:5100元
个人基本信息:
编号:1008
姓名:张三
性别:男
工资:2500

个人基本信息:
编号:1009
姓名:李四
性别:女
工资:2600

程序代码

#include <iostream>
#include <cstring>

using namespace std;

class Employee
	protected:  // protected访问权限
		int m_num;         // 编号(num) 
		char m_name[18];  // 姓名(name) 其中姓名定义为长度为18的字符数组
		char m_sex[3];   // 性别(sex)   性别定义为长度为3的字符数组
		int m_wage;    // 工资(wage)      其它数据类型为整型
		static int m_count;   //  人数(count)  其它数据类型为整型 总工资和人数为静态数据成员
		static int m_totalWage;   // 总工资(totalWage)   其它数据类型为整型  总工资和人数为静态数据成员
		
	public: // 所有成员函数为public访问权限
	 	Employee(int num, char * name, char * sex, int wage);   // 构造函数
	 	~Employee();
	 	void ShowBase();  // 显示基本函数 
	 	static void ShowStatic();  // 显示静态数据函数(ShowStatic) 
; 

int Employee::m_count = 0;
int Employee::m_totalWage = 0;

Employee::Employee(int num, char * name, char * sex, int wage)   // 构造函数由已知参数编号(nu)姓名(nm)、性别(sx)和工资(wg)构造对象
	m_num = num;
	strcpy(m_name ,name);
	strcpy(m_sex, sex);
	m_wage = wage;
	m_count++;
	m_totalWage += wage;


Employee::~Employee()
	m_count--;
	m_totalWage -= m_wage; 
 

void Employee::ShowBase()   // 显示基本数据函数用于显示学生的编号、姓名、性别和工资,
	cout << "个人基本信息:\\n";
	cout << "编号:" << m_num << endl;
	cout << "姓名:" << m_name << endl;
	cout << "性别:" << m_sex << endl;
	cout << "工资:" << m_wage <<endl; 


void Employee::ShowStatic()  // 显示静态数据函数为静态成员函数,用于显示人数和总工资;
	cout << "人数:" << m_count << endl;
	cout << "总工资:" << m_totalWage << "元" << endl; 


int main()
	
	// 在主函数中定义若干个员工对象,分别显示员工基本信息,以及显示员工人数和总工资。
	int n, i, num, wage;
	char name[64], sex[3];
	
	cin >> n;
	Employee ** employee = new Employee* [n];
	
	for(i = 0; i < n; i++)
		cin >> num >> name >> sex >> wage;
		
		employee[i] = new Employee(num, name, sex, wage);
	
	
	Employee::ShowStatic();
	
	for (i = 0; i < n; i++)
		employee[i] -> ShowBase();
		
		delete employee[i];
		
		if(i != n - 1)
			cout << endl;
		
	
	
	delete[] employee;
	
	return 0;

以上是关于C++ 设计员工类(Employee)的主要内容,如果未能解决你的问题,请参考以下文章

为 Employee-Manager 设计数据结构

元数据设计

实现一个名为Person的类和它的子类Employee, Manager是Employee的子类,设计一个接口Add用于涨工资,普通

多对多表的设计小案例

将对象的类类型保存到文件并在 C++ 中读回

java Web网站员工信息修改功能