哒哒租车系统(慕课网学习)

来源:互联网 发布:淘宝超市加盟 编辑:程序博客网 时间:2024/04/30 12:07

         设计一个租车系统,车有载货和载人,也有既载货又载人的车,模拟租车系统,实现一点小功能!

综合运用所学知识,完善系统(异常处理,接口使用,封装继承等等~)


异常处理还是有些缺陷,对选车过程中输错序号还没有很好的处理,等掌握的知识多了再来解决。


代码如下:

package example1;public class Car {private int carNumber;private String carName;private int carMoney;public int getCarNumber() {return carNumber;}public void setCarNumber(int carNumber) {this.carNumber = carNumber;}public String getCarName() {return carName;}public void setCarName(String carName) {this.carName = carName;}public int getCarMoney() {return carMoney;}public void setCarMoney(int carMoney) {this.carMoney = carMoney;}}

package example1;public class PassengerCar extends Car {private int carCapacity;public PassengerCar(int carNumber,String carName,int carMoney,int carCapacity){this.setCarNumber(carNumber);this.setCarName(carName);this.setCarMoney(carMoney);this.carCapacity=carCapacity;}public int getCarCapacity() {return carCapacity;}public void setCarCapacity(int carCapacity) {this.carCapacity = carCapacity;}}

package example1;public class Trunk extends Car{private int carCarry;    public Trunk(int carNumber,String carName,int carMoney,int carCarry){        this.setCarNumber(carNumber);        this.setCarName(carName);        this.setCarMoney(carMoney);        this.carCarry=carCarry;    }public int getCarCarry() {return carCarry;}public void setCarCarry(int carCarry) {this.carCarry = carCarry;}}


public class PickUp extends Car {    private int carCapacity; //定义皮卡的载客量    private int carCarry; //定义皮卡的载货量         public PickUp(int carNumber,String carName,int carRentMoney,int carCapacity,int carCarry){        this.setCarNumber(carNumber);        this.setCarName(carName);        this.setCarMoney(carRentMoney);        this.carCapacity=carCapacity;        this.carCarry=carCarry;    }public int getCarCapacity() {return carCapacity;}public void setCarCapacity(int carCapacity) {this.carCapacity = carCapacity;}public int getCarCarry() {return carCarry;}public void setCarCarry(int carCarry) {this.carCarry = carCarry;} }


package example1;import java.util.Scanner;import java.util.*;public class Test {public static void main(String[] args) {System.out.println("欢迎使用哒哒租车系统!\n");while(true){int kase=0;        System.out.println("您是否需要租车? :1 是   0 否");        try{        Scanner input=new Scanner(System.in);            int k=input.nextInt();            if(k==1)            {            kase=1;            System.out.println("您可租车的类型及价目表:");            Car [] carRent={new PassengerCar(1,"奥迪",500,4),new PassengerCar(2,"马自达",400,4),    new PickUp(3,"皮卡雪",450,4,2),new PassengerCar(4,"金龙",800,20),new Trunk(5,"松花江",400,4),new Trunk(6,"解放",500,5)        };        System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t"+"容量");        for (Car car : carRent) {                //用instanceOf来测试左边类型的对象是否是右边类型的实例,返回值为Boolean        if(car instanceof PassengerCar){                //若它是客车类型的实例,则打印出客车应该有的属性值,这里注意强转,否则不会出现                //passengerCar类的CarCapacity属性                 System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()                                                  +"/天"+"\t"+"载人:"+((PassengerCar)car).getCarCapacity()+"人");                     }                if(car instanceof PickUp){                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()                                                  +"/天"+"\t"+"载人:"+((PickUp)car).getCarCapacity()+"人"+"\t"                                                  +"载货:"+((PickUp)car).getCarCarry()+"吨");                }                if(car instanceof Trunk){                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()                                                  +"/天"+"\t"+"载货:"+((Trunk)car).getCarCarry()+"吨");                }            }        System.out.println("请输入您要租车的数量");        int n=input.nextInt();        List<Car> carList=new ArrayList<Car>();        int p=0;        List<Car> carList1=new ArrayList<Car>();        List<Car> carList2=new ArrayList<Car>();        int pnum=0;        int cnum=0;        int mnum=0;        for(int i=0;i<n;i++){        System.out.println("请输入第"+(i+1)+"辆车的序号: ");        int nnum=input.nextInt();        carList.add(carRent[nnum-1]);        System.out.println("成功添加:"+carList.get(p).getCarName());        if(carRent[nnum-1] instanceof PassengerCar){        pnum+=((PassengerCar)carList.get(p)).getCarCapacity();        mnum+=(carList.get(p)).getCarMoney();        carList1.add(carList.get(p));        }        if(carRent[nnum-1]instanceof PickUp){        cnum+=((PickUp)carList.get(p)).getCarCarry();        pnum+=((PickUp)carList.get(p)).getCarCapacity();        mnum+=(carList.get(p)).getCarMoney();        carList2.add(carList.get(p));        carList1.add(carList.get(p));     }     if(carRent[nnum-1]instanceof Trunk){     cnum+=((Trunk)carList.get(p)).getCarCarry();     mnum+=(carList.get(p)).getCarMoney();                 carList2.add(carList.get(p));     }     p++;      }        System.out.println("请输入租车的天数:");        int dnum=input.nextInt();            mnum=mnum*dnum;            if(carList1.isEmpty()){            System.out.println("没有可以载客的车~");            }            else{            System.out.println("********************可载客的车有********************");                for (Car car : carList1) {                System.out.println(car.getCarName());                }                System.out.println("载客量为"+pnum+"人");                }            if(carList2.isEmpty()){            System.out.println("没有可以载客的车~");            }            else{            System.out.println("********************可载货的车有********************");                for (Car car : carList2) {                System.out.println(car.getCarName());                }                System.out.println("载货量为"+cnum+"吨");                }            System.out.println("********************租车的总价格********************");                System.out.println(mnum);                }            else if(k==0){                        kase=1;             System.out.println("感谢您的再次使用!再见!");            }            else{            System.out.println("您输入的指令有误,请重新输入!");            }            }catch(Exception e){            System.out.println("请输入数字!谢谢~");            }        if(kase==1)          break;        }}}



运行结果:



0 0
原创粉丝点击