- 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
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} |
Theme :
Mời bạn soạn code