Nội dung Bài tập
Mã:
[LTHDT17]GK02
Tên:
SMG Gateway 02
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ớ:
64 MB
Được tạo bởi:
tamtd
Đề thi giữa kỳ môn Lập trình hướng đối tượng - lớp COMP101704

Một công ty viễn thông cần xây dựng hệ thống API để quản lý các thông điệp quảng cáo (broadcast message). Hệ thống sẽ tiếp nhận các yêu cầu và tự động gửi thông điệp đến số điện thoại của khách hàng. Để làm được điều đó, người ta sẽ sử dụng một thiết bị có N slot để gắn SIM điện thoại (SMG gateway). Mỗi slot như vậy sẽ có các thông tin sau:

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

- Số điện thoại của SIM (sim phone number), kiểu chuỗi, mặc định là chuỗi rỗng

- Nhà mạng cung cấp (network provider), kiểu chuỗi, mặc định là chuỗi rỗng

- Số thông điệp có thể gửi trong ngày (message limit), kiểu số, mặc định là 100

Mỗi lần một slot thực hiện việc gửi 1 thông điệp đi, số thông điệp có thể gửi trong ngày của slot đó sẽ giảm đi 1, điều này nhằm đảm bảo 1 slot không thể gửi quá nhiều thông điệp và để phân tải cho hệ thống.

Khi có một yêu cầu gửi tin nhắn đến một số điện thoại của khách hàng, SMG gateway sẽ lựa chọn ra slot thích hợp nhất để gửi. Các tiêu chí lựa chọn sẽ lần luợt như sau:

- Slot phải cùng nhà mạng với số điện thoại khách hàng.

- Slot phải có số thông điệp có thể gửi trong ngày lớn nhất.

Yêu cầu:

1. Viết hàm lựa chọn Slot để gửi thông điệp.

2. Xây dựng phương thức gửi thông điệp (Send Message) cho lớp Slot. Phương thức này thực hiện việc cập nhật lại số thông điệp có thể gửi trong; sau đó in ra màn hình nội dung theo định dạng

{msg:<message>;from:<sim phone number>;to:<des phone number>;limit:<limit còn lại sau khi gửi>}

void SendMessage(char* message, char* des_phone_number);

Input:

- Dòng đầu tiên cho biết các thông tin sau: số lượng slot, thông điệp gửi đi, số điện thoại gửi đi. Mỗi thông tin cách nhau 1 khoảng trắng

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

Output:

- Thông tin theo định dạng

{msg:<message>;from:<sim phone number>;to:<des phone number>;limit:<limit còn lại sau khi gửi>}

 

Ví dụ:

Input

Output

3 hello 090773177

1 0903334455 Mobi 100

2 0963334455 Viettel 150

3 0983334455 Vinaphone 90

{msg:hello;from:0903334455;to:0907773177;limit:99}


    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