Description

秋天到了,果园里的水果成熟了,商贩们来收水果了,农夫们都希望自己的水果能卖个好价钱。
现在果园里有三种水果正在销售,苹果(Apple)、香蕉(Banana)、梨(Pear)。每次销售都会记录下水果的种类、单价和总量,input()函数可以读取每条销售记录的单价和总量,total()函数可以计算出这次销售的总价。
但是,销售员在记录时忙中出错,各中水果的单价和总量的单位没有统一。单价是每公斤的价格,而水果是按箱记录的。其中,苹果一箱按30公斤计算,香蕉一箱按25公斤计算,梨一箱按20公斤计算。每种水果每次销售的总价是“单价总量每箱公斤数”。
现在,你来设计一个程序帮忙计算果园卖出水果的总价。由于total()函数对每种水果的计算方式都不一样,因此使用多态来实现。


你设计并实现这个水果类的派生体系,使得main()函数能够运行并得到正确的输出。调用格式见append.cc

Input

输入的第一个整数n,表示后面有n条水果收购的记录。每条记录分为3部分,水果种类、单价和总量。

Output

输出为一行,表示整个果园卖出水果的总价。

Sample Input

5
Apple 4.2 100
Banana 8.8 50
Apple 4.5 200
Banana 7.8 100
Pear 3.7 100

Sample Output

Total Price : 77500

HINT

Append Code

append.c, append.cc,

标程

#include <bits/stdc++.h>
using namespace std;class Fruit {public:virtual void input() = 0;virtual double total() = 0;
};class Apple: virtual public Fruit {protected:double price, num, kilo;public:Apple():price(0), num(0), kilo(30) {}void input() {cin >> price >> num;}double total() {return price*num*kilo;}
};class Banana: virtual public Fruit {protected:double price, num, kilo;public:Banana():price(0), num(0), kilo(25) {}void input() {cin >> price >> num;}double total() {return price*num*kilo;}
};class Pear: virtual public Fruit {protected:double price, num, kilo;public:Pear():price(0), num(0), kilo(20) {}void input() {cin >> price >> num;}double total() {return price*num*kilo;}
};
int main()
{Fruit* fruit;string fruit_name;double sum = 0.0;int cases;cin >> cases;for(int i = 1; i <= cases; i++){cin >> fruit_name;if(fruit_name == "Apple")fruit = new Apple();if(fruit_name == "Banana")fruit = new Banana();if(fruit_name == "Pear")fruit = new Pear();fruit->input();sum += fruit->total();delete fruit;}cout << "Total Price : " << sum << endl;return 0;
}

SDUSTOJ1670 Problem C: 农夫果园相关推荐

  1. Problem A: 农夫果园

    Problem A: 农夫果园 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 2089  Solved: 1702 [Submit][Status][ ...

  2. Problem E: 农夫果园

    Home Web Board ProblemSet Standing Status Statistics Problem E: 农夫果园 Time Limit: 1 Sec  Memory Limit ...

  3. 实验9:Problem C: 农夫果园

    Home Web Board ProblemSet Standing Status Statistics Problem C: 农夫果园 Problem C: 农夫果园 Time Limit: 1 S ...

  4. Problem C: 农夫果园

    Description 一果农,家里有苹果树.梨树,2016年收成不错,现在需要你来编程,求一下去年总共收获了多少斤的水果. Input 第一行N表示之后有N行输入. 之后的N行输入,每行一个水果.包 ...

  5. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  6. A + B Problem

    1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...

  7. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  8. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

  9. ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem

    Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...

最新文章

  1. 我真不想学 happens - before 了!
  2. R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等
  3. 百练OJ:2746:约瑟夫问题
  4. 让Python pip下载速度加速
  5. 【电脑使用经验】怎么查看无线网络中电脑的IP地址?
  6. 对网络数据包进行嗅探
  7. springboot idea debug 模式下启动特别忙,且无法访问
  8. maven学习- 私服nexus搭建
  9. 一道PHP面试题,求两个文件的相对路径
  10. 译DevExpress v16.1更新说明(WinForms篇)
  11. 设计模式演练——工厂方法模式
  12. Atitit 方法运行器methodRunnerV3 方法虚拟机 vm 新特性 java -cp C:\0wkspc\methodRunner\bin -Djava.ext.dirs=
  13. 小程序中的大道理之二
  14. 前端实现给页面中的某一部分生成水印
  15. jquery UI 跟随学习笔记——拖拽(Draggable)
  16. aspnet172海派电影视频点播分享影评网站
  17. 模拟电路学习-之电容,电感重新认识
  18. keil配色(黑色背景)
  19. 将一个excel多个文件合并成一个文件的多个sheet
  20. 简单画布canvas的画法

热门文章

  1. Maven中的打胖包瘦包
  2. C/C++内存申请和释放(一)
  3. spring boot初始化完成时(两种方式)执行某种操作
  4. 简单明了的介绍了python面向对象编程
  5. java转换2进制_java里怎样把文件转换成二进制
  6. 小韩谈shell -- 十分好玩的小脚本
  7. 拿到天使投资是一种怎样的体验
  8. html 表头单元格换行,Table组件怎样在单元格长文本不换行情况下正确对应表头与单元格?...
  9. flask专题-小说网站开发二(抓取数据)
  10. 字体图标库-如何使用-icomoon