إعداد المشروع
جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 33 من 65.
التحدي
سهلستقوم ببناء حاسبة بسيطة لعربة التسوق توضح كيفية عمل هياكل البيانات المختلفة معاً في تطبيق حقيقي.
قم بإنشاء برنامج يضع الأساس لنظام حاسبة عربة التسوق من خلال تهيئة هياكل البيانات الأساسية اللازمة لتطبيق التجارة الإلكترونية. يجب على برنامجك القيام بما يلي:
- قراءة مدخل نصي (string) يمثل اسم المتجر
- قراءة أزواج متعددة من المدخلات تمثل أسماء المنتجات وأسعارها (سينتهي الإدخال عندما تتلقى
"products_done") - إنشاء خريطة (Map) لتخزين المنتجات المتاحة مع أسمائها كمفاتيح (keys) وأسعارها كقيم (values)
- إنشاء قائمة (List) فارغة لتمثيل عربة التسوق
- عرض معلومات التهيئة الأولية والتحقق من تهيئة هياكل البيانات بشكل صحيح
- طباعة تقرير إعداد المتجر بالتنسيق الدقيق الموضح أدناه
على سبيل المثال، إذا كان اسم المتجر هو "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
1التعامل المتقدم مع القوائم
خصائص القائمة: first و lastحالة القائمة: isEmpty و isNotEmptyعكس القائمةالإضافة إلى القائمة: insertالحذف من القائمة: removeWhereالبحث في القائمة: indexOfفرز القائمةخلط القائمةملخص - منظم القوائم4معالجة الـ Map المتقدمة
التكرار عبر الـ Mapالتحقق من المفاتيح والقيمخصائص الـ Map: keys و valuesإضافة مشروطة: putIfAbsentإزالة العناصر من الـ Mapالـ Maps المتداخلةمراجعة - تحديث المخزون2عمليات القوائم الوظيفية
التحويل باستخدام 'map'التصفية باستخدام 'where'استخدام '.toList()'التحقق من الشروط باستخدام 'any'الشروط باستخدام 'every'البحث باستخدام 'firstWhere'مراجعة - تصفية البيانات5مشروع: حاسبة عربة التسوق
إعداد المشروعإضافة العناصر إلى العربة3المجموعات
ما هي المجموعة؟إنشاء مجموعةالإضافة والحذف من المجموعاتالتحقق من وجود عناصر في المجموعةتحويل قائمة إلى مجموعةاتحاد المجموعاتتقاطع المجموعاتالفرق بين المجموعاتمراجعة - قائمة ضيوف فريدة