在停车场收费系统中,根据车型的不同按不同的单价和计费方式收取不同的停车费,程序设计如下: 有一个 Vehicle类,有如下属性和方法: (1) price(单价)和minute(分钟) (2) 构造函数:带2个输入参数:price 和minute; (3)price 和minute的get/set方法 (4) float computeFee()计算停车费 Vehicle类和主类代码已经给出,你结合给出的代码,设计Vehicle的子类:Car和Bus。 Bus类 有私有成员:座位数 int seats 两个子类都重写继承的方法computeFee()来计算停车费: 轿车Car:每小时收费price元,未达1小时但超过30分钟按一小时费用计算,30分钟以内(包括30分钟)不收费 客车Bus:每小时收费price元,30分钟以内(包括30分钟)按半小时费用计费,未达1小时但超过30分钟按1小时费用计算 (提示 h=getMinute()/60 求得停车小时数,f=getMinute()%60求得超过的分钟数。对应客车Bus计费:如果f值为0,计费按h*price,30分钟以内(包括30分钟) 表示0<f<=30,计费按(h+0.5f)*price, 未达1小时但超过30分钟,表示 f>30,计费按(h+1)*price) 其中,停车费用每小时单价price,停车时间minutes和座位数seats 均通过键盘输入。

时间: 2023-06-02 07:07:18 浏览: 95
好的,我明白了。以下是车辆停车收费系统的代码: ``` import java.util.Scanner; // 车辆类 class Vehicle { private float price; // 单价 private int minute; // 停车时间(分钟) // 构造函数 public Vehicle(float price, int minute) { this.price = price; this.minute = minute; } // get/set方法 public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public int getMinute() { return minute; } public void setMinute(int minute) { this.minute = minute; } // 计算停车费 public float computeFee() { float fee = 0; int h = getMinute() / 60; int f = getMinute() % 60; if (h >= 1) { if (f > 30) { h += 1; } fee = h * getPrice(); } return fee; } } // 轿车类 class Car extends Vehicle { public Car(float price, int minute) { super(price, minute); } // 计算停车费 @Override public float computeFee() { float fee = 0; int h = getMinute() / 60; int f = getMinute() % 60; if (h >= 1) { if (f > 30) { h += 1; } fee = h * getPrice(); } else if (h == 0 && f > 30) { fee = getPrice(); } return fee; } } // 客车类 class Bus extends Vehicle { private int seats; // 座位数 public Bus(float price, int minute, int seats) { super(price, minute); this.seats = seats; } // get/set方法 public int getSeats() { return seats; } public void setSeats(int seats) { this.seats = seats; } // 计算停车费 @Override public float computeFee() { float fee = 0; int h = getMinute() / 60; int f = getMinute() % 60; if (h >= 1) { if (f > 30) { h += 1; } fee = h * getPrice(); } else if (h == 0 && f > 0) { if (f <= 30) { fee = getPrice() * 0.5f; } else if (f > 30 && f <= 60) { fee = getPrice(); } else if (f > 60) { fee = getPrice(); } } return fee; } } // 主类 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入停车费用每小时单价:"); float price = scanner.nextFloat(); System.out.print("请输入停车时间(分钟):"); int minute = scanner.nextInt(); System.out.print("请输入座位数:"); int seats = scanner.nextInt(); Vehicle vehicle; if (seats > 0) { vehicle = new Bus(price, minute, seats); } else { vehicle = new Car(price, minute); } float fee = vehicle.computeFee(); System.out.println("停车费用为:" + fee + "元"); } } ``` 设计思路: 首先定义一个车辆类Vehicle,包含单价price和停车时间minute两个属性,以及计算停车费用的方法computeFee()。 然后定义两个子类:Car和Bus。Car重写了继承的computeFee()方法,根据不同的停车时间计算停车费用。Bus在Car的基础上新增一个座位数seats属性,并改写了computeFee()方法。根据座位数以及不同的停车时间计算停车费用。 最后在主类中通过键盘输入单价、停车时间以及座位数,判断车辆类型并计算停车费用。

相关推荐

最新推荐

recommend-type

基于单片机控制的自动停车收费管理系统

随着经济的增长,越来越多的人加入了购车...汽车数量的剧增和停车场地的相对短缺,使得停车场的管理收费问题凸现。特别是大型超市的临时停车场管理收费更加困难。 本设计主要研究基于单片机控制的自动停车收费管理系统
recommend-type

基于51单片机控制的自动停车收费管理系统

传统的停车计费方式存在着一些不足,针对这些不足,设计了一个采用红外线检测单片机计费方式的全新自动停车收费管理系统,为临时停车场提供了一个操作简便、价格低廉,而且行之有效的管理办法。本系统的实际开发使用...
recommend-type

使用Python实现租车计费系统的两种方法

本文通过两种方法给大家分享了使用Python实现租车计费系统,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

数据库课程设计-水费收费管理系统.docx

该水费收费管理系统的主要目的是实现从档案建立、抄表、计费、收费全流程自动化管理。基本功能包括:基础数据管理、业务管理、收费管理等。系统还能够即时统计、查询各类数据,以满足一般的大小供水供司或水厂以及...
recommend-type

VB学生档案管理系统设计与实现.rar

计算机专业毕业设计VB精品论文资源
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。