美文网首页
OOP之我出题、你来做——大观园的工钱

OOP之我出题、你来做——大观园的工钱

作者: 罗胜金 | 来源:发表于2017-05-23 10:26 被阅读122次

【编程练习】面向对象编程之行为型设计模式

大观园的工钱

作者:罗胜金【版权所有,转载请注明原作者】

大观园内,凤姐身体有恙,连日不见得好,只得把管家重任托付于探春。转眼就是月末,探春姑娘打开账本,准备给贾府上下的丫鬟、奴仆们算工钱,当她看到账本上旁注的工钱计算规则,不禁蹙眉。

你道为何?原来,大观园内,下人的工钱计算相当繁琐,大致有如下三个规则:

其一,下人计算工钱时,分别有一个例钱因子,一个打赏因子,每位下人各各不同。
例如:
晴雯的例钱因子,是逢1、3、5...单月为900钱,逢2、4、6...双月为800钱;打赏因子固定为500钱。
麝月的例钱因子,是固定为600钱;打赏因子,则是上半年为400钱,下半年为700钱。
袭人的例钱因子,则是1、3季度为一吊钱(1000钱),2、4季度为一吊钱加500钱(1500钱);打赏因子,固定是两吊钱(2000钱)。
...

其二,同一个下人,在伺候不同的主子时,所得工钱不同,每个主子分别有自己的工钱算法。
例如:
宝玉出手阔绰,每月支出工钱时,是把下人的例钱因子加上打赏因子,再乘以8倍。
老太太(贾母)也算大方,每月支出工钱时,是在下人的例钱因子和打赏因子中,取大的那个数,再乘以10倍。
王夫人比较小气,每月支出工钱时,是在下人的例钱因子和打赏因子中,取小的那个数,再乘以5倍。
贾政老爷,每月是把下人的例钱因子乘以4倍,打赏因子乘以2倍,二者相加作为工钱。
...

其三,自从贾政发现怡红院中,宝玉整天和晴雯等丫头厮混在一起、不学无术,大为光火,于是在大观园内施行新规,丫鬟、奴仆们伺候哪个主子,不再固定,而是每月随机确定。
举例说明:假如10月份,晴雯姑娘被随机抽中去伺候贾政贾老爷,那么晴雯的当月工钱是这么计算的:
例钱因子,10月份是双月,因此是800钱;打赏因子是500钱。因此结合贾老爷的算法,晴雯工钱总数是800*4+500*2=4200钱。
...

探春沉思半晌,想到每个月都要这般细算一番,好生头痛,因此决定雇你写一个软件,帮她计算每月丫鬟、奴仆们的工钱。要求如下:
1、只需给出配对的下人和主子,便可自动统计出这个下人的当月工钱。
2、新增主子或新增下人时,不可改动原有算法,也不可改动原有数据结构。
3、方式一:使用面向对象方式实现。
4、方式二(可选):使用函数组合方式实现,并比较与面向对象方式的差异、优劣。
5、使用TDD方式开发,要求有足够的自动化测试用例。

参考类图:

大观园的工钱-类图

相关文章

  • OOP之我出题、你来做——大观园的工钱

    【编程练习】面向对象编程之行为型设计模式 大观园的工钱 作者:罗胜金【版权所有,转载请注明原作者】 大观园内,凤姐...

  • Chapter 65 我出题来你选择

    夏天“伺候”欧亦吃完晚饭,收拾东西准备离开的时候,外头竟然下起了大雨。 欧亦回房间拿了件外套穿上,拿起车钥匙,说:...

  • 超娃子和我做加法题

    超娃子和我做加法题 妈妈:“超娃子,我们来做加法题。” 超娃子:“那好吧,我先出题:15+...

  • 老师来出题

    前天参加完上海亲子营,回来之前儿子玩了很久的沙子,因为着急也因为周边没有水管可以洗手,就这样儿子带着满身的沙子上了...

  • 要账

    (小品)人物:(按出场顺序)憨哥、三姨太、老爷、讹女。 憨哥:三姨太呀,我来算工钱来了。 三姨太:嗯?我这工钱不早...

  • 关于孩子答卷

    每一次考试都是三个人的游戏。出题的人通过难度不同的题目来考查你是否掌握了这些知识。为了回应出题人,你得明确出题人的...

  • 2022年6月10 早

    我昨晚梦到,我爷爷跟我说,“从前都是我出题目,你写作文,现在你来出题目,我写。”我就出了一个题目,我爷爷在作文本上...

  • 小说:对口型

    金飞呀,交待你一个事,你要给我做好了,开你一百块钱工钱,要是做不好,以后你有什么事别来找我。这样子,后天有人来检查...

  • Hotspot Oop模型

    Java对象通过Oop来表示。Oop指的是 Ordinary Object Pointer(普通对象指针)。在 J...

  • 使用函数式语言实践DDD

    长期以来我都在实践OOP,进而通过OOP来实现DDD,通过面向对象的技巧来建立一个领域模型。OO的一些特性在建立领...

网友评论

      本文标题:OOP之我出题、你来做——大观园的工钱

      本文链接:https://www.haomeiwen.com/subject/tzywxxtx.html