- 流程图
- 代码
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、租车,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
*************
欢迎再次光临
*************