Menu
CoddyTech

Ôn tập: Tạo Struct Book

Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 26 trên 66.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận được bốn đầu vào: tên sách, tên tác giả, năm xuất bản (dưới dạng số nguyên) và số trang (dưới dạng số nguyên). Định nghĩa một struct Book có bốn trường: title kiểu String, author kiểu String, year kiểu i32 và pages kiểu i32. Tạo một instance của struct này bằng các giá trị đầu vào và in thông tin sách.

Yêu cầu:

  • Định nghĩa một struct Book có các trường: title: String, author: String, year: i32 và pages: i32
  • Đọc đầu vào thứ nhất làm tên sách
  • Đọc đầu vào thứ hai làm tên tác giả
  • Đọc đầu vào thứ ba và chuyển đổi thành i32 để làm năm xuất bản
  • Đọc đầu vào thứ tư và chuyển đổi thành i32 để làm số trang
  • Tạo một instance của struct Book với các giá trị này
  • In thông tin sách theo đúng định dạng bên dưới

Đầu vào:

  • Dòng thứ nhất: Tên sách (ví dụ: The Rust Programming Language)
  • Dòng thứ hai: Tên tác giả (ví dụ: Steve Klabnik)
  • Dòng thứ ba: Năm xuất bản dưới dạng số nguyên (ví dụ: 2018)
  • Dòng thứ tư: Số trang dưới dạng số nguyên (ví dụ: 552)

Đầu ra:

  • Dòng thứ nhất: Book: [title]
  • Dòng thứ hai: Author: [author]
  • Dòng thứ ba: Year: [year]
  • Dòng thứ tư: Pages: [pages]

Tự làm thử

use std::io;

// TODO: Định nghĩa struct Book tại đây với các trường: title, author, year và pages

fn main() {
    // Đọc tên sách
    let mut title = String::new();
    io::stdin().read_line(&mut title).expect("Failed to read line");
    let title = title.trim().to_string();
    
    // Đọc tên tác giả
    let mut author = String::new();
    io::stdin().read_line(&mut author).expect("Failed to read line");
    let author = author.trim().to_string();
    
    // Đọc năm xuất bản
    let mut year_input = String::new();
    io::stdin().read_line(&mut year_input).expect("Failed to read line");
    let year: i32 = year_input.trim().parse().expect("Failed to parse year");
    
    // Đọc số trang
    let mut pages_input = String::new();
    io::stdin().read_line(&mut pages_input).expect("Failed to read line");
    let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
    
    // TODO: Tạo một instance của struct Book từ các giá trị đầu vào
    
    // TODO: In ra thông tin sách theo định dạng yêu cầu
}

Tất cả bài học trong Logic và luồng chương trình

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