SDUSTOJ1670 Problem C: 农夫果园
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: 农夫果园相关推荐
- Problem A: 农夫果园
Problem A: 农夫果园 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 2089 Solved: 1702 [Submit][Status][ ...
- Problem E: 农夫果园
Home Web Board ProblemSet Standing Status Statistics Problem E: 农夫果园 Time Limit: 1 Sec Memory Limit ...
- 实验9:Problem C: 农夫果园
Home Web Board ProblemSet Standing Status Statistics Problem C: 农夫果园 Problem C: 农夫果园 Time Limit: 1 S ...
- Problem C: 农夫果园
Description 一果农,家里有苹果树.梨树,2016年收成不错,现在需要你来编程,求一下去年总共收获了多少斤的水果. Input 第一行N表示之后有N行输入. 之后的N行输入,每行一个水果.包 ...
- linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.
所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...
- A + B Problem
1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...
- 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 ...
- #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)
题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...
- ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem
Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...
最新文章
- 我真不想学 happens - before 了!
- R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等
- 百练OJ:2746:约瑟夫问题
- 让Python pip下载速度加速
- 【电脑使用经验】怎么查看无线网络中电脑的IP地址?
- 对网络数据包进行嗅探
- springboot idea debug 模式下启动特别忙,且无法访问
- maven学习- 私服nexus搭建
- 一道PHP面试题,求两个文件的相对路径
- 译DevExpress v16.1更新说明(WinForms篇)
- 设计模式演练——工厂方法模式
- Atitit 方法运行器methodRunnerV3 方法虚拟机 vm 新特性 java -cp C:\0wkspc\methodRunner\bin -Djava.ext.dirs=
- 小程序中的大道理之二
- 前端实现给页面中的某一部分生成水印
- jquery UI 跟随学习笔记——拖拽(Draggable)
- aspnet172海派电影视频点播分享影评网站
- 模拟电路学习-之电容,电感重新认识
- keil配色(黑色背景)
- 将一个excel多个文件合并成一个文件的多个sheet
- 简单画布canvas的画法
热门文章
- Maven中的打胖包瘦包
- C/C++内存申请和释放(一)
- spring boot初始化完成时(两种方式)执行某种操作
- 简单明了的介绍了python面向对象编程
- java转换2进制_java里怎样把文件转换成二进制
- 小韩谈shell -- 十分好玩的小脚本
- 拿到天使投资是一种怎样的体验
- html 表头单元格换行,Table组件怎样在单元格长文本不换行情况下正确对应表头与单元格?...
- flask专题-小说网站开发二(抓取数据)
- 字体图标库-如何使用-icomoon