【C++】6-11 停车场收费问题 分数 20

news/2024/9/23 4:24:09/

6-11 停车场收费问题

分数 20

全屏浏览

切换布局

作者 徐婉珍

单位 广东东软学院

在停车场收费系统中,收费者会根据车型的不同按不同的单价和计费方式收取不同的停车费,其中:

  • 轿车Car:每小时8元,超过30分钟按一小时计算,未超过30分钟不收费 
    
  • 客车Bus:每小时10元,30分钟以内按半小时计费,未达1小时但超过30分钟按1小时计算
    
  •     货车Truck:每小时15元,未达1小时的按1小时计算
    
  •     其他未知类型:按默认方法计算,见裁判程序。
    

请补充必要的类和函数定义,使停车场类Parker可收取停入的n辆车的费用。

裁判测试程序样例:

#include <iostream>
#include <string>
using namespace std;
const float Car_Price= 8;
const float Bus_Price= 10;
const float Truck_Price=15;
class Vehicle{protected:float price;int minute;public:virtual float computeFee(){return 20.0f*minute/60;};virtual string getType(){return "unknow"; };float getPrice();void setPrice(float _price);int getMinute();void setMinute(int _minute);Vehicle(float _price,int _minute); Vehicle(){};
};
/* 你的代码将被嵌入这里 */
int main(){int n,minute; //停车辆次,时长 char type;Vehicle *vp;Parker p;cin>>n;for(int i=1;i<=n;i++){cin>>type>>minute;switch(type){case 'c':vp=new Car(minute);break;case 't':vp=new Truck(minute);break;case 'b':vp=new Bus(minute);break;default: vp=new Vehicle();vp->setMinute(minute);}cout<<"type:"<<vp->getType() <<" minute:"<<vp->getMinute()<<" fee:"<<vp->computeFee()<<endl;p.park(vp);delete vp;}cout<<"sum:"<<p.getSum()<<endl;return 0;
}

输入样例:

输入的第一行为进入停车场的车辆总数n.
接下来有n行输入,每行为一辆车的类型及停车时长,时长单位为分钟,类型'c'代表Car,类型'b'代表Bus,类型't'代表Truck,其他字符则为未知类型。

3
c 40
t 5
b 40

输出样例:

输出为n+1行,前n行输出每辆车的类型,停车时长,收取的费用,最后一行输出目前停车场得到的停车费总额。

type:car minute:40 fee:8
type:truck minute:5 fee:15
type:bus minute:40 fee:10
sum=33

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

int Vehicle::getMinute(){return minute;
}
void Vehicle::setMinute(int m){minute = m;
}
class Parker{private:double sum;public:Parker(){sum = 0;}void park(Vehicle *a){sum+=a->computeFee();}double getSum(){return sum;}
};
class Car : public Vehicle{public:Car(int m){price = 8;minute = m;}string getType(){return"car";}float computeFee(){if(minute%60>=30)return (minute/60+1)*price;else return minute/60*price;}
};
class Truck:public Vehicle{public:Truck(int m){price=15;minute = m;}string getType(){return"truck";}float computeFee(){if(minute%60==0)return minute/60*price;else return (minute/60+1)*price;}	
};
class Bus:public Vehicle{public:Bus(int m){price=10;minute = m;}string getType(){return"bus";}float computeFee(){if(minute%60>30)return (minute/60+1)*price;else if(minute%60==0)return minute/60*price;else return (minute/60+0.5)*price;}
};


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

相关文章

windows下pysqlite3安装

pysqlite3 下载地址&#xff1a;SQLite Download Page windows下安装 首先在官网中下载以下文件 sqlite-amalgamation-3450300.zip #源码文件 sqlite-dll-win-x64-3450300.zip # 根据系统选择32或者64&#xff0c;可通过查看我的电脑属性中查看 sqlite-tools-win-x64-345…

【ARMv9 DSU-120 系列 1 -- DSU-120 DynamIQ 概述】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 文章目录 DSU-120 DynamIQ 概述DSU-120 集群的关键特点DSU-120 电源管理介绍电源域管理功耗降低机制功耗与性能平衡DSU-120 接口介绍内存接口外设端口(Peripheral Port)加速器一致性端口(ACP,Accelerator Coherency Port)

ISP比普通的静态代理相比有什么优势?

ISP&#xff08;Internet Service Provider&#xff09;&#xff0c;即互联网服务提供商&#xff0c;是向广大用户综合提供互联网接入业务、信息业务、增值业务的电信运营商。而静态代理则是一个固定不变的代理IP地址&#xff0c;具有稳定性强、兼容性好和管理方便等特点。当我…

分类分析|KNN分类模型及其Python实现

KNN分类模型及其Python实现 1. KNN算法思想2. KNN算法步骤2.1 KNN主要优点2.2 KNN主要缺点 3. Python实现KNN分类算法3.1 自定义方法实现KNN分类3.2 调用scikit-learn模块实现KNN分类 4. K值的确定 在之前文章 分类分析|贝叶斯分类器及其Python实现中&#xff0c;我们对分类分…

基于canal监听MySQL binlog实现数据增量同步

一、背景 业务反馈客服消息列表查询速度慢&#xff0c;有时候甚至要差不多20秒&#xff0c;急需优化提升速度。 二、方案 引入 首先&#xff0c;体验系统&#xff0c;发现查询慢的正是消息列表查询接口。 接着去看代码的设计&#xff0c;流程比较长&#xff0c;但从代码逻…

排序3——C语言

排序 1. 归并排序2. 计数排序3. 各排序的稳定性及复杂度 1. 归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。 思路&#xff1a;将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&am…

四川省建设工程技术人员职称申报评审基本条件

四川省建设工程技术人员职称申报评审基本条件链接四川省住房和城乡建设厅 四川省人力资源和社会保障厅关于印发《四川省建设工程技术人员职称申报评审基本条件》的通知_文件通知_四川省住房和城乡建设厅类别基本条件业绩成果备注助理工程师1.具备硕士学位或第二学士学位&#x…

MySQL第一次作业

解压完安装包 以管理员进入命令行 初始化并记住初始随机密码 创建服务名称 启动mysql 使用随机密码登录 修改密码 退出并重登服务器 MySQL创建数据库和表 创建数据库 创建表 1.进入数据库 创建表 向表中插入数据