Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - إنشاء Book Struct

جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 26 من 66.

challenge icon

التحدي

سهل

ستتلقى أربعة مدخلات: عنوان الكتاب، واسم المؤلف، وسنة النشر (كعدد صحيح)، وعدد الصفحات (كعدد صحيح). قم بتعريف هيكل Book بأربعة حقول: title من نوع String، و author من نوع String، و year من نوع i32، و pages من نوع i32. قم بإنشاء مثيل (instance) لهذا الهيكل باستخدام قيم المدخلات واطبع معلومات الكتاب.

المتطلبات:

  • قم بتعريف هيكل Book بالحقول: title: String، و author: String، و year: i32، و pages: i32
  • اقرأ المدخل الأول كعنوان للكتاب
  • اقرأ المدخل الثاني كاسم للمؤلف
  • اقرأ المدخل الثالث وقم بتحويله إلى i32 لسنة النشر
  • اقرأ المدخل الرابع وقم بتحويله إلى i32 لعدد الصفحات
  • قم بإنشاء مثيل من هيكل Book بهذه القيم
  • اطبع معلومات الكتاب بالتنسيق الموضح أدناه تماماً

المدخلات:

  • السطر الأول: عنوان الكتاب (مثلاً: The Rust Programming Language)
  • السطر الثاني: اسم المؤلف (مثلاً: Steve Klabnik)
  • السطر الثالث: سنة النشر كعدد صحيح (مثلاً: 2018)
  • السطر الرابع: عدد الصفحات كعدد صحيح (مثلاً: 552)

المخرجات:

  • السطر الأول: Book: [title]
  • السطر الثاني: Author: [author]
  • السطر الثالث: Year: [year]
  • السطر الرابع: Pages: [pages]

جرّب بنفسك

use std::io;

// TODO: قم بتعريف هيكل Book هنا مع الحقول التالية: title، author، year، و pages

fn main() {
    // قراءة عنوان الكتاب
    let mut title = String::new();
    io::stdin().read_line(&mut title).expect("Failed to read line");
    let title = title.trim().to_string();
    
    // قراءة اسم المؤلف
    let mut author = String::new();
    io::stdin().read_line(&mut author).expect("Failed to read line");
    let author = author.trim().to_string();
    
    // قراءة سنة النشر
    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");
    
    // قراءة عدد الصفحات
    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: قم بإنشاء مثيل من هيكل Book باستخدام القيم المدخلة
    
    // TODO: قم بطباعة معلومات الكتاب بالتنسيق المطلوب
}

جميع دروس Logic & Flow