Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: Encapsulation hồ sơ học sinh với validation getter/setter

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 5: Lập trình hướng đối tượng (1): lớp và đối tượng — khóa Lập trình Java

    Xây dựng lớp Pupil (học sinh phổ thông) với encapsulation đầy đủ.

    1. Lớp Pupil có private fields:
      • name (String), age (int), score (double)
    2. Cung cấp getter/setter cho từng field:
      • setName(String s): chỉ chấp nhận khi s không rỗng. Nếu không hợp lệ, giữ nguyên giá trị cũ (mặc định "unknown").
      • setAge(int a): chỉ chấp nhận khi 6 ≤ a ≤ 18. Nếu không hợp lệ, giữ nguyên giá trị cũ (mặc định 6).
      • setScore(double s): chỉ chấp nhận khi 0 ≤ s ≤ 10. Nếu không hợp lệ, giữ nguyên (mặc định 0).
    3. Constructor mặc định Pupil() set các giá trị mặc định trên.
    4. Trong main, đọc Q (số thao tác). Mỗi thao tác trên cùng 1 dòng:
      • SETN <name> → setName
      • SETA <age> → setAge
      • SETS <score> → setScore
      • SHOW → in <name> <age> <score> (score 2 chữ số thập phân) — đây là trạng thái hiện tại.
    5. Chỉ có 1 đối tượng Pupil duy nhất xuyên suốt.
    • Định dạng đầu vào:
      • Dòng 1: Q (1 ≤ Q ≤ 200)
      • Q dòng thao tác.
    • Ràng buộc đầu vào:
      • age là số nguyên, có thể bất kỳ.
      • score là số thực, có thể bất kỳ.
    • Định dạng đầu ra:

      Mỗi thao tác SHOW in 1 dòng <name> <age> <score> (score 2 chữ số thập phân).

    Ví dụ:

    Đầu vào:

    6
    SETN An
    SETA 15
    SETS 8.5
    SHOW
    SETA 25
    SHOW
    

    Đầu ra:

    An 15 8.50
    An 15 8.50
    

    Giải thích:

    Set An, age=15, score=8.5 → SHOW 'An 15 8.50'. Set age=25 không hợp lệ (>18) → giữ nguyên 15. SHOW lần 2 vẫn 'An 15 8.50'.

    Đầu vào:

    3
    SHOW
    SETS -1
    SHOW
    

    Đầu ra:

    unknown 6 0.00
    unknown 6 0.00
    

    Giải thích:

    Mặc định 'unknown 6 0.00'. Set score=-1 không hợp lệ → vẫn 0. SHOW lần 2 vẫn in 'unknown 6 0.00'.

    Đầu vào:

    6
    SETN Binh
    SETA 10
    SETS 7.5
    SHOW
    SETN x
    SHOW
    

    Đầu ra:

    Binh 10 7.50
    x 10 7.50
    

    Đầu vào:

    4
    SETA 18
    SETA 19
    SETS 10
    SHOW
    

    Đầu ra:

    unknown 18 10.00
    

    Chủ đề

    🧩 Lập trình hướng đối tượng☕ JavaJavaJava: OOPTất cả môn học

    Đang tải editor...