java基礎第二季最後一節課練習

at_1發表於2021-09-09

Car.java
package com.imooc;

public abstract class Car {//這是載客車
private int amount;//載客數量
public abstract void run();

public int getAmount() {
    return amount;
}
public void setAmount(int amount) {
    this.amount = amount;
}

}
CarGo.java
package com.imooc;

public interface CarGo extends CarGoB{//這是載貨車
double ton=2;
public void freight();

}
CarGo2.java
package com.imooc;

public interface CarGo2 extends CarGoB{//這是載貨車
double ton=4;
public void freight2();

}
CarGo3.java
package com.imooc;

public interface CarGo3 extends CarGoB{//這是載貨車
double ton=20;
public void freight3();

}
CarGoB.java
package com.imooc;

public interface CarGoB {
public double ton=0;
}
LCarGo.java
package com.imooc;

public class LCarGo extends Car implements CarGo3{
public void run(){
System.out.println("這是輛大貨車,載客為0");
}

@Override
public void freight3() {
    // TODO Auto-generated method stub
    System.out.println("這輛車能載大貨物");
}

}
SCarGo.java
package com.imooc;

public class SCarGo extends Car implements CarGo,CarGo2{

@Override
public void run() {
    // TODO Auto-generated method stub
    System.out.println("這是輕型貨車,載客為0");
}

@Override
public void freight() {
    // TODO Auto-generated method stub
    System.out.println("這輛車能載小貨物");
}

@Override
public void freight2() {
    // TODO Auto-generated method stub
    System.out.println("這輛車能載小貨物");
}

}
Initial.java
package com.imooc;

import java.util.Scanner;

public class Initial {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Car aoDi=new SCarGo();//建立一個載人的奧迪物件
    aoDi.setAmount(4);
    CarGoB CaoDi=new SCarGo();//建立一個載貨的奧迪物件

    Car maZiDa=new SCarGo();//載人馬自達
    maZiDa.setAmount(4);
    CarGoB CmaZiDa=new SCarGo();//載貨馬自達

    Car piKaXue=new SCarGo();//載人皮卡雪
    piKaXue.setAmount(4);
    CarGo CpiKaXue=new SCarGo();//載貨皮卡雪

    Car jinLong=new LCarGo();//載人金龍
    jinLong.setAmount(20);
    CarGoB CjinLong=new LCarGo();//載貨金龍

    Car sHuaJiang=new SCarGo();//載人松花江
    sHuaJiang.setAmount(0);
    CarGo2 CsHuaJiang=new SCarGo();//載貨松花江

    Car yWeiKe=new LCarGo();//載人依維柯
    yWeiKe.setAmount(0);
    CarGo3 CyWeiKe=new LCarGo();//載貨依維柯

    System.out.println("歡迎使用答答租車系統:");
    System.out.println("您是否要租車:1是 0否");
    Scanner in=new Scanner(System.in);//進行輸入操作
    int input=in.nextInt();//輸入整型
    if(input==1){
        System.out.println("您可租車的型別及其價目表:");
        System.out.println("序號 汽車名稱 租金             容量");
        System.out.println("1.  奧迪A4  500$/天      載人:"+aoDi.getAmount()+"人");
        System.out.println("2.  馬自達6 400$/天       載人:"+maZiDa.getAmount()+"人");
        System.out.println("3.  皮卡雪6 450$/天       載人:"+piKaXue.getAmount()+" "+"載貨:"+CpiKaXue.ton+"噸");
        System.out.println("4.  金龍           800$/天      載人:"+jinLong.getAmount()+"人");
        System.out.println("5.  松花江      400$/天      載貨:"+CsHuaJiang.ton+"噸");
        System.out.println("6.  依維柯    1000$/天      載貨:"+CyWeiKe.ton+"噸");

        System.out.println("請輸入您要租汽車的數量:");
        int i=in.nextInt();//租車數量
        final int cunI=i;//存租車數量
        int renNum=0;//統計總載人數
        double huoNum=0;//統計總載貨量
        double bill=0;//統計租車的總價格

        int[] jiK=new int[i]; ;//建立一個陣列,為了存放使用者按順序選擇的車編號

        Car[] cheR=new Car[]{aoDi,maZiDa,piKaXue,jinLong,sHuaJiang,yWeiKe};//顯示每一輛車的載人數,為了方便計算總載人數

        double[] cheH=new double[6];//顯示每一輛車的載貨量,為了方便計算載貨量          
        {
        cheH[0]=CaoDi.ton;
        cheH[1]=CmaZiDa.ton;
        cheH[2]=CpiKaXue.ton;
        cheH[3]=CjinLong.ton;
        cheH[4]=CsHuaJiang.ton;
        cheH[5]=CyWeiKe.ton;
        }
        double[] che$=new double[]{500,400,450,800,400,1000};//顯示每一輛車租一天的價格,為了方便計算總價格

        String[] cheName=new String[]{"奧迪A4","馬自達6","皮卡雪6","金龍","松花江","依維柯"};
        for(int j=0;i>0;i--,j++){
            System.out.println("請輸入第"+(j+1)+"輛車的序號");

            int k=in.nextInt()-1;//陣列是從零開始的,這裡-1的操作是為了與陣列下標匹配
            jiK[j]=k;//用於存放使用者按順序選擇的車編號
            renNum+=cheR[k].getAmount();//獲取總載人數
            huoNum+=cheH[k];//獲取總載貨數
            bill+=che$[k];//獲取所租的車一天的總價格
        }

        System.out.println("請輸入租車的天數:");
        int tian=in.nextInt();
        bill*=tian;//租車的總價格*租車天數,獲取真實租車價格;

        System.out.println("您的賬單:");

        System.out.println("***可載人的車有:");
        i=cunI;//重置i,使它為使用者輸入的值
        for(int j=0;i>0;i--,j++){
            //int k=in.nextInt()-1;//陣列是從零開始的,這裡-1的操作是為了與陣列下標匹配
            if(cheR[jiK[j]].getAmount()>0){//判斷載人是否為0,不為0就進行列印車名
                System.out.print(""+cheName[jiK[j]]+" ");//列印車名;
            }               
        }
        System.out.print("共載人:"+renNum+"人");
        System.out.println();

        System.out.println("***可載貨的車有:");
        i=cunI;//重置i,使它為使用者輸入的值
        for(int j=0;i>0;i--,j++){
            //int k=in.nextInt()-1;
            if(cheH[jiK[j]]>0){//判斷載貨量是否為0,不為0就進行車名列印;
                System.out.print(""+cheName[jiK[j]]+" ");
            }               
        }
        System.out.print("共載貨:"+huoNum+"噸");
        System.out.println();

        System.out.println("***租車總價格:"+bill+"元");
    }else{
        System.out.println("期待您下次光臨!");
    }

}

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1817/viewspace-2807798/,如需轉載,請註明出處,否則將追究法律責任。

相關文章