饮料的价格

news/2025/3/19 17:17:50/

一个茶吧提供三类饮料:茶、咖啡和牛奶。其中本地茶要另加50%的服务费,其它茶要加20%的服务费;现磨咖啡要加100%的服务费,其它咖啡加20%的服务费;牛奶不加服务费,服务费精确到小数点一位。

给出下面的基类框架:

Class Drink
{
protected:

int NO; //编号

int amount; //数量

float price; //单价

public:

virtual void display()=0;//输出费用

}

以Drink为基类,构建出Tea, Coffee和Milk三个类。

生成上述类,并编写主函数,要求主函数中有一个基类Drink指针数组,数组元素不超过10个。

Drink *pd[10];

主函数根据输入的信息,相应建立Tea, Coffee或Milk类对象,并给出收费。

输入格式:每个测试用例占一行,每行给出饮料的基本信息,第一个为饮料的类型,茶为1,咖啡为2,牛奶为3。接下来是申请的编号(100-999),然后是数量和单价。对于茶叶来说,接下来输入一个地区代码,其中1代表本地。对于咖啡来说,接下来要输入一个加工代码,其中1代表现磨。最后一行为0。
要求输出编号和收费(小数点后保留1位小数)。

提示:应用虚函数实现多态

输入样例:

1 106 3 33 1

1 103 2 20 2

3 109 1 15

2 107 2 15.8 1

2 232 3 21 29

0

输出样例:

106 148.5

103 48.0

109 15.0

107 63.2

232 75.6

#include<iostream>
#include <iomanip>
using namespace std;
class Drink
{
protected:int NO; //编号int amount; //数量float price; //单价public:
Drink(int NO,int amount,float price){this->NO=NO;this->amount=amount;this->price=price;
}
virtual void display()=0;//输出费用};
class Tea:public Drink{protected:int arr;//地区码 public:Tea(int NO,int amount,float price,int arr):Drink(NO,amount,price){this->arr=arr;}void display(){float add;//总价 if(arr==1){add= amount*price*1.5;//printf("%d %.1f")cout<< NO<<" " <<fixed<<setprecision(1)<<add<<endl; }else{add=amount*price*1.2;cout<< NO<<" " <<fixed<<setprecision(1)<<add<<endl;}}
};
class  Coffee:public Drink{protected:int xm;//现磨public:Coffee(int NO,int amount,float price,int xm):Drink(NO,amount,price){this->xm=xm;}	void display(){float add;//总价 if(xm==1){add= amount*price*2;cout<< NO<<" " <<fixed<<setprecision(1)<<add<<endl; }else{add=amount*price*1.2;cout<< NO<<" " <<fixed<<setprecision(1)<<add<<endl;}}
};
class  Milk:public Drink{public:Milk(int NO,int amount,float price):Drink(NO,amount,price){}	void display(){float add;add= amount*price;cout<< NO<<" " <<fixed<<setprecision(1)<<add<<endl;	}
};
int main()
{
Drink *pd[10];
int NO; //编号int amount; //数量
int arr,xm;
float price; //单价
int i,ty;
int count=0;cin>>ty;while (ty != 0) {//if(ty==0) break;//endl;switch(ty){case 1:cin>>NO>>amount>>price>>arr;pd[count]=new Tea(NO,amount,price,arr); pd[count]->display();count++;break;case 2:cin>>NO>>amount>>price>>xm;pd[count]=new Coffee(NO,amount,price,xm); pd[count]->display();count++;break;case 3:cin>>NO>>amount>>price;pd[count]=new Milk(NO,amount,price);pd[count]->display();count++;break;}cin>>ty;            }return 0;
}


http://www.ppmy.cn/news/123477.html

相关文章

市场调研-全球与中国无绳电水壶市场现状及未来发展趋势

根据QYR&#xff08;恒州博智&#xff09;的统计及预测&#xff0c;2021年全球无绳电水壶市场销售额达到了 亿美元&#xff0c;预计2028年将达到 亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为 %&#xff08;2022-2028&#xff09;。地区层面来看&#xff0c;…

电水壶、电茶炉、养生壶需要做FCC认证

什么是电热水壶&#xff1f; 电热水壶&#xff0c;也称电水壶、电茶壶&#xff0c;是用于煮沸水的小型家用电器&#xff0c;通过电热能加热水&#xff0c;很多具有保温功能。分体式电源底座&#xff0c;水沸自动断开&#xff0c;有水位指示标准和电源指示灯、干燥保护等安全装…

轻松打造免开发智能电水壶

传统的电水壶仅能满足烧水功能&#xff0c;在中国&#xff0c;烧水比煮饭更加普遍和重要&#xff0c;且人又有着多样的热饮冲泡需求&#xff0c;需要频繁的获得温度适宜、健康安全的热水。电水壶的智能化&#xff0c;体现在预约烧水、完成烧水的消息提醒、保温及调节不同温度等…

电水壶不通电解决办法

家用的电水壶&#xff0c;按开关&#xff0c;没有反应&#xff0c;不要扔了。因为只是一个小开关坏了&#xff0c;在TB上搜索水壶开关&#xff0c;买几个回来&#xff0c;拆开电水壶换上就行。工具只需要一把十字起子&#xff0c;很简单。

springboot中将logback切换为log4j2

前言 springboot默认使用logback作为日志记录框架&#xff0c;常见的日志记录框架有log4j、logback、log4j2。这篇文章我们来学习怎样将logbak替换为log4j2。 一、为什么使用log4j2&#xff1f; 我们在项目中经常使用一个叫SLF4J的依赖&#xff0c;它是做什么的呢&#xff1f; …

5月31号软件资讯更新合集......

Guava 32.0 发布&#xff0c;Google 的核心 Java 工具库 Guava 是 Google 的一套核心 Java 库&#xff0c;包括新的集合类型&#xff08;如 multimap 和 multiset&#xff09;、图库&#xff0c;以及用于并发、I/O、散列、缓存、基元、字符串等实用工具。它被广泛用于 Google …

基于AT89C51单片机的电子琴设计与仿真

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87848430?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 设计一个简易的电子琴&#xff0c;至少具有可以弹奏并发出不同的音调。电子琴方案主要分为实验…

C++学习之旅-入门永远的HelloWorld变量的基础

文章目录 创建文件(Hello World)注释变量的使用常量标识符命名规则数据类型整形sizeof关键字实型(浮点类型)字符型转义字符字符串类型布尔类型数据的输入加减乘除运算算数运算逻辑运算 程序流程结构选择结构循环结构 跳转语句举例(while循环break)举例(for循环contine) 跳转语句…