一、项目背景
编写一个控制台程序,要求实现如下功能:
1.展示所有可租车辆
2.选择车型,租车量
3.显示租车清单,包括:总载货量,总载客量,总金额等;
二、车的类别
客车:只能载客
货车:只能载货
皮卡:既能载人,有能载货
下面给出源代码,仅供参考:
父类:Car类:
package com.bluesky;
public class Car {
public String name; //车的名称
public int cargocapacity; //车的载货量
public int busload; //车的载客量
public int dailyrent; //车的日租金
}
子类一:客车类 passengerCar类:
package com.bluesky;
public class passengerCar extends Car{
public passengerCar(){
}
//客车的构造方法
public passengerCar(String name,int busload ,int dailytent ){
this.name=name;
this.busload=busload;
this.dailyrent=dailytent;
}
}
子类二:货车类 Truck类:
package com.bluesky;
public class Truck extends Car{
public Truck(){
}
//货车的构造方法
public Truck(String name,int cargocapacity,int dailyrent){
this.name=name;
this.cargocapacity=cargocapacity;
this.dailyrent=dailyrent;
}
}
子类三:皮卡类 Pickup类:
package com.bluesky;
public class Pickup extends Car{
public Pickup(){
}
//皮卡构造方法
public Pickup(String name ,int cargocapacity,int busload,int dailyrent){
this.name=name;
this.cargocapacity=cargocapacity;
this.busload=busload;
this.dailyrent=dailyrent;
}
}
具体实现类:CarRentApp:
package com.bluesky;
import java.util.Scanner;
public class CarRentApp {
public static void main(String[] args) {
System.out.println("欢迎使用答答租车系统!");
//利用对象数组和多态的特性产生不同种类的车并保存
Car[] cars={new passengerCar("东风标致",5,120),
new Truck("小货车",5,150),
new passengerCar("奔驰",6,200),
new Pickup("皮卡",4,2,180),
new Truck("大型货车",3,220),
new passengerCar("小型客车",9,160)};
System.out.println("您是否需要租车?");
System.out.println("1是 0否");
Scanner in = new Scanner(System.in);
int choice = in.nextInt();
//需要租车
if(choice==1){
int totalBusload = 0; //总的载客量
int totalCargocapacity=0; //总的载货量
int totalPrice=0; //总价格
int rentday; //租车天数
System.out.println("可供选择的车如下:");//显示各种车的信息
int num=1;
System.out.println("序号\t"+"车名\t"+"日租金\t"+"容量");
for(Car car:cars){
System.out.print("Num."+num+'\t');
if(car instanceof passengerCar ) //解决不同车具有不同的特征,用instanceof关键字
{
System.out.println(
car.name+'\t'+car.dailyrent+"元\t"
+"载客量:"+car.busload+"人" );
num++;
}
if(car instanceof Truck )
{
System.out.println(
car.name+'\t'+car.dailyrent+"元\t"
+"载货量:"+car.cargocapacity+"吨");
num++;
}
if(car instanceof Pickup )
{
System.out.println(
car.name+'\t'+car.dailyrent+"元\t"+"载货量:"
+car.cargocapacity+"吨"+"载客量:"+car.busload+"人");
num++;
}
}
System.out.println("请输入您需要的租车的数量:");
int count = in.nextInt();
for(int i=0;i<count;i++){
System.out.println("请选择您需要的车的编号:");
int Num =in.nextInt();
if(cars[Num-1] instanceof passengerCar){
totalBusload+=cars[Num-1].busload;
totalPrice+=cars[Num-1].dailyrent;
}
if(cars[Num-1] instanceof Truck){
totalCargocapacity+=cars[Num-1].cargocapacity;
totalPrice+=cars[Num-1].dailyrent;
}
if(cars[Num-1] instanceof Pickup){
totalBusload+=cars[Num-1].busload;
totalCargocapacity+=cars[Num-1].cargocapacity;
totalPrice+=cars[Num-1].dailyrent;
}
}
System.out.println("请输入需要租车的天数:");
Scanner input = new Scanner(System.in);
rentday=input.nextInt();
totalPrice*=rentday;
System.out.println("总载客量:"+totalBusload+"人\t"+"总载货量:"+totalCargocapacity
+"吨\t"+"总共需要的价钱:"+totalPrice+"元");
}
}
}
运行结果:
我知道,有些地方写的不是很好,希望各位大神们赐教!