Tổng quan dự án
Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 28 trên 56.
Bạn sẽ xây dựng một chương trình quản lý thư viện nhỏ: một chương trình có menu để theo dõi sách và cho phép người dùng thêm, tìm kiếm, lọc sách cũng như đánh dấu sách đã đọc.
Mỗi cuốn sách là một hash có các khóa sau:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Bạn sẽ lưu tất cả sách trong một mảng có tên library và điều khiển toàn bộ chương trình bằng một loop do để in ra menu và đọc lựa chọn. Mỗi bài học sẽ thêm một tùy chọn vào menu:
- 1. Thêm sách
- 2. Tìm theo tiêu đề
- 3. Lọc theo thể loại
- 4. Đánh dấu sách là đã đọc
- 5. Thoát
Bài học đầu tiên này thiết lập thư viện trống, vòng lặp menu và tùy chọn thoát. Các tùy chọn khác sẽ bắt đầu dưới dạng những nhánh trống để bạn điền vào sau.
Thử thách
Người mớiKhởi tạo một mảng library rỗng, sau đó bắt đầu một loop do để:
- In menu (đúng định dạng bên dưới)
- Đọc lựa chọn của người dùng bằng
gets.chomp - Nếu lựa chọn là
"5", inGoodbye!rồi thoát khỏi vòng lặp
Menu phải trông chính xác như sau:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Dùng print cho lời nhắc Choose an option: để con trỏ vẫn ở cùng dòng.
Với đầu vào 5, đầu ra là:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Tự làm thử
# TODO: khởi tạo một mảng (array) thư viện rỗng
# TODO: dùng vòng lặp (loop) do, in ra menu, đọc lựa chọn, thoát khi chọn "5"
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng xử lý
1Tìm hiểu sâu về chuỗi
Tổng quan về phương thức chuỗiNội suy chuỗiDuyệt qua chuỗiTách và nối chuỗiÔn tập: Đan chuỗi4Khối lệnh, Proc và lambda
Khối lệnh là gì?do..end và dấu ngoặc nhọnTừ khóa yieldTham số của khối lệnhProc và lambdaÔn tập: bộ lặp tùy chỉnh7Hash, phần 2
Hash.new với giá trị mặc địnhLặp qua HashHash lồng nhauGộp và chuyển đổiÔn tập: Bộ đếm tần suất10Dự án: Hồ sơ học sinh
Tổng quan dự ánThêm học sinh2Phạm vi
Phạm vi là gì?Các phương thức của phạm viPhạm vi trong case / whenÔn tập: luyện tập với phạm vi5Sức mạnh của Enumerable
select và rejectNối chuỗi mapreduce / injectcount, all?, any?, none?group_by và partitionsort_by, min_by, max_byÔn tập: quy trình dữ liệu3Mảng 2 chiều
Kiến thức cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuDuyệt qua mảng 2 chiềuCác mẫu phổ biến với mảng 2 chiềuÔn tập: thao tác với ma trận6Dự án: Trình quản lý thư viện
Tổng quan dự ánThêm sáchTự luyện tập: Trình biên dịch Ruby online