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

إعداد المشروع

جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 33 من 65.

challenge icon

التحدي

سهل

ستقوم ببناء حاسبة بسيطة لعربة التسوق توضح كيفية عمل هياكل البيانات المختلفة معاً في تطبيق حقيقي.

قم بإنشاء برنامج يضع الأساس لنظام حاسبة عربة التسوق من خلال تهيئة هياكل البيانات الأساسية اللازمة لتطبيق التجارة الإلكترونية. يجب على برنامجك القيام بما يلي:

  1. قراءة مدخل نصي (string) يمثل اسم المتجر
  2. قراءة أزواج متعددة من المدخلات تمثل أسماء المنتجات وأسعارها (سينتهي الإدخال عندما تتلقى "products_done")
  3. إنشاء خريطة (Map) لتخزين المنتجات المتاحة مع أسمائها كمفاتيح (keys) وأسعارها كقيم (values)
  4. إنشاء قائمة (List) فارغة لتمثيل عربة التسوق
  5. عرض معلومات التهيئة الأولية والتحقق من تهيئة هياكل البيانات بشكل صحيح
  6. طباعة تقرير إعداد المتجر بالتنسيق الدقيق الموضح أدناه

على سبيل المثال، إذا كان اسم المتجر هو "Fresh Market" والمنتجات تشمل "Apple" بسعر 1.50، و "Banana" بسعر 0.80، و "Orange" بسعر 2.00، و "Milk" بسعر 3.25، فيجب أن يخرج برنامجك ما يلي:

Store: Fresh Market
Product Catalog Setup:
Available Products: {Apple: 1.5, Banana: 0.8, Orange: 2.0, Milk: 3.25}
Shopping Cart Initialized: []
System Status:
Total products available: 4
Cart status: Empty
Most expensive item: Milk ($3.25)
Cheapest item: Banana ($0.80)
Average product price: $1.84
Setup Status: Shopping cart system ready for customers

إذا كان اسم المتجر هو "Tech Store" والمنتجات تشمل "Laptop" بسعر 999.99، و "Mouse" بسعر 25.50، و "Keyboard" بسعر 75.00، فيجب أن يخرج برنامجك ما يلي:

Store: Tech Store
Product Catalog Setup:
Available Products: {Laptop: 999.99, Mouse: 25.5, Keyboard: 75.0}
Shopping Cart Initialized: []
System Status:
Total products available: 3
Cart status: Empty
Most expensive item: Laptop ($999.99)
Cheapest item: Mouse ($25.50)
Average product price: $366.83
Setup Status: Shopping cart system ready for customers

إذا كان اسم المتجر هو "Book Corner" والمنتجات تشمل "Novel" بسعر 12.99، و "Magazine" بسعر 4.50، و "Textbook" بسعر 89.00، و "Comic" بسعر 3.99، و "Journal" بسعر 15.75، فيجب أن يخرج برنامجك ما يلي:

Store: Book Corner
Product Catalog Setup:
Available Products: {Novel: 12.99, Magazine: 4.5, Textbook: 89.0, Comic: 3.99, Journal: 15.75}
Shopping Cart Initialized: []
System Status:
Total products available: 5
Cart status: Empty
Most expensive item: Textbook ($89.00)
Cheapest item: Comic ($3.99)
Average product price: $25.25
Setup Status: Shopping cart system ready for customers

يجب أن يقوم برنامجك بإنشاء Map بمفاتيح من نوع String (أسماء المنتجات) وقيم من نوع double (الأسعار)، و List فارغة من نوع String لعربة التسوق. ابحث عن أغلى وأرخص العناصر من خلال مقارنة جميع الأسعار في خريطة المنتجات. احسب متوسط السعر بقسمة مجموع كل الأسعار على عدد المنتجات. قم بتقريب المتوسط إلى منزلتين عشريتين للعرض. سيكون تنسيق الإدخال: اسم المتجر، ثم أسعار وأسماء المنتجات بالتناوب (كسلاسل نصية تحتاج إلى تحويلها إلى أرقام عشرية double)، وتنتهي بـ "products_done".

جرّب بنفسك

import 'dart:io';

void main() {
  // قراءة اسم المتجر
  String? storeName = stdin.readLineSync();
  
  // تهيئة هياكل البيانات
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // قراءة المنتجات حتى "products_done"
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "products_done") {
      break;
    }
    String productName = input!;
    String? priceInput = stdin.readLineSync();
    double price = double.parse(priceInput!);
    
    // إضافة المنتج إلى الخريطة
    products[productName] = price;
  }
  
  // TODO: اكتب كودك أدناه لحساب الإحصائيات وإنشاء التقرير
  
  // طباعة تقرير إعداد المتجر
  // يجب أن يتطابق مخرجك مع التنسيق الدقيق الموضح في الأمثلة
}

جميع دروس Logic & Flow