租车系统

来源:互联网 发布:js设置select选中 编辑:程序博客网 时间:2024/06/10 04:38

1.这个练习算是学习java两周以来的一个总结,有了c++的基础学习java是轻松了不少。
2.到目前位置已经学到了接口,异常处理了,但涉及的深度还不够。
3.这个程序体现了面对对象程序设计的封装,继承,多态三大特性。
4.概述一下整个程序:
由6个类,2个接口组成。Car,Truck, Pickup三个类继承Auto类,并实现Cargo,manned两个接口。
Bus类继承Car类。RentSystem为主类。
5.渐渐的体会到了当码畜的感觉…….
实现功能如图:
这里写图片描述

package beans;public class Auto {private String name;private int rental;public Auto(String name, int rental) {    super();    this.name = name;    this.rental = rental;}public String getName() {    return name;}public int getRental() {    return rental;}}package beans;import customInterface.*;public class Truck extends Auto implements Cargo{    private int cargo;    public Truck(String name, int rental, int cargo) {        super(name, rental);        this.cargo = cargo;    }    @Override    public int getCargo() {        // TODO Auto-generated method stub        return cargo;    }}package beans;import customInterface.*;public class Car extends Auto implements Manned{    private int MannedAmount;    public Car(String name, int rental, int mannedAmount) {        super(name, rental);        MannedAmount = mannedAmount;    }    @Override    public int getMannedAmount() {        // TODO Auto-generated method stub        return MannedAmount;    }}   package beans;import customInterface.Cargo;import customInterface.Manned;public class Pickup extends Auto implements Cargo,Manned{    private int cargo;    private int MannedAmount;    public Pickup(String name, int rental, int cargo, int mannedAmount) {        super(name, rental);        this.cargo = cargo;        MannedAmount = mannedAmount;    }    @Override    public int getMannedAmount() {        // TODO Auto-generated method stub        return MannedAmount;    }    @Override    public int getCargo() {        // TODO Auto-generated method stub        return cargo;    }}package customInterface;public interface Cargo {     public int getCargo();}package customInterface;public interface Manned {    public int getMannedAmount();}package beans;import customInterface.Manned;public class Bus extends Car {    public Bus(String name, int rental, int mannedAmount) {        super(name, rental, mannedAmount);        // TODO Auto-generated constructor stub    }}package main;import beans.*;import java.util.ArrayList;import java.util.Scanner;public class RentSystem {    private ArrayList<Auto> list=new ArrayList<Auto>();    private int AmountofAuto;    private int day;    private  int rent=0;    private int load=0;    private int AmountofPeople=0;    //getter and setter    public ArrayList<Auto> getList(){        return this.list;    }    public int getDay() {        return day;    }    public void setDay(int day) {        this.day = day;    }    public int getAmountofAuto() {        return AmountofAuto;    }       public void setAmountofAuto(int amountofAuto) {        AmountofAuto = amountofAuto;    }    public int getRent(){        return rent;    }    public int getLoad() {        return load;    }    public void setLoad(int load) {        this.load += load;    }    public int getAmountofPeople() {        return AmountofPeople;    }    public void setAmountofPeople(int amountofPeople) {        this.AmountofPeople += amountofPeople;    }    //method,提供的服务    public void addAuto(Auto auto){        this.list.add(auto);    }    public void printInfor(){        System.out.println("您可租车的类型和其价目表:\n序号       汽车名称\t\t租金\t\t容量/载重");        for(Auto e :list){            if(e instanceof Car){            int m=((Car) e).getMannedAmount();            System.out.printf("%d.    %s\t\t%d元/天\t\t%d人\n",(list.indexOf(e)+1),e.getName(),e.getRental(),m);            }            if(e instanceof Pickup){            int m=((Pickup)e).getMannedAmount();            int c=((Pickup)e).getCargo();            System.out.printf("%d.    %s\t\t%d元/天\t\t%d人/%d吨\n",(list.indexOf(e)+1),e.getName(),e.getRental(),m,c);            }            if(e instanceof Truck){            int c=((Truck)e).getCargo();            System.out.printf("%d.    %s\t\t%d元/天                       %d吨\n",(list.indexOf(e)+1),e.getName(),e.getRental(),c);            }        }    }    //计算金额    public  void countRent(int days,int list_index){            this.rent+= (list.get(list_index)).getRental()*days;            }    //更新总载货量和总人数    public void setBillInfor(ArrayList<Auto> list,int index){        int load=0;        int AmountofPeople=0;        if(list.get(index) instanceof Car){            AmountofPeople=((Car)list.get(index)).getMannedAmount();            setAmountofPeople(AmountofPeople);        }        if(list.get(index) instanceof Pickup){            AmountofPeople=((Pickup)list.get(index)).getMannedAmount();            load=((Pickup)list.get(index)).getCargo();            setAmountofPeople(AmountofPeople);            setLoad(load);        }        if(list.get(index) instanceof Truck){            load=((Truck)list.get(index)).getCargo();            setLoad(load);        }    }    private void printBill(ArrayList<Auto> list,RentSystem system) {        // TODO Auto-generated method stub        System.out.println("您的账单:");        System.out.println("--------可载人的车有------------------------");        for(Auto e :list){            if(e instanceof Car||e instanceof Pickup){                System.out.print("      "+e.getName());            }               }        System.out.println("\t共载人:"+system.getAmountofPeople()+"人");        System.out.println("--------可载货的车有------------------------");        for(Auto e :list){            if(e instanceof Truck||e instanceof Pickup){                System.out.print("     "+e.getName());            }        }        System.out.println("\t共载货:"+system.getLoad()+"吨");    }    public static void main(String[] args) {        // TODO Auto-generated method stub        RentSystem system=new RentSystem();        system.addAuto(new Car("奥迪A4", 500, 4));        system.addAuto(new Car("马自达6", 400, 4));        system.addAuto(new Pickup("皮卡雪6", 450, 2, 4));        system.addAuto(new Bus("金龙", 800, 20));        system.addAuto(new Truck("松花江", 400, 4));        system.addAuto(new Truck("依维柯", 1000, 20));        System.out.printf("欢迎使用租车系统!\n您是否要租车: 1是            0否\n");        Scanner in=new Scanner(System.in);        int anwser=in.nextInt();        if(anwser==1){            system.printInfor();            System.out.println("请输入您租车的天数");            system.setDay(in.nextInt());            System.out.println("请输入您要租车的数量:");              system.setAmountofAuto(in.nextInt());            int i=1;            do            {                System.out.printf("输入第%d辆车的序号\n",i);                int index=in.nextInt()-1;                system.countRent(system.getDay(),index);                system.setBillInfor(system.getList(),index);                i++;            }while(i<system.getAmountofAuto()+1);            system.printBill(system.getList(),system);            System.out.print("-----------------------------------------\n订单总金额:"+system.getRent()+"元");        }        if(anwser==0){            System.out.println("再见!");        }        if(anwser!=0&&anwser!=1)        {            System.out.println("输入有误");        }    }}
0 0
原创粉丝点击