Python Bài 11.B2: Hệ thống order đồ uống


LÀM BÀI

Points: 15 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Python

Mô tả

Xây dựng hệ thống quản lý đặt đồ uống cho một quán cafe với các chức năng: thêm đồ uống vào menu, tạo đơn hàng, thêm đồ uống vào đơn và tính tổng tiền.

INPUT FORMAT

  • Dòng đầu: số nguyên N là số lệnh cần thực hiện
  • N dòng tiếp theo, mỗi dòng là một trong các lệnh sau:
    • DRINK <loại> <tên> <giá>: Thêm đồ uống mới vào menu
      • loại: "coffee" hoặc "tea"
      • tên: chuỗi trong dấu ngoặc kép
      • giá: số nguyên dương
    • ORDER <mã_đơn> <tùy_chỉnh>: Tạo đơn hàng mới
      • mã_đơn: chuỗi định dạng "Oxxx" (xxx là 3 chữ số)
      • tùy_chỉnh: các option cách nhau bởi dấu phẩy trong dấu ngoặc kép
        • "hot": thêm 5% giá
        • "sugar": thêm 2000đ
        • "milk": thêm 5000đ
    • ADD <mã_đơn> <mã_đồ_uống>: Thêm một đồ uống vào đơn hàng
      • mã_đơn: mã đơn hàng đã tạo
      • mã_đồ_uống: mã đồ uống định dạng "Dxxx"
    • TOTAL <mã_đơn>: In ra tổng tiền của đơn hàng
    • LIST: In ra danh sách đồ uống trong menu

OUTPUT FORMAT

  • Lệnh DRINK: In "Added to menu"
  • Lệnh ORDER: In "Order created"
  • Lệnh ADD: In "Item added"
  • Lệnh TOTAL: In "Total: X.Y" (X.Y là tổng tiền có 1 chữ số thập phân)
  • Lệnh LIST: In danh sách đồ uống theo định dạng:
    <mã_đồ_uống> | <loại> | <tên> | <giá>

Ví dụ

Input:

7
DRINK coffee "Espresso" 25000
DRINK tea "Green Tea" 20000
LIST
ORDER O001 "hot,sugar"
ADD O001 D001 
ADD O001 D002
TOTAL O001

Output:

Added to menu
Added to menu
D001 | coffee | Espresso | 25000
D002 | tea | Green Tea | 20000
Order created
Item added
Item added
Total: 49250.0

Giải thích

  • Hai đồ uống được thêm vào menu với mã tự động D001, D002
  • Lệnh LIST in ra toàn bộ menu
  • Đơn hàng O001 được tạo với tùy chỉnh hot (+5%) và sugar (+2000đ)
  • Thêm cả 2 đồ uống vào đơn
  • Tổng tiền = (25000 + 20000) * 1.05 + 2000 = 49750

Kiến thức cần nắm

  1. OOP với Python:
    • Abstract Class: Tạo class Beverage làm template
    • Inheritance: Coffee, Tea kế thừa từ Beverage
    • Encapsulation: Quản lý thuộc tính private
    • Polymorphism: Override phương thức tính giá
  2. String handling: Xử lý input/output theo định dạng
  3. Collections: Quản lý danh sách đồ uống và đơn hàng

Comments

There are no comments at the moment.

Zalo