java0008——类的继承与多态舒舒租车系统(无后台,控制台简化版)

  1. 流程图
    在这里插入图片描述
  2. 代码
package Taxi;
public abstract class Car {
	String name;
	String Type;
	float money;
	public abstract void showCar();
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getType() {
		return Type;
	}
	public void setType(String type) {
		Type = type;
	}
	public float getMoney() {
		return money;
	}
	public void setMoney(float money) {
		this.money = money;
	}
	public Car() {
		super();
	}
	public Car(String name,String Type ,float money){
		this.name=name;
		this.Type=Type;
		this.money=money;
	}
	public String toString() {
		return ("name:"+name+","+"type:"+Type+","+"money"+money);
	}
}


//公共汽车
package Taxi;
public final class Bus extends Car {
	private double PassengerNumbe;

	public double getPassengerNumbe() {
		return PassengerNumbe;
	}

	public void setPassengerNumbe(double passengerNumbe) {
		this.PassengerNumbe = passengerNumbe;
		
	}
	public void showCar() {
		System.out.println(toString());
	}
	public Bus() {
		super();
	}
	public Bus(String name,String Type,float money,double PassengerNumbe) {
		super(name,Type,money);
		this.PassengerNumbe=PassengerNumbe;
	}
	@Override
	public String toString () {
		return super.toString()+",PassengerNumbe:"+PassengerNumbe;
	}
}


package Taxi;
public final class PickCar extends Car {
	double cargoCapacity;
	double pessengerNumber;

	public double getCargoCapacity() {
		return cargoCapacity;
	}

	public void setCargoCapacity(double cargoCapacity) {
		this.cargoCapacity = cargoCapacity;
	}

	public double getPessengerNumber() {
		return pessengerNumber;
	}

	public void setPessengerNumber(double pessengerNumber) {
		this.pessengerNumber = pessengerNumber;
	}
	public PickCar() {
		super();
	}
	public PickCar(String name,String Type,float money,double cargoCapacity,double pessengerNumber) {
		super(name,Type,money);
		this.pessengerNumber=pessengerNumber;
		this.cargoCapacity=cargoCapacity;
	}
	public String toString() {
		return super.toString()+",cargoCapacity:"+this.cargoCapacity+",pessengerNumber:"+this.pessengerNumber;
	}
	public void showCar() {
		System.out.println(toString());
	}
}

//小轿车
package Taxi;
public final class Sedan extends Car{
	private double PassengerNumbe;

	public double getPassengerNumbe() {
		return PassengerNumbe;
	}

	public void setPassengerNumbe(double passengerNumbe) {
		this.PassengerNumbe = passengerNumbe;
		
	}
	public void showCar() {
		System.out.println(toString());
	}
	public Sedan() {
		super();
	}
	public Sedan(String name,String Type,float money,double PassengerNumbe) {
		super(name,Type,money);
		this.PassengerNumbe=PassengerNumbe;
	}
	@Override
	public String toString () {
		return super.toString()+",PassengerNumbe:"+PassengerNumbe;
	}
}

//卡车
package Taxi;
public final class Trunk extends Car{
	private double corgoCapacity;

	public double getCorgoCapacity() {
		return corgoCapacity;
	}

	public void setCorgoCapacity(float corgoCapacity) {
		this.corgoCapacity = corgoCapacity;
	}
	public void showCar() {
		System.out.println(toString());
	}
	public String toString() {
		return super.toString()+",corgoCapacity:"+corgoCapacity;
	}
	public Trunk() {
		super();
	}
	public Trunk(String name,String Type,float money,double corgoCapacity) {
		super(name,Type,money);
		this.corgoCapacity=corgoCapacity;
	}
}
package Taxi;
import java.util.*;
public class Carlist {
	private Car[] cars;

	public Car[] getCars() {
		return cars;
	}

	public void setCars(Car[] cars) {
		this.cars = cars;
	}
	public Carlist(Car[] cars) {
		super();
		this.cars=cars;
	}
	public Carlist() {
		super();
		cars=new Car[] {
				new Sedan("奥迪A4","小轿车",500,4),
				new Sedan("马自达","小轿车",400,4),
				new PickCar("皮卡雪","皮卡",450,4,2),
				new Bus("金龙","大公交",600,30),
				new Trunk("东方","卡车",500,6.5),
				new Bus("依维柯", "大公交", 300, 20)
		};
	}
	public String toString() {
		return "汽车清单:\n"+Arrays.toString(cars);
	}
}

package Taxi;

import java.util.*;

public class RentCarSystem {
	private Carlist list;
	private int[] choices;
	Scanner input = new Scanner(System.in);

	public RentCarSystem() {
		list = new Carlist();
		choices = new int[list.getCars().length];
	}

	public RentCarSystem(Carlist list, int[] choices) {
		super();
		this.list = list;
		this.choices = choices;
	}
	void run() {
		welcome();
		choiceCar();
		bye();
	}

	public void welcome() {
		System.out.println("*************");
		System.out.println("欢迎使用租车系统");
		System.out.println("*************");
	}

	public void bye() {
		System.out.println("*************");
		System.out.println("欢迎再次光临");
		System.out.println("*************");
	}

	public void choiceCar() {
		char car;
		do {
			System.out.println("1、租车,0、退出");
			car = input.nextLine().charAt(0);
			showCars();
			if (car == '1')
				rentOneCar();
			else if (car == '0')
				break;
			else
				System.out.println("错误,请重新输入");
		} while (true);
		showRentCar();
	}

	public void rentOneCar() {
		System.out.println("请输入你要租车的序号");
		int carNum=Integer.parseInt(input.nextLine());
		if(carNum>0&&carNum<choices.length&&choices[carNum]==0) {
			System.out.println("请选择你要租车的时间");
			String days=input.nextLine();
			choices[carNum]=Integer.parseInt(days);
			System.out.println("已成功租到车");
		}
		else System.out.println("你输入的选择无效");
	}
	public void showRentCar() {
		System.out.println("******************");
		System.out.println("您租用了一下这些车辆");
		double money=0;
		int count=0;
		Car[] cars=list.getCars();
		for(int i=0;i<choices.length;i++) {
			if(choices[i]>0) {
				System.out.println(list.getCars()[i].toString()+"租车时间"+choices[i]+"天");
				count++;
				System.out.println(cars[i].getMoney());
				money+=(choices[i]*cars[i].getMoney());
			}
		}
		if(count>0) {
		System.out.printf("您一共助理 %d辆车,共计金额 %.2f员\n",count,money);
			System.out.println("car"+count+"money"+money);
		}
		else System.out.println("您没有租车");
	}
	public void showCars() {
		Car[] cars = list.getCars();
		System.out.println("******************");
		System.out.println("系统提供一下车牌供你选择");
		for (int i = 0; i < choices.length; i++) {
			if(choices[i]==0)
			System.out.println("序号:" + i + "," + cars[i]);
		}
	}
}
package Taxi;

import java.util.*;

public class RentCarSystem {
	private Carlist list;
	private int[] choices;
	Scanner input = new Scanner(System.in);

	public RentCarSystem() {
		list = new Carlist();
		choices = new int[list.getCars().length];
	}

	public RentCarSystem(Carlist list, int[] choices) {
		super();
		this.list = list;
		this.choices = choices;
	}
	void run() {
		welcome();
		choiceCar();
		bye();
	}

	public void welcome() {
		System.out.println("*************");
		System.out.println("欢迎使用租车系统");
		System.out.println("*************");
	}

	public void bye() {
		System.out.println("*************");
		System.out.println("欢迎再次光临");
		System.out.println("*************");
	}

	public void choiceCar() {
		char car;
		do {
			System.out.println("1、租车,0、退出");
			car = input.nextLine().charAt(0);
			showCars();
			if (car == '1')
				rentOneCar();
			else if (car == '0')
				break;
			else
				System.out.println("错误,请重新输入");
		} while (true);
		showRentCar();
	}

	public void rentOneCar() {
		System.out.println("请输入你要租车的序号");
		int carNum=Integer.parseInt(input.nextLine());
		if(carNum>0&&carNum<choices.length&&choices[carNum]==0) {
			System.out.println("请选择你要租车的时间");
			String days=input.nextLine();
			choices[carNum]=Integer.parseInt(days);
			System.out.println("已成功租到车");
		}
		else System.out.println("你输入的选择无效");
	}
	public void showRentCar() {
		System.out.println("******************");
		System.out.println("您租用了一下这些车辆");
		double money=0;
		int count=0;
		Car[] cars=list.getCars();
		for(int i=0;i<choices.length;i++) {
			if(choices[i]>0) {
				System.out.println(list.getCars()[i].toString()+"租车时间"+choices[i]+"天");
				count++;
				System.out.println(cars[i].getMoney());
				money+=(choices[i]*cars[i].getMoney());
			}
		}
		if(count>0) {
		System.out.printf("您一共助理 %d辆车,共计金额 %.2f员\n",count,money);
			System.out.println("car"+count+"money"+money);
		}
		else System.out.println("您没有租车");
	}
	public void showCars() {
		Car[] cars = list.getCars();
		System.out.println("******************");
		System.out.println("系统提供一下车牌供你选择");
		for (int i = 0; i < choices.length; i++) {
			if(choices[i]==0)
			System.out.println("序号:" + i + "," + cars[i]);
		}
	}
}

  1. 测试样例;
*************
欢迎使用租车系统
*************
1、租车,0、退出
1
******************
系统提供一下车牌供你选择
序号:0,name:奥迪A4,type:小轿车,money500.0,PassengerNumbe:4.0
序号:1,name:马自达,type:小轿车,money400.0,PassengerNumbe:4.0
序号:2,name:皮卡雪,type:皮卡,money450.0,cargoCapacity:4.0,pessengerNumber:2.0
序号:3,name:金龙,type:大公交,money600.0,PassengerNumbe:30.0
序号:4,name:东方,type:卡车,money500.0,corgoCapacity:6.5
序号:5,name:依维柯,type:大公交,money300.0,PassengerNumbe:20.0
请输入你要租车的序号
5
请选择你要租车的时间
1
已成功租到车
1、租车,0、退出
4
******************
系统提供一下车牌供你选择
序号:0,name:奥迪A4,type:小轿车,money500.0,PassengerNumbe:4.0
序号:1,name:马自达,type:小轿车,money400.0,PassengerNumbe:4.0
序号:2,name:皮卡雪,type:皮卡,money450.0,cargoCapacity:4.0,pessengerNumber:2.0
序号:3,name:金龙,type:大公交,money600.0,PassengerNumbe:30.0
序号:4,name:东方,type:卡车,money500.0,corgoCapacity:6.5
错误,请重新输入
1、租车,0、退出
1
******************
系统提供一下车牌供你选择
序号:0,name:奥迪A4,type:小轿车,money500.0,PassengerNumbe:4.0
序号:1,name:马自达,type:小轿车,money400.0,PassengerNumbe:4.0
序号:2,name:皮卡雪,type:皮卡,money450.0,cargoCapacity:4.0,pessengerNumber:2.0
序号:3,name:金龙,type:大公交,money600.0,PassengerNumbe:30.0
序号:4,name:东方,type:卡车,money500.0,corgoCapacity:6.5
请输入你要租车的序号
4
请选择你要租车的时间
1
已成功租到车
1、租车,0、退出
0
******************
系统提供一下车牌供你选择
序号:0,name:奥迪A4,type:小轿车,money500.0,PassengerNumbe:4.0
序号:1,name:马自达,type:小轿车,money400.0,PassengerNumbe:4.0
序号:2,name:皮卡雪,type:皮卡,money450.0,cargoCapacity:4.0,pessengerNumber:2.0
序号:3,name:金龙,type:大公交,money600.0,PassengerNumbe:30.0
******************
您租用了一下这些车辆
name:东方,type:卡车,money500.0,corgoCapacity:6.5租车时间1天
500.0
name:依维柯,type:大公交,money300.0,PassengerNumbe:20.0租车时间1天
300.0
您一共助理 2辆车,共计金额 800.00员
car2money800.0
*************
欢迎再次光临
*************

猜你喜欢

转载自blog.csdn.net/qq_41448891/article/details/82811752
今日推荐