package java入门第二季达达租车系统;
public class Car {
public String name;//汽车名称
public int price;//汽车租金
public int ren;//载人数
public int huo;//载货数
public Car(String name, int price) {
super();
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getRen() {
return ren;
}
public void setRen(int ren) {
this.ren = ren;
}
public int getHuo() {
return huo;
}
public void setHuo(int huo) {
this.huo = huo;
}
}
载人的车
package java入门第二季达达租车系统;
public class PersonCar extends Car{
public PersonCar(String name, int price,int ren) {
super(name, price);
this.ren=ren;
}
public String toString(){
return this.name+"\t"+this.price+"元/天"+"\t"+"载人:"+this.ren+"人";
}
}
载货的车
package java入门第二季达达租车系统;
public class HuoCar extends Car{
public HuoCar(String name, int price,int huo) {
super(name, price);
this.huo=huo;
}
public String toString(){
return this.name+"\t"+this.price+"元/天"+"\t"+"载货:"+this.huo+"吨";
}
}
皮卡
package java入门第二季达达租车系统;
public class PkCar extends Car{
public PkCar(String name, int price,int ren,int huo) {
super(name, price);
this.ren=ren;
this.huo=huo;
}
public String toString(){
return this.name+"\t"+this.price+"元/天"+"\t"+"载人:"+this.ren+"人"+" 载货:"+this.huo+"吨";
}
}
主函数
package java入门第二季达达租车系统;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {//使循环
System.out.println("欢迎使用达达租车系统:");
System.out.println("您是否要租车: 1是 0否");
int s = sc.nextInt();
if(s==1){
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号 汽车名称 租金 容量");
// Car c1 = new PersonCar("奥迪A4",500,4);
// Car c2 = new PersonCar("马自达6",400,4);
// Car c3 = new PkCar("皮卡雪6",450,4,2);
// Car c4 = new PersonCar("金龙",800,20);
// Car c5 = new HuoCar("松花江",400,4);
// Car c6 = new HuoCar("依维柯",1000,20);
//定义Car数组,并实例化对象
Car[] cars ={ new PersonCar("奥迪A4",500,4),
new PersonCar("马自达6",400,4),
new PkCar("皮卡雪6",450,4,2),
new PersonCar("金龙",800,20),
new HuoCar("松花江",400,4),
new HuoCar("依维柯",1000,20)};
for(int i=0;i<cars.length;i++){
System.out.println((i+1)+"\t"+cars[i]);
}
System.out.println("请输入您要租车的数量:");
int num = sc.nextInt();
//定义相关变量来存放数据
Car[] carList = new Car[num];//创建一个新的数组来接收选择出来的车;数量是num
int rens = 0;//用来记录人数
int huos = 0;//用来记录货物数量
int prices = 0;//用来记录总价格
//遍历循环输出要租车的序号
for(int i=0;i<num;i++){
System.out.println("请输入第"+(i+1)+"辆车的序号");
int xun= sc.nextInt();
carList[i] = cars[xun-1];//将车的序列赋值给数组carList
prices += carList[i].getPrice(); //
}
//输出租车天数
System.out.println("请输入租车天数:");
int tian = sc.nextInt();
prices = prices*tian;
System.out.println("---------------");
System.out.println("您的账单:");
System.out.println("***可载人的车有:");
//遍历循环查询可载人的车
for(int i=0;i<num;i++){
//如果车是PersonCar 和PkCar都可以载人
if(carList[i] instanceof PersonCar || carList[i] instanceof PkCar){
rens = rens+carList[i].getRen();
System.out.print(carList[i].getName()+"\t");
}
}
System.out.println("共载人:"+rens+"人");
System.out.println("***可载货的车有:");
//遍历循环查询可载货的车
for(int i=0;i<num;i++){
if(carList[i] instanceof HuoCar || carList[i] instanceof PkCar){
huos = huos+carList[i].getHuo();
System.out.print(carList[i].getName()+"\t");
}
}
System.out.println("共载货:"+huos+"吨");
System.out.println("***租车的总价格:"+prices+"元");
return;
}else if(s==0){
System.out.println("欢迎下次再来");
return;
}else {
System.out.println("您的输入有误");
}
}
}
}
热门评论
写着是个啥,看得我一脸萌币
看了五六个,就这个和我思路一样,这样做有诸多好处
主函数中//遍历循环输出要租车的序号。那个地方要捕捉处理数组脚标越界的异常。