题目描述

定义一个描述员工(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)相关推荐

  1. Java 设计员工类Employee,假设现有教师、科学家2种员工类型,根据要求求出各人的全年收入。

    Java 设计员工类Employee 每一个员工都有姓名(name)和每月的基本工资(salary)属性,有可以计算出全年收入的方法,假设现有教(Teacher),科学家(Scientist)2种员工 ...

  2. 公司财务发工资时,记录了当时发工资的资料Employee.txt 1.定义公司员工类Employee,属性有:工号,姓名,性别,工资(double类型),进行属性的隐藏和封装,重写toString.

    题目情景描述: 公司财务发工资时,记录了当时发工资的资料Employee.txt 1.定义公司员工类Employee,属性有:工号,姓名,性别,工资(double类型),进行属性的隐藏和封装,重写to ...

  3. 【创建包:employee,完成如下功能】1. 创建一个员工类(Employee),其中包括:1) 4个私有属性:员工姓名(name)、员工年龄(age)、员工职位(position)、工资

    [创建包:employee,完成如下功能] 1. 创建一个员工类(Employee),其中包括: 1) 4个私有属性:员工姓名(name).员工年龄(age).员工职位(position).工资(sa ...

  4. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

  5. 【Java7】练习:选角色,挑苹果,员工类,换心脏,斗地主,发工资,客户信息管理软件,开发团队调度系统

    文章目录 1.玩家选择角色:return new 2.人工挑苹果:只一个接口CompareAble 3.员工类接口:implements Comparator 4. 医生帮换心脏:Organ类doWo ...

  6. java 员工类算工资_用java设计一个员工类,可以计算工资个人所得税

    用java设计一个员工类,可以计算工资个人所得税 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个员工类.该员工具有下列私有属性:编号,姓名,基本工资,奖金  提 ...

  7. 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号

    运行结果如下: 题目: 使用面向对象思想,输出员工信息并计算员工的工资. 实现过程为:a.定义一个部门(Department)类,该类有部门编号(Id).部门名称(Name)属性:b.再定义一个员工( ...

  8. C#某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性;并有一个虚方法(CalSalary)用于计算并输出员工的总薪金。

    .某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性:并有一个虚方法(CalSalary)用于计算并输出员工的总薪金. 对不同的员工, ...

  9. .使用面向对象思想,输出员工信息并计算员工的工资。实现过程为:定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; 再定义一个员工(Employee)类,该类的属

    package cn.bdqn09;/部门类 public class Department {String id;//部门编号String name;//部门名称public void show() ...

最新文章

  1. 【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )
  2. 认识Python(day01)
  3. java web 项目启动_Java web项目启动Tomcat报错解决方案
  4. Python 异步操作文件 aiofiles
  5. ViceDinoSpecCtrl.cpp
  6. 操作系统之进程管理:8、进程互斥的软件实现方法(单标志、双标志、Peterson)
  7. 基于AWS的云备份容灾解决方案
  8. MTK平台修改分区大小之后,通过fastboot工具烧录的说明
  9. 编曲时如何在FL Studio卷帘窗口修改单个音符音量
  10. Atitit 个人 企业 政府 等组织 财政收入分类与提升途径attilax总结 1.1. 国家财政收入分类 1 1.2. 企业收入分类 1 1.3. 个人收入分类 1 1.1.国家财政收入分类
  11. Java线程的6种状态、NEW、RUNNABLE、BLOCK、TIMED_WAITING、TERMINATED
  12. html5网页制作心得体会,学习网页制作心得体会范文3篇
  13. windows的映射驱动器
  14. mathorcup历年优秀论文阿里云盘
  15. 大学计算机课程实验指导书,《大学计算机基础》课程实验指导书.doc
  16. PPT怎么用100张照片做照片墙?
  17. 扩屏双显示器一个清晰,另一个模糊的解决办法
  18. 阿尔法蛋机器人tf卡_科大讯飞阿尔法蛋tys1智能机器人常见问题解答
  19. ceph rgw lc工作流程
  20. Omni协议PHP开发包

热门文章

  1. sublime text常用快捷键
  2. Microsoft Dynamics CRM 2015 数据管理 之 如何批量导入数据到 正式区(二)系统自带示例数据 安装及教学...
  3. Android编码实现软件界面
  4. 五分钟叫你看懂美国金融危机的成因和巨大危害[转]
  5. jsp中简易版本的图片上传程序
  6. 给电脑换源 npm 国内镜像 cnpm
  7. Android自定义控制(五)仿新浪微博的下拉刷新
  8. netty:NIO模型--选择器(Selector)
  9. java:UDP通信
  10. 云数据库管理与数据迁移