Menu
Coddy logo textTech

הגדרת הפרויקט

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 33 מתוך 65.

challenge icon

אתגר

קל

תבנו מחשבון פשוט לעגלת קניות שמדגים כיצד מבני נתונים שונים פועלים יחד ביישום אמיתי.

צרו תוכנית שמכינה את התשתית למערכת מחשבון של עגלת קניות באמצעות אתחול מבני הנתונים החיוניים הנדרשים ליישום מסחר אלקטרוני. התוכנית שלכם צריכה:

  1. לקרוא קלט מסוג מחרוזת שמייצג את שם החנות
  2. לקרוא כמה זוגות של קלטים שמייצגים שמות מוצרים ואת מחיריהם (הקלט יסתיים כשתקבלו "products_done")
  3. ליצור Map לאחסון המוצרים הזמינים, כאשר שמותיהם הם המפתחות והמחירים הם הערכים
  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 עבור עגלת הקניות. מצאו את הפריטים היקרים והזולים ביותר באמצעות השוואת כל המחירים במפת המוצרים. חשבו את המחיר הממוצע על ידי חלוקת סכום כל המחירים במספר המוצרים. עגלו את הממוצע ל-2 ספרות אחרי הנקודה העשרונית להצגה. פורמט הקלט יהיה: שם החנות, ולאחר מכן שמות מוצרים ומחירים לסירוגין (כמחרוזות שיש להמיר למספרי 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: כתבו את הקוד שלכם למטה כדי לחשב נתונים סטטיסטיים ולהפיק את הדוח
  
  // הדפיסו את דוח הגדרת החנות
  // הפלט שלכם צריך להתאים בדיוק לפורמט המוצג בדוגמאות
}

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Dart אונליין