Nội dung Bài tập
Mã:
[LTHDT17]GK03
Tên:
Grab01
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
tamtd

Grab là 1 công ty start-up về lĩnh vực chuyên chở hành khách. Để vận hành hệ thống, công ty cần một hệ thống GrabBike để quản lý thông tin và điều phối xe. Mỗi xe (Bike) sẽ có các thông tin sau:

- Mã số xe (ID), kiểu số, mặc định là 0

- Biển số xe (bike number), kiểu chuỗi, mặc định là chuỗi rỗng

- Tên tài xế (biker name), kiểu chuỗi, mặc định là chuỗi rỗng

- Số km đã chạy trong tháng (quota), kiểu số, mặc định là 0

- Vị trí hiện tại, được biểu diễn bằng kinh độ (longitude) và vĩ độ (latitude)

Khi khách hàng đặt yêu cầu, hệ thống sẽ báo giá vận chuyển dựa vào khoảng cách giữa điểm đi và điểm đến do khách hàng cung cấp. Sau đó, hệ thống sẽ tự động chọn ra 1 xe để đón khách, việc lựa chọn này sẽ dựa vào các tiêu chí lần lượt như sau:

- Vị trí của xe phải gần với vị trí của khách hàng nhất (tính theo công thức khoảng cách 2 điểm trong mặt phẳng 2 chiều).

- Số km đã chạy trong tháng là ít nhất.

Các tiêu chí lựa chọn nhằm đảm bảo khách hàng không phải đợi xe quá lâu và các xe sẽ được phân phối hoạt động đều nhau. Sau khi xe đã đưa khách đến nơi, số km đã chạy trong tháng của xe sẽ được cập nhật lại bằng việc cộng thêm số km quãng đường vừa chạy.

Yêu cầu:

1. Xây dựng lớp đối tượng Bike với đầy đủ thành phần dữ liệu như mô tả, thể hiện rõ tính đóng gói và che dấu dữ liệu.

2. Xây dựng các phương thức khởi tạo cho lớp Slot:

- Không tham số, với các thông tin mặc định.

- Có tham số, với đầy đủ các tham số tương ứng.

- Sao chép

3. Xây dựng hàm nạp chồng toán tử nhập và xuất cho lớp đối tượng Bike.

Input:

- Dòng đầu tiên cho biết số lượng xe

- N dòng tiếp theo, mỗi dòng là 1 bộ thông tin của mỗi xe, mỗi thông tin cách nhau 1 khoảng trắng

Output:

- N dòng là thông tin của N xe theo định dạng

{ID:bike number:biker_name:quota:longitude:latitude}

Ví dụ:

Input:

Output:

3

1 59V1-1234 Nam 100 10.123 -3.002

2 59X2-5678 Binh 150 1.023 24.073

3 59Y3-2345 Tuan 90 -5.305 3.211

{1:59V1-1234:Nam:100:10.123:-3.002}

{2:59X2-5678:Binh:150:1.023:24.073}

{3:59Y3-2345:Tuan:90:-5.305:3.211}

 

 


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận