6-3 租车服务 (20分)

java旧题复习
作业4
6-3 租车服务 (20分)
某租车公司提供租车服务,针对不同的车辆类型,日租金的计算方式不同,具体地,对于货车而言,根据载重量load(单位是吨)计算,公式为loadx 1000;对于大型客车而言,根据车内座位数seats计算,公式为seatsx50;对于小型汽车而言,根据车辆等级和折旧年数计算,公式为200*level/sqrt(year),其中sqrt表示平方根。设计合适的类继承结构实现上述功能,构造租车公司类CarRentCompany,提供静态函数rentVehicles,能够给定一组待租车辆,计算日租金总额。 在main函数中,读入多个车辆数据,并计算总的日租金。

输入描述:
汽车数量 汽车种类 该类汽车相关属性 其中1表示货车,2表示大型客车,3表示小型汽车

输出描述:
总的日租金,保留两位小数

裁判测试程序样例:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int c = sc.nextInt();
        Vehicle[] vs = new Vehicle[c];
        for (int i=0;i<c;i++) {
            int type = sc.nextInt();
            Vehicle v = null;
            if (type == 1) {//货车
                vs[i] = new Truck (sc.nextDouble());
            } else if (type == 2) {
                vs[i] = new Keche(sc.nextInt());
            } else if (type == 3) {
                vs[i] = new Car(sc.nextInt(), sc.nextInt());
            }
        }

        System.out.printf("%.2f",CarRentCompany.rentVehicles(vs));

    }
}

/* 你的代码被嵌在这里 */

输入样例:
在这里给出一组输入。例如:

3
1 3
2 50
3 5 5

输出样例:
在这里给出相应的输出。例如:

5947.21

ans:

abstract class Vehicle{//将车辆类写成抽象类更易实现
	abstract double getMoney();
}

class Truck extends Vehicle{//货车
	double load;
	public Truck(double load) {
		this.load=load;
	}
	
	public double getMoney() {
		return 1000*this.load;
	}
	
}

class Keche extends Vehicle{//卡车
	int seat;
	public Keche(int seat) {
		this.seat=seat;
	}
	
	public double getMoney() {
		return 50*this.seat;
	}
}

class Car extends Vehicle{//小型车辆
	int level;
	int year;
	
	public Car(int level,int year) {
		this.level=level;
		this.year=year;
	}
	
	public double getMoney() {
		return 200*this.level/(Math.sqrt(this.year));
	}
}

class CarRentCompany{
	public static double rentVehicles(Vehicle[] vs) {//静态方法
		double sum=0;
		for(int i=0;i<vs.length;i++) {
			sum+=vs[i].getMoney();
		}
		return sum;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值