java 二嗨租车项目,Java小项目 -- 答答租车系统(已自测通过)

/**

* 汽车抽象类

*

* @author Administrator

*

*/

public abstract class Auto {

private String name;

private double price;

public Auto(String name, double price) {

this.name = name;

this.price = price;

}

public String getName() {

return name;

}

public double getPrice() {

return price;

}

@Override

public String toString() {

return name + "\t" + price + "\t";

}

}

/**载客汽车类

* @author Administrator

*

*/

public class PassengerCar extends Auto {

private int passengerCapacity;

public PassengerCar(String name, double price, int passengerCapacity) {

super(name, price);

this.passengerCapacity = passengerCapacity;

}

public int getPassengerCapacity() {

return passengerCapacity;

}

@Override

public String toString() {

return super.toString()+ "载客:"+passengerCapacity+"人" ;

}

public static void main(String[] args) {

Auto PassengerCar=new PassengerCar("路虎",100,5);

System.out.println(PassengerCar.getName());

//System.out.println(PassengerCar.getBusload());//Error,由动态绑定机制决定

PassengerCar bus2=new PassengerCar("路虎2",100,5);

System.out.println(bus2.getName());

System.out.println(bus2.getPassengerCapacity());

System.out.println(bus2.toString());

}

}

/**卡车类

* @author Administrator

*

*/

public class Truck extends Auto{

private double cargoCapacity;

public Truck(String name, double price, double cargoCapacity) {

super(name, price);

this.cargoCapacity = cargoCapacity;

}

public double getCargoCapacity() {

return cargoCapacity;

}

@Override

public String toString() {

return super.toString() + "载货:"+cargoCapacity + "吨";

}

}

/**

* 皮卡类(载货载客汽车)

*

* @author Administrator

*

*/

public class PickUp extends Auto {

private int passengerCapacity;

private double cargoCapacity;

public PickUp(String name, double price, int passengerCapacity, double cargoCapacity) {

super(name, price);

this.passengerCapacity = passengerCapacity;

this.cargoCapacity = cargoCapacity;

}

public int getPassengerCapacity() {

return passengerCapacity;

}

public double getCargoCapacity() {

return cargoCapacity;

}

@Override

public String toString() {

return super.toString() + "载客:" + passengerCapacity + "人 " + "载货:" + cargoCapacity + "人";

}

}

import java.util.ArrayList;

import java.util.Scanner;

/**

* 租车系统

*

* @author Administrator

*

*/

public class CarRentingSystem {

private ArrayList auto = new ArrayList();// 汽车数据

/**

* 初始化汽车数据

*/

public void initAuto() {

auto.add(new PassengerCar("奥迪A6", 500, 4));

auto.add(new PassengerCar("马自达6", 400, 4));

auto.add(new PickUp("皮卡雪6", 450, 4, 2));

auto.add(new PassengerCar("金龙", 800, 20));

auto.add(new Truck("松花江", 300, 3));

auto.add(new Truck("依维柯", 1000, 20));

}

/**

* 显示汽车信息

*/

public void displayAuto() {

System.out.println("您可租的汽车信息:");

System.out.println("序号\t车型\t租金\t容量");

// 遍历汽车数据

for (int i = 0; i < auto.size(); i++)

System.out.println(i + 1 + "\t" + auto.get(i).toString());

}

/**

* 选车的方法

*

* @param in

* 标准输入流

* @return 选中车辆的序号

*/

public int[] selectAuto(Scanner in) {

System.out.println("请输入您要租汽车的数量:");

int carRentNum = in.nextInt();// 租车数目

int[] carRenOrders = new int[carRentNum];// 租车序号

for (int i = 0; i < carRentNum; i++) {// 记录车辆序号

System.out.println("请输入第" + (i + 1) + "辆车的序号:");

carRenOrders[i] = in.nextInt();

}

return carRenOrders;

}

/**

* 租车信息统计

*

* @param carRenOrders

* 选中车辆的序号

* @param carRentDays

* 租车天数

*/

public void countUp(int[] carRenOrders, int carRentDays) {

int totalPrice = 0;

int totalPassengerCapacity = 0;

int totalCargoCapacity = 0;

String passengerCarList = "";

String cargoCarList = "";

for (int i = 0; i < carRenOrders.length; i++) {// 遍历每一辆选中的车

Auto a = auto.get(i);

if (a instanceof PassengerCar) {// 判断汽车类型

totalPassengerCapacity += ((PassengerCar) a).getPassengerCapacity();

passengerCarList += " " + a.getName();

}

if (a instanceof Truck) {

totalCargoCapacity += ((Truck) a).getCargoCapacity();

cargoCarList += " " + a.getName();

}

if (a instanceof PickUp) {

totalPassengerCapacity += ((PickUp) a).getPassengerCapacity();

totalCargoCapacity += ((PickUp) a).getCargoCapacity();

cargoCarList += " " + a.getName();

passengerCarList += " " + a.getName();

}

totalPrice += a.getPrice();

}

System.out.println("您的账单:");

System.out.println("***可载客的汽车有:");

System.out.println(passengerCarList + " 共载客:" + totalPassengerCapacity + "人");

System.out.println("***可载货的汽车有:");

System.out.println(cargoCarList + " 共载货:" + totalCargoCapacity + "吨");

System.out.println("***租车总价格:" + totalPrice * carRentDays + "元");

}

public static void main(String[] args) {

CarRentingSystem crs = new CarRentingSystem();

crs.initAuto();// 初始化汽车数据

while (true) {

System.out.println("欢迎使用哒哒租车系统!");

System.out.println("您是否要租车?1是 0否");

Scanner in = new Scanner(System.in);

if (in.nextInt() == 0)

continue;

else {// 需要租车

crs.displayAuto();// 显示待租汽车信息

int[] carRenOrders = crs.selectAuto(in);// 选车

System.out.println("请输入租车天数:");// 租车天数

int carRentDays = in.nextInt();

crs.countUp(carRenOrders, carRentDays);// 租车信息统计

}

}

}

}

欢迎使用哒哒租车系统!

您是否要租车?1是 0否

1

您可租的汽车信息:

序号 车型 租金 容量

1 奥迪A6 500.0 载客:4人

2 马自达6 400.0 载客:4人

3 皮卡雪6 450.0 载客:4人 载货:2.0人

4 金龙 800.0 载客:20人

5 松花江 300.0 载货:3.0吨

6 依维柯 1000.0 载货:20.0吨

请输入您要租汽车的数量:

3

请输入第1辆车的序号:

1

请输入第2辆车的序号:

3

请输入第3辆车的序号:

5

请输入租车天数:

1

您的账单:

可载客的汽车有:

奥迪A6 马自达6 皮卡雪6 共载客:12人可载货的汽车有:

皮卡雪6 共载货:2吨

***租车总价格:1350元

欢迎使用哒哒租车系统!

您是否要租车?1是 0否

0

欢迎使用哒哒租车系统!

您是否要租车?1是 0否

打开App,阅读手记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值