1. 程式人生 > >Java練習 SDUT-3349_答答租車系統(面向對象綜合練習)

Java練習 SDUT-3349_答答租車系統(面向對象綜合練習)

個人 body [1] clas int 保留 esc 根據 style

答答租車系統(面向對象綜合練習)

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

各位面向對象的小夥伴們,在學習了面向對象的核心概念——類的封裝、繼承、多態之後,答答租車系統開始營運了。

請你充分利用面向對象思想,為公司解決智能租車問題,根據客戶選定的車型和租車天數,來計算租車費用,最大載客人數,最大載載重量。

公司現有三種車型(客車、皮卡車、貨車),每種車都有名稱和租金的屬性;其中:客車只能載人,貨車只能載貨,皮卡車是客貨兩用車,即可以載人,也可以載貨。

下面是答答租車公司的可用車型、容量及價目表:

序號 名稱 載客量(人) 載貨量(噸) 租金(元/天)
1 A 5 800
2 B 5 400
3 C 5 800
4 D 51 1300
5 E 55 1500
6 F 5 0.45 500
7 G 5 2.0 450
8 H 3 200
9 I 25 1500
10 J 35 2000

要求:根據客戶輸入的所租車型的序號及天數,計算所能乘載的總人數、貨物總數量及租車費用總金額。

Input

首行是一個整數:代表要不要租車 1——要租車(程序繼續),0——不租車(程序結束);

第二行是一個整數,代表要租車的數量N;

接下來是N行數據,每行2個整數m和n,其中:m表示要租車的編號,n表示租用該車型的天數。

Output

若成功租車,則輸出一行數據,數據間有一個空格,含義為:

載客總人數 載貨總重量(保留2位小數) 租車金額(整數)

若不租車,則輸出:

0 0.00 0(含義同上)

Sample Input

1
2
1 1
2 2

Sample Output

15 0.00 1600

用的類的繼承來做的,個人認為重構方法可能會更簡短點。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        che []a = new che[15];
        a[1] = new ke(5,800);
        a[2] = new ke(5,400);
        a[3] = new ke(5,800);
        a[4] = new ke(51,1300);
        a[5] = new ke(55,1500);
        a[6] = new pi(5,0.45,500);
        a[7] = new pi(5,2.0,450);
        a[8] = new huo(3,200);
        a[9] = new huo(25,1500);
        a[10] = new huo(35,2000);
        int f,n,x,y;
        int r = 0,c = 0;
        double w = 0;
        f = cin.nextInt();
        if(f==1)
        {
            n = cin.nextInt();
            while(n-->0)
            {
                x = cin.nextInt();
                y = cin.nextInt();
                r += a[x].r * y;
                w += a[x].w * y;
                c += a[x].c * y;
            }
        }
        System.out.printf("%d %.2f %d\n",r,w,c);
        cin.close();
    }
}

class che
{
    int r,c;
    double w;
}

class ke extends che
{
    ke(int r,int c)
    {
        this.r = r;
        this.c = c;
        this.w = 0;
    }
}

class pi extends che
{
    pi(int r,double w,int c)
    {
        this.r = r;
        this.w = w;
        this.c = c;
    }
}

class huo extends che
{
    huo(double w,int c)
    {
        this.r = 0;
        this.w = w;
        this.c = c;
    }
}

Java練習 SDUT-3349_答答租車系統(面向對象綜合練習)