java达达租车接口_Java第一个项目——达达租车系统v1

父类Vehicle

package com.dada;

public class Vehicle {

protected String name;//车辆名称

protected int price;//单天租车价格

protected int passengers;//载客数

protected int goods;//载货量

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public int getPassengers() {

return passengers;

}

public void setPassengers(int passengers) {

this.passengers = passengers;

}

public int getGoods() {

return goods;

}

public void setGoods(int goods) {

this.goods = goods;

}

//显示车辆信息

public void showInfo() {

System.out.println("显示车辆信息");

}

}

子类-载人汽车 PassengerVehicle

package com.dada;

//客运汽车

public class PassengerVehicle extends Vehicle {

public PassengerVehicle(String name, int passengers, int price) {

// TODO Auto-generated constructor stub

this.name = name;

this.passengers = passengers;

this.price = price;

this.goods = 0;

}

@Override

//显示车辆信息

public void showInfo() {

System.out.println(name + "\t" + price + "元/天\t载人:" + passengers + "人");

}

}

子类-载货汽车 GoodsVehicle

package com.dada;

//货运汽车

public class GoodsVehicle extends Vehicle {

public GoodsVehicle(String name, int goods, int price) {

this.name = name;

this.goods = goods;

this.price = price;

this.passengers = 0;

}

@Override

//显示车辆信息

public void showInfo() {

System.out.println(name + "\t" + price + "元/天\t载货:" + goods + "吨");

}

}

子类-皮卡车 PickupTruck

package com.dada;

//皮卡车,客货两用

public class PickupTruck extends Vehicle {

public PickupTruck(String name, int passengers, int goods, int price) {

super();

this.name = name;

this.passengers = passengers;

this.goods = goods;

this.price = price;

}

@Override

//显示车辆信息

public void showInfo() {

System.out.println(name + "\t" + price + "元/天\t载人:" + passengers + "人 载货:" + goods + "吨");

}

}

租车类(主程序) HireVehicle

package com.dada;

import java.util.Scanner;

public class HireVehicle {

private static Vehicle v[];// 保存所有车辆信息

private static int vehicleNums; // 记录客户要租的车辆数

private static int days; // 记录租车天数

private static int hiredVehicleNo[]; // 记录客户选择的车辆编号,数组长度即所租车辆数

// 初始化所有车辆信息

public static void initialVechicles(){

// 初始化车辆信息

Vehicle localV[] = {

new PassengerVehicle("奥迪A4", 4, 500),

new PassengerVehicle("马自达6", 4, 400),

new PickupTruck("皮卡雪6", 4, 2, 450),

new PassengerVehicle("金龙", 20, 800),

new GoodsVehicle("松花江", 4, 400),

new GoodsVehicle("依维柯", 20, 1000)

};

v = localV;

}

// 显示所有车辆信息

public static void listVehicles(Vehicle v[]) {

if (v != null) {

System.out.println("您可租车的类型及其价目表:");

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

for (int i = 0; i < v.length; i++) {

System.out.print((i + 1) + ".\t");

v[i].showInfo();

}

}

}

// 填写租车订单

public static void order() {

Scanner input = new Scanner(System.in);

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

vehicleNums = input.nextInt();// 记录客户要租的车辆数

int localHiredVehicleNo[] = new int[vehicleNums];// 记录客户选择的车辆编号

for (int i = 0; i < vehicleNums; i++) {

System.out.println("请输入第" + (i + 1) + "辆车的序号:"); // 使用i+1以符合用户的使用习惯,从1开始数

localHiredVehicleNo[i] = input.nextInt();

}

hiredVehicleNo = localHiredVehicleNo; // 引用传递给成员变量,以便供其它方法使用

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

days = input.nextInt();// 记录租车天数

input.close();

}

// 输出账单

public static void showOrder() {

int tPassenger = 0;// 总载客人数

float tGoods = 0;// 总载重量

double tPrice = 0;// 1天的租车总价

//租车数大于0,才输出账单,否则说明没有租车,输出提示没有订单信息。

if (hiredVehicleNo.length > 0) {

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

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

//先遍历所有租用的车辆,寻找能载客的车辆信息,输出车辆名称,并统计出总载客人数和单日租金总额

for (int i = 0; i < hiredVehicleNo.length; i++) {

int j = hiredVehicleNo[i] - 1;//读取所租车辆编号

if ((v[j] instanceof PassengerVehicle) || (v[j] instanceof PickupTruck)) { //如果是载客汽车或皮卡车

tPassenger += v[j].getPassengers();//累加总载客人数

System.out.print(" " + v[j].getName());//输出车辆名称

tPrice += v[j].getPrice();//累加单日租金

}

}

System.out.println(" 共载人:" + tPassenger + "人");//输出总载客人数

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

//再次遍历所有租用的车辆,寻找能载货的车辆信息,输出车辆名称,并统计出总载货量和单日租金总额

for (int i = 0; i < hiredVehicleNo.length; i++) {

int j = hiredVehicleNo[i] - 1;//读取所租车辆编号

if (v[j] instanceof GoodsVehicle) { //如果是载货车辆

tGoods += v[j].getGoods();//累加总载货量

System.out.print(" " + v[j].getName());//累加总载货量

tPrice += v[j].getPrice();//累加单日租金

} else if (v[j] instanceof PickupTruck) {//如果是皮卡车

tGoods += v[j].getGoods();//累加总载货量

System.out.print(" " + v[j].getName());//累加总载货量。因为之前统计载客车辆时已累加皮卡车的租金,所以此次不应再累加租金。

}

}

System.out.println(" 共载货:" + tGoods + "吨");//输出总载货量

System.out.println("***租车总价格:" + (tPrice * days) + "元");//输出租金总额(单日租金总额*天数)

} else {

System.out.println("没有订单信息。");

}

}

// 租车

public static void hire(){

// 显示欢迎信息,并询问是否租车

System.out.println("欢迎使用达达租车系统:\n您是否要租车:1是 0否");

int flagHire = 0;// 是否要租车标记,1租车,0不租

Scanner input = new Scanner(System.in);

flagHire = input.nextInt();

if (flagHire == 0) {

System.out.println("欢迎下次光临"); // 不租

} else { // 租车

// 显示所有车辆信息

HireVehicle.listVehicles(v);

// 下订单

HireVehicle.order();

// 显示账单

HireVehicle.showOrder();

}

input.close();

}

public static void main(String[] args) {

// TODO Auto-generated method stub

//初始化车辆信息

HireVehicle.initialVechicles();

//租车

HireVehicle.hire();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值