CSharp

Đề thi: Nền tảng và Lập trình hướng đối tượng với C#

Ngày thi: 17/4/2026

Thời gian: từ 17/4/2026 22:00 đến 18/4/2026 23:59:59

*** Điểm trừ: Bài làm giống nhau hoặc copy từ internet***

Nộp bài: Nén tất cả các file .cs vào chung một thư mục đặt theo HoTen.zip hoặc HoTen.rar rồi gửi vào link sau: https://forms.gle/dHQCUvqUpsBS7Ddh7

Cupcake Machine

Cho mô hình UML như hình sau

Cupcake Machine

Yêu cầu:

Tạo class CupcakeMachine đại diện cho một máy bán bánh cupcake tự động. Các đối tượng của CupcakeMachine được tạo ra thông qua một hàm khởi tạo với 2 tham số.

Lớp CupcakeMachine chứa một phương thức TakeOrder, phương thức này dùng để xác định xem một đơn đặt cupcake có thể được xử lý hay không. Một đơn hàng có thể được xử lý nếu số cupcake hiện có trong máy lớn hơn hoặc bằng số lượng cupcake được yêu cầu trong đơn.

Một đơn đặt hàng được biểu diễn bởi một tham số số nguyên (uint) truyền vào phương thức TakeOrder. Giả sử tất cả các giá trị truyền vào đều là số dương.

Bảng dưới đây minh họa một chuỗi thực thi mẫu của chương trình và kết quả tương ứng. Đoạn mã thực thi này nằm trong một lớp khác, không phải lớp CupcakeMachine.

Câu lệnh (Statement)Giá trị trả vềGiải thích (Explanation)
var c1 = new CupcakeMachine(10, 1.75);Đối tượng c1 được tạo với 10 cupcake và giá mỗi chiếc là 1.75 đô.
info = c1.takeOrder(2);"Order number 1, cost $3.5"Khách đặt 2 cupcake, tổng tiền là 2 × 1.75 = 3.5 đô.
Máy còn lại 8 cupcake.
info = c1.takeOrder(3);"Order number 2, cost $5.25"Khách đặt 3 cupcake, tổng tiền là 3 × 1.75 = 5.25 đô.
Máy còn lại 5 cupcake.
info = c1.takeOrder(10);"Order cannot be filled"Khách cố đặt 10 cupcake nhưng máy chỉ còn 5, không đủ, không xử lý đơn.
info = c1.takeOrder(1);"Order number 3, cost $1.75"Khách đặt 1 cupcake, tổng tiền 1.75 đô.
Máy còn lại 4 cupcake.
var c2 = new CupcakeMachine(10, 1.5);Đối tượng c2 được tạo với 10 cupcake và giá mỗi chiếc là 1.50 đô.
info = c2.takeOrder(10);"Order number 1, cost $15.0"Khách đặt 10 cupcake, tổng tiền là 10 × 1.50 = 15.0 đô.
Máy hiện còn lại 0 cupcake.

Hãy viết đầy đủ lớp CupcakeMachine. Phần cài đặt của bạn phải đáp ứng tất cả các yêu cầu (đặc tả) và tuân theo các ví dụ đã được minh họa trong bảng.