bol_in 2022-06-06 00:25 采纳率: 64.6%
浏览 20
已结题

33 - 交通工具 *此題須使用以下struct及function pointer實作,否則不予計分。 必須使用規定架構定義四種交通工具 (車、腳踏車、長途客運、摩托車)

33 - 交通工具
*此題須使用以下struct及function pointer實作,否則不予計分。
(使用規定架構進行實作並通過所有測資才予以給分,期末會進行檢查)

必須使用規定架構定義四種交通工具 (車、腳踏車、長途客運、摩托車)
但可以定義各個交通工具特有的屬性
如在車的結構中定義油錢、過路費、停車費。

題目敘述
BMI博士想從A點移動到B點,中間距離 x 公里,他想要知道在金錢花費限制在 y 元以下的情況,最快抵達B點需要多久的時間,是使用哪種交通工具?

利用結構 struct 定義
Car(車), Bike(腳踏車), Intercity Bus(長途客運), Scooter(摩托車)。

交通工具會有兩個的method需要實作,分別是計算金錢花費以及計算時間花費。

計算費用的方式
車需要考慮油錢、過路費、停車費。
腳踏車需考慮租賃費用。
客運根據站點計費。
摩托車需考慮油錢。

車:
1.油錢:汽油每公升a元。
汽車每100公里需要10公升汽油。
不足100公里以100公里計算 (如250公里,汽車要30公升汽油)
2.過路費: 每100公里 b元
過路費不足100公里以100公里計算 (如250公里,過路費為3b元)
3.停車費: c元

腳踏車:
1.租賃費用:a元

客運:
1.固定費用:a元
2.長途加收:超過100公里,每50公里多b元。
加收部分,不足50公里以50公里計算 (如170公里為a+2b)

摩托車:
1.油錢:汽油每公升a元。
摩托車每100公里需要4公升汽油。
不足100公里以100公里計算 (如250公里,摩托車要12公升汽油)

計算時間的方式

車每小時可以朝目的地移動100公里(100km/hr)
客運每小時可以朝目的地移動75公里(75km/hr)
摩托車每小時可以朝目的地移動50公里(50km/hr)
腳踏車每小時可以朝目的地移動20公里(20km/hr)

------程式碼架構規範之範例---------------------

#define TransportationText(TYPE) char name[20];
double speed;
double distance;
int (price)(struct TYPE);
double (time)(struct TYPE)

typedef struct car_s {
int oilPrice;
int parkPrice;
int tolls;
TransportationText(car_s);
} car_t;

int CarPrice(car_t* obj){
}

double CarTime(car_t* obj){
}

void CarCreate(car_t *obj){
strcpy(obj->name, "Car");
obj->speed = 100;
obj->price = CarPrice;
obj->time = CarTime;
}


輸入說明:
第一行輸入二正整數x,y,其中x代表起始點與目的地距離x公里,y代表預算
第二行輸入三正整數為汽車相關費用,分別是油價(元/公升)、停車費以及過路費(元/100km)
第三行輸入一正整數為腳踏車的租賃費用
第四行輸入二正整數為長途客運相關費用,分別是固定費用以及長途加收費用(元/50km)
第五行輸入一正整數為摩托車的油價(元/公升)

輸出說明:
輸出符合預算且花費時間最短的交通類型。

第一行輸出交通工具類型(Car,Bike,Intercity Bus,Scooter)。
第二行輸出實際花費金額。
第三行輸出花費時間(以小時計,取到小數點後兩位)。

如果沒有交通工具符合要求,輸出No Transportation (參考範例測資5)


範例輸入1 說明
150 1000 (第一行輸入二正整數x,y,其中x代表起始點與目的地距離x公里,y代表預算)
30 100 50 (第二行為汽車的相關費用,輸入油錢(元/公升)、停車費以及過路費(元/100km))
50 (第三行為腳踏車的相關費用,輸入租賃費用)
50 30 (第四行為長途客運的相關費用,輸入固定費用以及長途加收費用(元/50km))
30 (第四行為摩托車的相關費用,輸入油錢(元/公升))

範例輸出1 說明
Car
800
1.50

汽車的費用= 3010⌈150/100⌉ + 100 + 50⌈150/100⌉= 30102 + 100 + 502= 800元
汽車所需時間= 150/100= 1.50hr

腳踏車的費用= 50元
腳踏車所需時間= 150/20= 7.50hr

長途客運的費用= 50 + 30⌈(150-100)/50⌉= 50 + 301= 80元
長途客運所需時間= 150/75= 2.00hr

摩托車的費用= 304⌈150/100⌉= 3042= 240元
摩托車所需時間= 150/50= 3.00hr

因為預算為1000元,
所以在預算內,花費時間最短的交通工具為汽車,花費為800元,需要時間為1.5hr。


Sample Input 1:
150 1000
30 100 50
50
50 30
30

Sample Output 1:
Car
800
1.50


Sample Input 2:
270 800
35 0 0
50
70 30
30

Sample Output 2:
Intercity Bus
190
3.60


Sample Input 3:
70 90
27 100 0
50
100 30
20

Sample Output 3:
Scooter
80
1.40


Sample Input 4:
480 20
30 50 70
20
70 100
30

Sample Output 4:
Bike
20
24.00


Sample Input 5:
100 50
100 200 300
500
90 60
25

Sample Output 5:
No Transportation

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2022-06-07 10:14
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 创建了问题 6月6日

悬赏问题

  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络