X

Chuyên đề Tin 12 Kết nối tri thức

Tiếp tục với ứng dụng quản lí danh bạ, chức năng hiển thị danh sách liên hệ


Tiếp tục với ứng dụng quản lí danh bạ, chức năng hiển thị danh sách liên hệ theo thứ tự từ điển. Do hạn chế của màn hình, mỗi trang chỉ hiển thị được 20 liên hệ. Hãy thêm tính năng in các liên hệ ở trang n bất kì do người dùng nhập vào, điều kiện n nguyên, lớn hơn 0 và nhỏ hơn hoặc bằng tổng số trang có thể hiển thị.

Giải Chuyên đề Tin 12 Bài 10: Thực hành tổng hợp với cây tìm kiếm nhị phân - Kết nối tri thức

Luyện tập 2 trang 48 Chuyên đề Tin học 12: Tiếp tục với ứng dụng quản lí danh bạ, chức năng hiển thị danh sách liên hệ theo thứ tự từ điển. Do hạn chế của màn hình, mỗi trang chỉ hiển thị được 20 liên hệ. Hãy thêm tính năng in các liên hệ ở trang n bất kì do người dùng nhập vào, điều kiện n nguyên, lớn hơn 0 và nhỏ hơn hoặc bằng tổng số trang có thể hiển thị.

Lời giải:

Để thực hiện chức năng in các liên hệ ở trang n bất kỳ trong danh sách liên hệ theo thứ tự từ điển, chúng ta cần tính toán và hiển thị chỉ một phần của danh sách liên hệ tùy thuộc vào trang được yêu cầu. Dưới đây là một cách để thực hiện điều này:

class PhoneBook:

    def __init__(self):

        self.contacts = []

        self.page_size = 20

    def insert(self, contact):

        self.contacts.append(contact)

        self.contacts.sort(key=lambda x: x.name)

    def display_contacts(self, page_number):

        total_pages = (len(self.contacts) + self.page_size - 1) // self.page_size

        if page_number < 1 or page_number > total_pages:

            print("Invalid page number. Please enter a number between 1 and {}.".format(total_pages))

            return

        start_index = (page_number - 1) * self.page_size

        end_index = min(start_index + self.page_size, len(self.contacts))  

        print("Contacts - Page", page_number, "/", total_pages)

        for i in range(start_index, end_index):

            print("Name:", self.contacts[i].name, "- Phone:", self.contacts[i].phone_number)

# Sử dụng

phone_book = PhoneBook()

# Thêm các liên hệ

phone_book.insert(Contact("Anh An", "0901.000.159"))

phone_book.insert(Contact("Bố", "0983 000 131"))

phone_book.insert(Contact("Mẹ", "0962 000 481"))

phone_book.insert(Contact("ICTLab Station", "024 124 000 313"))

phone_book.insert(Contact("John Doe", "123456789"))

phone_book.insert(Contact("Alice Smith", "987654321"))

phone_book.insert(Contact("Bob Johnson", "456789123"))

phone_book.insert(Contact("Anh, Nguyễn Văn Tùng", "0982 000 134"))

# Hiển thị danh sách liên hệ theo trang

page_number = int(input("Enter page number: "))

phone_book.display_contacts(page_number)

Lời giải bài tập Chuyên đề Tin 12 Bài 10: Thực hành tổng hợp với cây tìm kiếm nhị phân hay, ngắn gọn khác:

Xem thêm lời giải bài tập Chuyên đề học tập Tin học 12 Kết nối tri thức hay, ngắn gọn khác: