OJ 2309 Problem C Lemon

探讨柑橘类水果如砂糖柑、葡萄柚和柠檬的杂交过程,使用C++编程实现柑橘家族的遗传关系,展示了一个基于派生树的多层次遗传模型。

Description

Jackie开了一家水果店,店里柑橘类(Citrus)水果销售情况特别好,刚刚进货了一些砂糖柑(Tangerine)、葡萄柚(Grapefruit)和柠檬(Lemon)。
他有兴趣研究了柑橘类水果的杂交过程(如下图所示):首先,橘子(Mandarin)、柚子(Pomelo)和香橼(Cirton)都是柑橘类(Citrus)的水果,这是第一层;其次,第二层的水果是橙子(Orange)和青柠(Lime),橙子是橘子和柚子杂交出来的,柚子和香橼杂交出了青柠;最后是第三层,橘柑(砂糖柑)是橘子和橙子杂交的产物,葡萄柚是橙子和柚子杂交的结果,橙子和青柠杂交产生了柠檬。
请你编写程序用派生树来描述柑橘类水果的杂交关系,用继承关系来表示柑橘类水果的杂交过程。
用C++编写Citrus类及其派生树上的各个类来来完成代码,调用格式见“Append Code”。
Citrus类及其派生树上的这些类的属性是名称(name)和重量(weight)、有show()函数用来显示一些信息。各类的构造根据给出的调用代码完成。

在这里插入图片描述

Input

输入为多行,每行是一种水果的名称和重量。

Output

按格式输出水果的信息,详细见输出样例。

Sample Input

Tangerine 150
Grapefruit 200
Lemon 1000

Sample Output

Tangerine 150kg, is citrus fruit.
Tangerine 150kg, is mandarin.
Tangerine 150kg, is orange.
Tangerine 150kg, is tangerine.
Grapefruit 200kg, is citrus fruit.
Grapefruit 200kg, is pomelo.
Grapefruit 200kg, is grapefruit.
Lemon 1000kg, is mandarin.
Lemon 1000kg, is pomelo.
Lemon 1000kg, is citron.
Lemon 1000kg, is orange.
Lemon 1000kg, is lime.
Lemon 1000kg, is lemon.

HINT

Append Code

int main()
{
   
   
    Citrus     *c;
    Mandarin   *ma;
    Pomelo     *po;
    Citron     *ci;
    Orange     *og;
    Lime       *li;
    Tangerine  *ta;
    Grapefruit *gr;
    Lemon      *le;

    string name;
    double weight;
    while(cin >> name >> weight)
    {
   
   
        if(name == "Tangerine")
        {
   
   
            Tangerine tangerine(name, weight);
            c = ma = og = ta = &tangerine;
            c->show();
            ma->show();
            og->show();
            ta->show();
        }
        if(name == "Grapefruit")
        {
   
   
            Grapefruit grapefruit(name, weight);
            c = po = gr = &grapefruit;
            c->show();
            po->show();
            gr->
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值