[Buổi 31][Củng cố OOP nâng cao][HW] Bài 5: Demo Checklist


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Demo Checklist

Bối cảnh

Trước Demo Day, nhóm dùng một checklist nhỏ gồm số feature CORE đã hoàn tất, tổng CORE, số test pass, tổng test và số critical bug. Hệ thống chỉ in READY nếu toàn bộ CORE xong, toàn bộ test pass và critical bug bằng0. Homework Easy không thêm OOP mới; nó là gate thực dụng để nhắc rằng thiết kế tốt phải đi kèm trạng thái release rõ ràng.

Bài được giữ đơn giản để học viên có thể áp dụng trực tiếp cho Final Project B32.

B31 là phần tích hợp, nên bài toán cần thể hiện trách nhiệm giữa nhiều abstraction thay vì chỉ ghép cú pháp. Polymorphism chịu trách nhiệm thay behavior; template chịu trách nhiệm reuse theo type; exception chịu trách nhiệm recovery khi input/state bất hợp lệ. Core workflow phải tiếp tục giữ invariant dù một record hoặc command bị lỗi.

Yêu cầu

  1. Đọc coreDone/coreTotal, testsPass/testsTotal, criticalBugs.
  2. READY khi coreDone==coreTotal, testsPass==testsTotal và criticalBugs==0.
  3. Ngược lại NOT_READY.

Input

Năm số nguyên.

Output

READY hoặc NOT_READY.

Ràng buộc

Các số không âm, done≤total, pass≤total.

Ví dụ 1

Input

3 3 10 10 0

Output

READY

Giải thích

doneCore=3 đúng bằng totalCore3, passedTests=10 đúng total10, criticalBug=0. Cả ba điều kiện đều đúng nên gate in READY.

Mẫu này kiểm tra pipeline ở mức tích hợp: input đi qua validation, chọn runtime behavior, cập nhật aggregate rồi mới sinh output. Nếu một bước thất bại, fallback/ERROR phải đúng contract và các summary phía sau không được tính nhầm dữ liệu lỗi. Vì vậy trace mẫu chính là kiểm tra invariant xuyên suốt workflow.

Ví dụ 2

Input

2 3 10 10 0

Output

NOT_READY

Giải thích

doneCore=2 nhưng totalCore=3 nên còn một core feature chưa xong. Dù test đủ và bug0, điều kiện AND tổng thể fail, output NOT_READY.

Mẫu này kiểm tra pipeline ở mức tích hợp: input đi qua validation, chọn runtime behavior, cập nhật aggregate rồi mới sinh output. Nếu một bước thất bại, fallback/ERROR phải đúng contract và các summary phía sau không được tính nhầm dữ liệu lỗi. Vì vậy trace mẫu chính là kiểm tra invariant xuyên suốt workflow.

Thông tin học tập

  • Module: M08
  • Buổi: B31
  • Loại bài: HOMEWORK
  • Độ khó: Easy
  • Concepts: final design review, test plan, bug list, readiness
  • Giới hạn kiến thức: B01-B31
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo