1. 程式人生 > >java小專案,租車系統

java小專案,租車系統

暑假因為有事耽誤了,本以為暑假完結windows程式設計的,唉,慢慢補吧,學校開了java,因為學過c++,所以覺java並不是太難,根據慕課網給的專案,做了這個租車系統
這裡寫圖片描述
無非就是面向物件思想,定義一個抽象汽車類,然後實現各自型別的汽車類,比較基礎,就不多說了

Auto.java

package hireAuto;

public abstract class Auto {
    //抽象類沒必要定義屬性,但是取得車型,價格,容量都是一樣的,不妨定義屬性
    String name;
    int price;
    int capacity;//表示載人
    int capacity2;//表示載貨
int a;//a為1則表示可以載人,反之不可 int b;//b為1則表示可以載貨,反之不可 public String getName() { return name; } public int getPrice() { return price; } public int getCapacity() { return capacity; } public int getCapacity2() { return capacity2; } //只有運輸不同
public abstract void transport();//運輸,貨車載人,客車載客 }

A.java

package hireAuto;

public class A extends Auto {

    public A()
    {
        this.name="奧迪A4";
        this.price=500;
        this.capacity=4;
        this.capacity2=0;
        this.a=1;
        this.b=0;
    }
    public void transport()
    {
        System.out.println(this
.getName()+"\t"+this.getPrice()+"元/天\t\t"+"載人:"+this.getCapacity()+"人"); } }

B.java

package hireAuto;

public class B extends Auto {

    public B()
    {
        this.name="馬自達6";
        this.price=400;//單位:元/天
        this.capacity=4;//單位:人
        this.capacity2=0;
        this.a=1;
        this.b=0;
    }

    public int getPricePerDay()
    {
        return getPrice()*getCapacity();
    }

    public void transport()
    {
        System.out.println(this.getName()+"\t"+this.getPrice()+"元/天\t\t"+"載人:"+this.getCapacity()+"人");
    }
}

C.java

package hireAuto;

public class C extends Auto {
    int capacity2;//單位:噸
    public C()
    {
        this.name="皮卡雪6";//即可載人,也可載貨
        this.price=450;//單位:元/天
        this.capacity=4;//單位:人
        this.capacity2=2;//單位:噸
        this.a=1;
        this.b=1;
    }


    public int getCapacity2()
    {
        return capacity2;
    }

    public void transport() {
        // TODO Auto-generated method stub
        System.out.println(getName()+"\t"+getPrice()+"元/天\t\t"+"載人:"+getCapacity()+"人 載貨:"+getCapacity2()+"噸");
    }

}

D.java

package hireAuto;

public class D extends Auto {
    public D()
    {
    this.name="金龍";
    this.price=800;//單位:元/天
    this.capacity=20;//單位:人
    this.capacity2=0;
    this.a=1;
    this.b=0;
    }
    @Override
    public void transport() {
        // TODO Auto-generated method stub
        System.out.println(getName()+"\t"+getPrice()+"元/天\t\t"+"載人:"+getCapacity()+"人");
    }

}

E.java

package hireAuto;

public class E extends Auto {
    public E()
    {
    this.name="松花江";
    this.price=400;//單位:元/天
    this.capacity=0;
    this.capacity2=4;
    this.a=0;
    this.b=1;
    }
    @Override
    public void transport() {
        // TODO Auto-generated method stub
        System.out.println(getName()+"\t"+getPrice()+"元/天\t\t"+"載貨:"+getCapacity()+"噸");
    }

}

F.java

package hireAuto;

public class F extends Auto {
    public F()
    {
    this.name="依維柯";
    this.price=1000;//單位:元/天
    this.capacity=0;//單位:噸
    this.capacity2=20;
    this.a=0;
    this.b=1;
    }
    @Override
    public void transport() {
        // TODO Auto-generated method stub
        System.out.println(getName()+"\t"+getPrice()+"元/天\t"+"載貨:"+getCapacity()+"噸");
    }

}

hireAutoSystem.java(相當於c++的主函數了)

package hireAuto;
import java.util.Scanner;

public class hireAutoSystem {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        final int count=6;//可租用的數量
        System.out.println("歡迎來到滴滴租車系統");
        System.out.println("是否租車:1(是),0(否)");
        Scanner input=new Scanner(System.in);
        int iSel=input.nextInt();
        if(iSel==0)
        {
            System.out.println("歡迎使用此係統,再見");
            return ;
        }
        System.out.println("下面是可租車的型別及價格等資訊");
        System.out.println("序號\t汽車型號\t租金\t\t容量");
        Auto[] autoArr=new Auto[6]; 
        autoArr[0]=new A();
        autoArr[1]=new B();
        autoArr[2]=new C();
        autoArr[3]=new D();
        autoArr[4]=new E();
        autoArr[5]=new F();

        for(int i=0;i<count;++i)
        {
            System.out.print(i+1+"\t");
            autoArr[i].transport();
        }

        System.out.println("請輸入要租車的數量(最大為"+count+"):");
        int iCount=input.nextInt();
        if(iCount>count)
        {
            System.out.println("對不起,輸入數量有誤!!!再見");
            return;
        }


        int[] auto=new int[iCount];
        System.out.println("請依次輸入要租車的序號");
        for(int i=0;i<iCount;++i)
            auto[i]=input.nextInt()-1;

        System.out.println("請輸入租車天數");
        int days=input.nextInt();

        System.out.println("賬單如下:");
        System.out.println("可載人的車");
        int totalPrice=0;
        int iPerson=0;
        int iGoods=0;
        for(int i=0;i<iCount;++i)
            {
                totalPrice+=autoArr[auto[i]].price;
                if(autoArr[auto[i]].a==1)
                    {
                    System.out.print(autoArr[auto[i]].getName()+"\t");
                    iPerson+=autoArr[auto[i]].getCapacity();
                    }
            }
        System.out.println("共載人:"+iPerson+"人");

        System.out.println("可載貨的車");
        for(int i=0;i<iCount;++i)
            if(autoArr[auto[i]].b==1)
                {
                    System.out.print(autoArr[i].getName()+"\t");
                    iGoods+=autoArr[auto[i]].getCapacity2();
                }
        System.out.println("共載貨:"+iGoods+"噸");
        System.out.println("總價格:"+days*totalPrice);
    }

}