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)相关推荐
- Java 设计员工类Employee,假设现有教师、科学家2种员工类型,根据要求求出各人的全年收入。
Java 设计员工类Employee 每一个员工都有姓名(name)和每月的基本工资(salary)属性,有可以计算出全年收入的方法,假设现有教(Teacher),科学家(Scientist)2种员工 ...
- 公司财务发工资时,记录了当时发工资的资料Employee.txt 1.定义公司员工类Employee,属性有:工号,姓名,性别,工资(double类型),进行属性的隐藏和封装,重写toString.
题目情景描述: 公司财务发工资时,记录了当时发工资的资料Employee.txt 1.定义公司员工类Employee,属性有:工号,姓名,性别,工资(double类型),进行属性的隐藏和封装,重写to ...
- 【创建包:employee,完成如下功能】1. 创建一个员工类(Employee),其中包括:1) 4个私有属性:员工姓名(name)、员工年龄(age)、员工职位(position)、工资
[创建包:employee,完成如下功能] 1. 创建一个员工类(Employee),其中包括: 1) 4个私有属性:员工姓名(name).员工年龄(age).员工职位(position).工资(sa ...
- Java面向对象之继承,方法重写,super关键字,员工类系列继承题
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...
- 【Java7】练习:选角色,挑苹果,员工类,换心脏,斗地主,发工资,客户信息管理软件,开发团队调度系统
文章目录 1.玩家选择角色:return new 2.人工挑苹果:只一个接口CompareAble 3.员工类接口:implements Comparator 4. 医生帮换心脏:Organ类doWo ...
- java 员工类算工资_用java设计一个员工类,可以计算工资个人所得税
用java设计一个员工类,可以计算工资个人所得税 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个员工类.该员工具有下列私有属性:编号,姓名,基本工资,奖金 提 ...
- 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号
运行结果如下: 题目: 使用面向对象思想,输出员工信息并计算员工的工资. 实现过程为:a.定义一个部门(Department)类,该类有部门编号(Id).部门名称(Name)属性:b.再定义一个员工( ...
- C#某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性;并有一个虚方法(CalSalary)用于计算并输出员工的总薪金。
.某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性:并有一个虚方法(CalSalary)用于计算并输出员工的总薪金. 对不同的员工, ...
- .使用面向对象思想,输出员工信息并计算员工的工资。实现过程为:定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; 再定义一个员工(Employee)类,该类的属
package cn.bdqn09;/部门类 public class Department {String id;//部门编号String name;//部门名称public void show() ...
最新文章
- 【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )
- 认识Python(day01)
- java web 项目启动_Java web项目启动Tomcat报错解决方案
- Python 异步操作文件 aiofiles
- ViceDinoSpecCtrl.cpp
- 操作系统之进程管理:8、进程互斥的软件实现方法(单标志、双标志、Peterson)
- 基于AWS的云备份容灾解决方案
- MTK平台修改分区大小之后,通过fastboot工具烧录的说明
- 编曲时如何在FL Studio卷帘窗口修改单个音符音量
- Atitit 个人 企业 政府 等组织 财政收入分类与提升途径attilax总结 1.1. 国家财政收入分类	1 1.2. 企业收入分类	1 1.3. 个人收入分类	1 1.1.国家财政收入分类
- Java线程的6种状态、NEW、RUNNABLE、BLOCK、TIMED_WAITING、TERMINATED
- html5网页制作心得体会,学习网页制作心得体会范文3篇
- windows的映射驱动器
- mathorcup历年优秀论文阿里云盘
- 大学计算机课程实验指导书,《大学计算机基础》课程实验指导书.doc
- PPT怎么用100张照片做照片墙?
- 扩屏双显示器一个清晰,另一个模糊的解决办法
- 阿尔法蛋机器人tf卡_科大讯飞阿尔法蛋tys1智能机器人常见问题解答
- ceph rgw lc工作流程
- Omni协议PHP开发包
热门文章
- sublime text常用快捷键
- Microsoft Dynamics CRM 2015 数据管理 之 如何批量导入数据到 正式区(二)系统自带示例数据 安装及教学...
- Android编码实现软件界面
- 五分钟叫你看懂美国金融危机的成因和巨大危害[转]
- jsp中简易版本的图片上传程序
- 给电脑换源 npm 国内镜像 cnpm
- Android自定义控制(五)仿新浪微博的下拉刷新
- netty:NIO模型--选择器(Selector)
- java:UDP通信
- 云数据库管理与数据迁移