K. Employee 类的设计与实现(3.14)

传统 1000 ms 256 MiB
标准 IO
文本比较

题目描述

创建一个名为 Employee(雇员)的类,包含以下三个数据成员:

  • 名(firstName,类型:string
  • 姓(lastName,类型:string
  • 月薪(monthlySalary,类型:int

该类需要提供以下功能:

  1. 一个构造函数,用于初始化这三个数据成员。如果月薪为负数,则设置为0。
  2. 对每个数据成员提供 setget 函数。
  3. 编写一个测试程序,创建两个 Employee 对象,显示每个对象的年薪。然后,为每个雇员增薪10%,再次显示他们的年薪。

输入格式

输入包含两行,每行表示一个雇员的信息,格式为:

<firstName> <lastName> <monthlySalary>

  • firstNamelastName 是字符串,长度不超过50。
  • monthlySalary 是一个整数,表示月薪,可能为负数。

输出格式

程序应按照以下格式输出:

  1. 输出每个雇员的初始年薪,格式为:

Employee <index>: <firstName> <lastName> <yearlySalary>

其中 <index> 是雇员的编号(从1开始),<yearlySalary> 是年薪。

  1. 输出提示信息:

Increasing employee salaries by 10%

  1. 再次输出每个雇员的年薪,格式与第一次相同。

样例

样例输入

Bob Jones 34500
Susan Baker 37800

样例输出

Employee 1: Bob Jones; Yearly Salary: 414000
Employee 2: Susan Baker; Yearly Salary: 453600
Increasing employee salaries by 10%
Employee 1: Bob Jones; Yearly Salary: 455400
Employee 2: Susan Baker; Yearly Salary: 498960

数据范围与提示

数据范围

  • 名和姓的长度不超过50。
  • 月薪为整数,可能为负数,保证月薪可以被 10 整除。

提示

  1. Employee 类中声明三个数据成员。

  2. 构造函数需要包括三个形参,函数头如下:

    Employee(string firstName, string lastName, int salary);
    

    分别用三个参数初始化三个数据成员,注意月薪需要校验。

  3. 为每个数据成员分别声明 setget 函数。

  4. 主函数中创建 Employee 对象时,必须向构造函数传递与声明的参数相匹配的实参。例如:

    Employee employee1("Bob", "Jones", 34500);
    
  5. 给每个雇员加薪需要调用 get 函数来获取当前工资,调用 set 函数来指定新的工资。