6-3 图书和音像租赁 (10分)

	               **6-3 图书和音像租赁 (10分)**

图书和音像店提供出租服务,包括图书和DVD的出租。图书包括书名(String,一个词表示)和价格(double),DVD包括片名(String,一个词表示)。它们都是按天出租,但租金计算方式却不同,图书的日租金为图书价格的1%,DVD的日租金为固定的1元。构造图书和DVD类的继承体系,它们均继承自Media类,且提供方法getDailyRent()返回日租金,构造音像店类MediaShop,提供静态函数double calculateRent(Media[] medias, int days)。 在main函数中构造了Media数组,包含图书和DVD的对象,调用calculateRent方法得到并输出租金,保留小数点两位

输入描述:
待租图书和DVD的数量

图书和DVD的详细信息

租借天数

输出描述:
总的租金

裁判测试程序样例

import java.util.Scanner;

public class Main {
		public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		Media[] ms  = new Media[n];
		for (int i=0; i<n; i++) {
			String type = sc.next();
			if (type.equals("book")) {
				ms[i] = new Book(sc.next(), sc.nextDouble());
			}else {
				ms[i] = new DVD(sc.next());
			}
		}
		double rent = MediaShop.calculateRent(ms, sc.nextInt());
		System.out.printf("%.2f", rent);
	}
}

/* 请在这里填写答案 */

输入样例:

5
book Earth 25.3
book Insights 34
dvd AI
dvd Transformer
book Sun 45.6
20

输出样例:

60.98
abstract class Media {
    private String name;
    double price;

    public Media(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public Media(String name) {
        this.name = name;
    }

    abstract double getDailyRent();
}

class Book extends Media {
    public Book(String name, double price) {
        super(name, price);
    }

    @Override
    double getDailyRent() {
        return super.price * 0.01;
    }
}

class DVD extends Media {
    public DVD(String name) {
        super(name);
    }

    @Override
    double getDailyRent() {
        return 1;
    }
}

class MediaShop {
    static double calculateRent(Media[] ms, int n) {
        double total = 0;
        for (Media mss : ms) {
            total += mss.getDailyRent() * n;
        }
        return total;
    }
}
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值