刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

题目:阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

【20分】

【说明】下图是某小型互联网公司管理系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。


其中:

(1)类Staff表示普通员工。

(2)类 JuniorStaff 和SeniorStaff 表示初级员工和高级员工,这两个类都重新实现了类 Staff的方法 calReward()。

(3)方法calReward()根据每个员工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。

(4)方法getReward ()调用方法calReward ()获取工时工资并打印显示。

(5)类StaffSystem中的方法statReward()中首先调用了该类的方法load(),获取本系统员工列表,然后调用了类Staff中的方法calReward()。

现拟釆用面向对象的方法进行测试。

 

请根据类图描述,回答问题1。给出测试类Staff方法calReward()时的测试序列,以及图中各个类的测试顺序。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1) 测试序列:Staff ( )—setWorktime( ) —setHourSalary( )—calReward( ) —getReward( ) ;

(2) 先测试Staff类,然后JuniorStaff 和SeniorStaff(这两个谁在前都可以),最后测试StaffSystem类。

解析:

(1)根据题干说明,方法calReward()是根据员工每天的工时数(workTime)和时薪(hourSalary)来计算当天的工时工资的。因此,在测试calReward()方法时,需要先创建员工对象,并设置其工时数和时薪,然后调用calReward()方法进行计算。最后,通过getReward()方法获取并打印显示的奖励,以验证calReward()方法的正确性。

(2)在测试类的顺序上,首先应当测试基础类Staff,因为其他类都是基于Staff类的。JuniorStaff和SeniorStaff作为对Staff的扩展,需要重新实现calReward()方法,因此在测试它们时需要在测试Staff类的基础上进行。最后,测试StaffSystem类,因为这个类中的方法会与之前的类进行交互,需要确保之前的类已经正确测试过。关于JuniorStaff和SeniorStaff的测试顺序,可以根据实际情况(如代码复杂度、功能重要性等)进行安排。

创作类型:
原创

本文链接:请根据类图描述,回答问题1。给出测试类Staff方法calReward()时的测试序列,以及图中各个

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share