Advertisement

面向对象编程的实际操作实验课作业四。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
针对一家企业,需要开发一套完善的员工工资结算系统。该系统需包含员工的基本信息,包括姓名(name)和工号(id)。员工的薪资计算将根据其所属的雇佣类型而有所不同。该公司共设有四种类型的雇员:周薪雇员(SalariedEmployee),其收入基于固定的周薪;时薪雇员(HourlyEmployee),若工作时间不超过40小时,则收入为小时数乘以每小时的薪资;若工作时间超过40小时,则收入为40小时的薪资加上(工作时长减去40小时)乘以每小时薪资的150%;佣金雇员(CommissionEmployee),其收入等于销售额乘以每个商品的销售佣金,并加上底薪;以及带底薪佣金雇员(BasePlusCommissionEmployee),其收入由底薪加上销售额乘以每个商品的销售佣金组成。 系统设计要求建立一个员工继承层次结构,每个层次类都应具备计算工资和展示输出的功能。该系统能够计算并显示公司各类雇员的每周收入,并在输出时详细呈现雇员类型、姓名、工号以及各项工资明细。此外,主函数需要提供测试代码以验证各类雇员工资计算功能的正确性。 为了增强系统的可扩展性,在员工的基本信息中增加雇员的生日(birthDate),并采用日期类(Date)来精确地表示生日信息。在主函数中,应设计一个容器用于存储和管理公司内各种类型的雇员对象,并通过多态的方式对每个雇员进行工资计算和输出。同时,如果某员工的生日恰好在本月,则该员工将获得100元的奖励。 此外,本次工资发放阶段公司决定对带薪佣金雇员实施奖励措施,将他们的基本工资提高10%。建议采用抽象类进行设计以实现代码的可重用性和灵活性。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 上机4.zip
    优质
    本压缩文件包含面向对象编程课程第四次上机实验的所有相关作业内容与要求,旨在通过实践加深学生对面向对象设计原则和技术的理解。 为某公司设计雇员工资发放系统。每个雇员的基本信息包括:姓名(name),工号(id)。雇员的收入取决于其类型。该公司共有四类雇员: 1. 周薪雇员(SalariedEmployee): 收入等于固定周薪。 2. 时薪雇员(HourlyEmployee): 如果工作时间不超过40小时,收入为每小时薪水乘以实际工时;如果超过40小时,则额外的加班时间为正常工资的150%计算。公式如下: - 工作时间≤40小时, 收入=小时数*每小时薪水; - 工作时间> 40小时,收入=(40 * 每小时薪水)+ (工作时间-40) * 每小时薪水 * 150%。 3. 佣金雇员(CommissionEmployee): 收入为销售量乘以每单位商品的销售佣金。 4. 带底薪佣金雇员(BasePlusCommissionEmployee):收入等于固定底薪加上销售量乘以每件商品的销售佣金。 要求如下: - 创建一个继承层次结构,每个类包含计算工资和显示输出的功能。这些功能可以用于公司员工(Employee)每周收入的计算与展示。 - 输出时应包括雇员类型、姓名、工号及工资的各项明细信息。 在上述基本信息的基础上加入雇员生日(birthDate),并设计一个日期类(Date)来表示这一属性。 主函数中,创建容器管理所有类型的公司员工对象,并通过多态特性计算和输出每个雇员的收入。如果某雇员的出生月份与当前月份相同,则额外发放100元奖励。 此外,在本次工资结算阶段,决定提高带底薪佣金员工的基本薪资10%作为特别激励措施。 设计提示:使用抽象类来实现上述功能,并确保子类能够正确地重写父类的方法。
  • Java解答
    优质
    本简介提供一系列针对Java面向对象编程课程作业的详细解答和解析,旨在帮助学生更好地理解和掌握相关概念与实践技巧。 《Java面向对象程序设计课后习题答案》(第2版),耿祥义、张月平编著。
  • Python一:.doc
    优质
    本文档为Python实验一,专注于面向对象编程实践,包括类和对象的概念、属性、方法及继承等关键知识点的应用练习。 Python实验一 面向对象程序设计实验
  • 设计与分析
    优质
    本课程作业是《面向对象设计与分析》课的一部分,旨在通过实践项目加深学生对OOA/D原则、模式和工具的理解与应用。 使用Star UML制作的疫情防控需求文档包含用例图、需求分析等内容,并且有一个Word文档可供参考。欢迎需要复制资料的朋友查阅。
  • C++ QT设计
    优质
    本课程设计是一次基于C++和QT框架的大型实践项目,旨在通过面向对象的方法解决实际问题,提升学生的编程能力和团队协作技巧。 使用C++ Qt实现的五子棋界面设计课程作业包含掷骰子动画、下棋以及超时窗口抖动等功能,并附有源代码和可执行程序。整个项目界面美观,且配有详尽的大作业报告,在提交后获得了优秀评价。
  • C++:八道题目
    优质
    这份作业包含八个面向对象编程练习题,旨在帮助学生掌握C++中的类、继承、多态等核心概念。通过实践加深理解与应用能力。 面向对象程序设计(C++)编程作业包括以下任务:1. 构造求解圆柱体体积与侧面积的类 Cylinder;2. 编写一个能够解决一元二次方程问题的程序,误差设为0.1e-8;3. 编写一段代码,输入不超过200字符的一个字符串,并对其进行处理;4. 对一组双精度实数进行选择法排序。
  • Java(04).doc
    优质
    本文档为《Java面向对象编程》课程的第四次实验报告指导文件,内容涵盖类的设计、继承与多态等核心概念的应用实践。 设计一个名为Person的类,并包含计算工资支出的方法pay()。从这个类派生出四个子类:助教(Assistant)、讲师(Instructor)、副教授(AssistantProfessor)以及教授(Professor)。每个角色有不同的基本工资与每课时的课金,例如: - 助教的基本工资为800元,每小时授课费25元; - 讲师的基本工资1000元,每小时授课费35元; - 副教授的基本工资1200元,每小时授课费40元; - 教授的基本工资是1400元,每课时的课金为50元。 在主方法中显示各角色成员的工资支出。有两种实现方式: ○ 一种将Person类设计成抽象类,并定义pay()作为抽象方法来展示多态性。 ○ 另一种则把Person设为接口,同样通过定义avg()这样的计算平均分的方法来体现多态性的应用。 此外,还需编写一个Java程序,在其中定义一个名为Achievement的接口和一个人名实体类Person。子类Student继承自Person并实现Achievement接口,增加三门课程的成绩数据成员及设置成绩方法,并重写toString方法以显示学生信息与平均分计算功能。 主函数中创建对象实例进行测试。 再编写第三个Java程序定义一个School类,在其中嵌套定义内部类Student。通过外部和内部类的对象调用各自的方法来展示它们的功能,同时在主函数中验证这些设计的实际应用效果。 本实验涵盖了面向对象编程中的多个核心概念:包括多态性、抽象类与接口的使用以及内部类的应用等知识要点。 详细讲解了Java面向对象编程的关键特性: 1. **多态性**:通过`Person`及其派生子类的设计,展示了不同类型的对象可以对同一方法(如pay())作出不同的响应。这表明在处理不同类型的对象时能够提供更通用和可扩展的代码。 2. **抽象类与接口**: - 抽象方法允许定义规范而不实现细节; - 接口则用于规定一组行为,任何实现了该接口的类都必须遵守这些规则。 3. **内部类**:展示了如何使用内部类来访问外部类的数据成员,并通过创建对象实例展示其信息。 实验中还涉及到了Java中的`protected`关键字的应用场景。在继承关系下它允许子类访问父类的受保护成员,同时保持封装性的一致性。 总结来说,本练习旨在提升对面向对象编程概念的理解及应用能力,如抽象类、接口和内部类的设计与使用,并通过实践加深了这些重要编程原则的实际意义。
  • Java1.doc
    优质
    本文档为《Java面向对象编程实验1》,包含基于Java语言的基础面向对象编程实践内容和任务指导。适合初学者进行理论联系实际操作练习。 学生类的创建与使用包括以下步骤: 1. 创建一个名为`Student`的学生类,该类包含私有的学号、姓名、性别和年龄域,并添加了一个统计学生人数的静态域`count`。 2. 在构造方法中初始化上述各属性值的同时增加对计数器变量`count`的操作来记录当前创建了多少个对象。 3. 提供公共访问方法(getters)用于获取各个私有成员的数据,以及设置这些数据的方法(setters)。此外还提供了一个静态的getter方法以返回学生总数。 4. 实现一个名为toString的方法,该方法将类的所有字段信息组合成易于理解的形式化字符串输出如:“141308008, 小明, 男, 20岁”。 5. 创建`Student`的一个子类——`CollegeStudent`(大学生),除了继承父类所有特性外还增加了专业这一属性,并且拥有独立的静态计数器用于记录此类对象的数量。同样地,提供相应的getter和setter方法来操作新添加的专业字段并重写toString以便包含专业的信息。 6. 设计一个主程序类,在其中创建`Student`实例与`CollegeStudent`实例进行一系列测试:包括展示当前学生总数、输出具体学生的详细信息(通过调用他们的toString)、修改某些属性值后再次显示更新后的状态以及比较两个对象的年龄并打印出年纪较大的那个的所有字段。 面向对象编程是Java语言的重要组成部分,它使程序员能够以一种更接近现实世界的方式来组织代码。本实验主要涵盖了以下关键概念: - **类**:定义了创建特定类型对象所需的属性和行为。 - **构造方法**:用于在实例化时设置初始值。 - **访问器(getter)与修改器(setter)**:允许外部安全地访问或改变私有变量的值,这是封装的一部分。 - **toString() 方法**:提供了一种标准的方式来表示对象的状态为字符串形式。 - **继承**:`CollegeStudent`类从`Student`类派生出来,扩展了功能并添加新的特性(如专业)同时保留原有的属性和方法。 - **主程序入口点(main method)**:是Java应用程序的起点,用于执行测试代码来验证其他部分的功能正确性。 此外还涉及到了以下概念: - 静态域:为所有类实例共享的数据提供一个公共存储空间; - 封装:通过限制对内部数据直接访问的方式保护信息的安全性和完整性。 - 多态(未在实验中明确展示)允许子类对象被当作父类类型处理,从而增强代码灵活性。 这个练习有助于理解Java面向对象编程的核心概念和实践技能。