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: Quản lý môn học và điểm số với encapsulation

    📖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 Subject quản lý điểm môn học.

    1. Lớp Subject có private fields:
      • code (String), credit (int), score (double, thang 10).
    2. Constructor Subject(code, credit, score) (giả sử input hợp lệ).
    3. Getter getCode(), getCredit(), getScore().
    4. Phương thức double gradePoint() chuyển điểm thang 10 → thang 4 theo bảng:
      • score ≥ 8.5 → 4.0
      • 7.0 ≤ score < 8.5 → 3.0
      • 5.5 ≤ score < 7.0 → 2.0
      • 4.0 ≤ score < 5.5 → 1.0
      • score < 4.0 → 0.0
    5. Trong main, đọc N môn. Mỗi dòng: <code> <credit> <score>. In <code> <gradePoint> (1 chữ số thập phân) theo thứ tự nhập.
    6. Dòng cuối in GPA <giá trị> (2 chữ số thập phân) — trung bình cộng có trọng số theo credit: GPA = (Σ credit × gradePoint) / (Σ credit)
    • Định dạng đầu vào:
      • Dòng 1: N (1 ≤ N ≤ 50)
      • N dòng: <code> <credit> <score>
    • Ràng buộc đầu vào:
      • 1 ≤ credit ≤ 10
      • 0 ≤ score ≤ 10
    • Định dạng đầu ra:
      • N dòng <code> <gradePoint> (1 chữ số thập phân)
      • Dòng cuối GPA <giá trị> (2 chữ số thập phân)

    Ví dụ:

    Đầu vào:

    3
    IT01 3 9.0
    IT02 2 6.5
    IT03 3 7.5
    

    Đầu ra:

    IT01 4.0
    IT02 2.0
    IT03 3.0
    GPA 3.13
    

    Giải thích:

    9.0 → 4.0. 6.5 → 2.0. 7.5 → 3.0. GPA = (3×4 + 2×2 + 3×3) / (3+2+3) = (12+4+9)/8 = 25/8 = 3.125 → 3.13.

    Đầu vào:

    2
    A 3 4.0
    B 3 3.9
    

    Đầu ra:

    A 1.0
    B 0.0
    GPA 0.50
    

    Giải thích:

    Biên: 4.0 → 1.0. 3.9 < 4.0 → 0.0. GPA = (3×1 + 3×0)/6 = 0.5.

    Đầu vào:

    1
    X 5 10.0
    

    Đầu ra:

    X 4.0
    GPA 4.00
    

    Đầu vào:

    4
    m1 2 5.5
    m2 2 5.4
    m3 2 8.5
    m4 2 8.4
    

    Đầu ra:

    m1 2.0
    m2 1.0
    m3 4.0
    m4 3.0
    GPA 2.50
    

    Giải thích:

    Test các ngưỡng biên 5.5 và 8.5.

    Chủ đề

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

    Đang tải editor...