boy in green shirt
Photo by CDC on Pexels.com

【Báo cáo Lớp học】 Giới thiệu về Phát triển Hệ thống Tuần 21 – Mở rộng với Kế thừa & Xây dựng giao diện Console!

Bài học Tuần 21 đã mở rộng hệ thống cho mượn sách của tuần trước bằng cách mở rộng chức năng với kế thừa và giới thiệu một giao diện menu trên console.


■ Giới thiệu của Giáo viên: “Một giao diện thân thiện thể hiện sự quan tâm đến người dùng”

Thầy Tanaka: “Không chỉ thêm tính năng là đủ; việc tạo một giao diện trực quan cho người dùng cũng quan trọng không kém. Lần này, chúng ta sẽ thêm loại sách mới thông qua kế thừa và làm gọn gàng màn hình thao tác.”


■ Bài tập ①: Tạo lớp ReferenceBook / Magazine

Đầu tiên, ta kế thừa từ lớp Book để thêm các loại sách có hạn chế sử dụng và quy tắc trả khác nhau.

from book import Book

class ReferenceBook(Book):
    def lend(self):
        # Sách tham khảo không thể được mượn
        print(f"{self.title} là sách tham khảo và không thể được mượn.")
        return False

class Magazine(Book):
    def __init__(self, title, author, issue):
        super().__init__(title, author)
        self.issue = issue
    
    def lend(self):
        # Chỉ số mới nhất của tạp chí có thể được mượn
        if self.is_available and self.issue == "Latest Issue":
            self.is_available = False
            return True
        print(f"{self.title} ({self.issue}) không thể được mượn.")
        return False

Học sinh A: “Thật thú vị khi xử lý sách tham khảo riêng biệt!”
Học sinh B: “Chỉ cho mượn số mới nhất của tạp chí thực sự giống như thư viện ngoài đời!”


■ Bài tập ②: Triển khai menu console đơn giản

Tiếp theo, ta tạo một menu UI dễ vận hành. Đã thêm các phương thức vào lớp Library để hiển thị tùy chọn trong vòng lặp.

def show_menu():
    print("\n=== Thư viện Menu ===")
    print("1. Tìm kiếm sách")
    print("2. Mượn sách")
    print("3. Trả sách")
    print("4. Thoát")

def run_console(library, member):
    while True:
        show_menu()
        choice = input("Vui lòng nhập số: ")
        if choice == "1":
            title = input("Tiêu đề cần tìm: ")
            results = library.find_book(title)
            print([b.title for b in results] or "Không tìm thấy sách phù hợp")
        elif choice == "2":
            title = input("Tiêu đề muốn mượn: ")
            results = library.find_book(title)
            if results and member.borrow(results[0]):
                print("Mượn thành công!")
            else:
                print("Mượn thất bại.")
        elif choice == "3":
            title = input("Tiêu đề muốn trả: ")
            book = next((b for b in member.borrowed if b.title == title), None)
            if book and member.give_back(book):
                print("Trả thành công!")
            else:
                print("Trả thất bại.")
        elif choice == "4":
            print("Cảm ơn đã sử dụng hệ thống!")
            break
        else:
            print("Nhập không hợp lệ. Vui lòng thử lại.")

Học sinh C: “Có menu thực sự làm nó giống một ứng dụng rồi!”
Học sinh D: “Xử lý lỗi nhập liệu khiến em yên tâm hơn nhiều!”


■ Giờ Coding Im Lặng: Tinh chỉnh UI và kiểm thử

Ở nửa sau buổi học, mọi người tinh chỉnh văn bản menu và xử lý lỗi. Họ kiểm thử nhiều lần trong môi trường riêng, tập trung vào cải thiện tính dễ sử dụng:

  • Menu đánh số rõ ràng
  • Thông điệp hướng dẫn rõ hơn khi nhập sai
  • Hiển thị cả tạp chí và sách tham khảo trong kết quả tìm kiếm

Học sinh E: “Thêm hướng dẫn rõ ràng giúp bớt nhầm lẫn hẳn!”
Học sinh F: “Thật hay khi sách tham khảo cũng xuất hiện trong danh sách.”


■ Lời kết của Giáo viên

“Kế thừa giúp tổ chức chức năng, và một giao diện tốt nâng cao khả năng sử dụng. Cân bằng giữa cấu trúc mã và trải nghiệm người dùng là chìa khóa. Những khái niệm hôm nay có thể áp dụng cho bất kỳ ứng dụng nào.”


■ Xem trước tuần tới: Chuẩn bị tích hợp API bên ngoài

Bắt đầu từ tuần tới, trước khi vào khóa học năm hai, chúng ta sẽ học cơ bản về tích hợp API bên ngoài đơn giản. Sẽ thử thách bằng cách kết nối tới dịch vụ bên ngoài như thông tin thời tiết và dữ liệu bản đồ!

Thông qua việc mở rộng với kế thừa và triển khai giao diện console, các sinh viên năm nhất đã trải nghiệm niềm vui và chiều sâu của việc viết “mã thực tiễn”.

By greeden

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)