本压缩文件包含面向对象编程课程第四次上机实验的所有相关作业内容与要求,旨在通过实践加深学生对面向对象设计原则和技术的理解。
为某公司设计雇员工资发放系统。每个雇员的基本信息包括:姓名(name),工号(id)。雇员的收入取决于其类型。该公司共有四类雇员:
1. 周薪雇员(SalariedEmployee): 收入等于固定周薪。
2. 时薪雇员(HourlyEmployee): 如果工作时间不超过40小时,收入为每小时薪水乘以实际工时;如果超过40小时,则额外的加班时间为正常工资的150%计算。公式如下:
- 工作时间≤40小时, 收入=小时数*每小时薪水;
- 工作时间> 40小时,收入=(40 * 每小时薪水)+ (工作时间-40) * 每小时薪水 * 150%。
3. 佣金雇员(CommissionEmployee): 收入为销售量乘以每单位商品的销售佣金。
4. 带底薪佣金雇员(BasePlusCommissionEmployee):收入等于固定底薪加上销售量乘以每件商品的销售佣金。
要求如下:
- 创建一个继承层次结构,每个类包含计算工资和显示输出的功能。这些功能可以用于公司员工(Employee)每周收入的计算与展示。
- 输出时应包括雇员类型、姓名、工号及工资的各项明细信息。
在上述基本信息的基础上加入雇员生日(birthDate),并设计一个日期类(Date)来表示这一属性。
主函数中,创建容器管理所有类型的公司员工对象,并通过多态特性计算和输出每个雇员的收入。如果某雇员的出生月份与当前月份相同,则额外发放100元奖励。
此外,在本次工资结算阶段,决定提高带底薪佣金员工的基本薪资10%作为特别激励措施。
设计提示:使用抽象类来实现上述功能,并确保子类能够正确地重写父类的方法。