Menu
CoddyTech

Chức năng tìm kiếm

Thuộc phần Lập trình hướng đối tượng trong hành trình Dart của Coddy. Bài học 104 trên 110.

challenge icon

Thử thách

Dễ

Trong bài học trước, bạn đã xây dựng lớp Library có chức năng mượn và trả sách. Bây giờ, hãy thêm khả năng tìm kiếm để người dùng có thể tìm sách trong bộ sưu tập của thư viện.

Bạn sẽ bổ sung ba phương thức tìm kiếm mới vào lớp Library để giúp người dùng tìm sách:

  • book.dart: Giữ nguyên lớp Book hiện có.
  • user.dart: Giữ nguyên lớp User hiện có.
  • library.dart: Thêm ba phương thức tìm kiếm vào lớp Library:
    • searchByTitle(String query) - trả về một List<Book> chứa tất cả sách có tiêu đề chứa chuỗi truy vấn, không phân biệt chữ hoa chữ thường
    • searchByAuthor(String query) - trả về một List<Book> chứa tất cả sách có tên tác giả chứa chuỗi truy vấn, không phân biệt chữ hoa chữ thường
    • getAvailableBooks() - trả về một List<Book> chỉ chứa những sách hiện có thể cho mượn
  • main.dart: Minh họa chức năng tìm kiếm. Tạo một Library và thêm bốn cuốn sách:
    • 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
    • 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
    • 978-0-13-235088-4, Clean Code, Robert Martin
    • 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
    Đăng ký một người dùng (U001, Alice) và để người đó mượn cuốn sách đầu tiên. Sau đó:
    1. Tìm sách có pragmatic trong tiêu đề và in ra Title search 'pragmatic': X found, trong đó X là số lượng
    2. Tìm sách của tác giả david và in ra Author search 'david': X found
    3. Lấy danh sách sách hiện có thể cho mượn và in ra Available books: X
    4. In từng cuốn sách hiện có thể cho mượn trên một dòng riêng

Đầu ra mong đợi:

U001 borrowed "The Pragmatic Programmer"
Title search 'pragmatic': 2 found
Author search 'david': 1 found
Available books: 3
[978-0-596-51774-8] JavaScript: The Good Parts by Douglas Crockford
[978-0-13-235088-4] Clean Code by Robert Martin
[978-0-20-161622-4] The Pragmatic Programmer by Andrew Hunt

Tự làm thử

import 'book.dart';
import 'user.dart';
import 'library.dart';

void main() {
  // Tạo một Library
  Library library = Library();
  
  // TODO: Thêm bốn cuốn sách vào thư viện:
  // 1. 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
  // 2. 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
  // 3. 978-0-13-235088-4, Clean Code, Robert Martin
  // 4. 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
  
  // TODO: Đăng ký một người dùng (U001, Alice)
  
  // TODO: Cho người dùng mượn cuốn sách đầu tiên
  
  // TODO: Tìm sách có 'pragmatic' trong tên sách
  // In ra: Title search 'pragmatic': X được tìm thấy
  
  // TODO: Tìm sách của tác giả 'david'
  // In ra: Author search 'david': X được tìm thấy
  
  // TODO: Lấy danh sách sách hiện có và in ra: Available books: X
  
  // TODO: In mỗi cuốn sách hiện có trên một dòng riêng
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Dart online