Menu
Coddy logo textTech

Toplam Tutarı Hesaplama

Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 35 / 65.

challenge icon

Görev

Kolay

Alışveriş sepetindeki tüm öğelerin toplam maliyetini hesaplama işlevini uygulayarak alışveriş sepeti hesaplayıcı projesine devam eden bir program oluştur. Önceki dersteki sepet yönetimini temel alarak programın şunları yapması gerekir:

  1. Önceki kurulumdan mevcut ürün kataloğu Map'ini ve doldurulmuş alışveriş sepeti List'ini kullanma
  2. Müşterilerin sepetlerine eklemek istediği öğeleri temsil eden birden fazla string girdisi okuma (girdi, "cart_done" alınca sona erecek)
  3. Her öğe için containsKey() kullanarak ürün kataloğunda bulunup bulunmadığını kontrol etme
  4. Öğe mevcutsa add() metodunu kullanarak alışveriş sepeti List'ine ekleme
  5. Sepet listesi üzerinde yineleme yaparak ve her öğenin fiyatını ürün map'inde arayarak toplam maliyeti hesaplama
  6. Son toplam maliyeti elde etmek için tüm fiyatları toplama
  7. Sepet hesaplama raporunu aşağıda gösterilen tam formatta görüntüleme

Örneğin mağazada "Apple" ürünü 1.50, "Banana" ürünü 0.80, "Orange" ürünü 2.00, "Milk" ürünü 3.25 fiyatındaysa ve müşteriler sepete "Apple", "Banana", "Apple", "Milk" eklemek istiyorsa programınız şunu çıktılar:

Shopping Cart Operations:
Adding 'Apple': Item added to cart successfully
Adding 'Banana': Item added to cart successfully
Adding 'Apple': Item added to cart successfully
Adding 'Milk': Item added to cart successfully
Cart Contents: [Apple, Banana, Apple, Milk]
Cost Calculation:
Apple: $1.50
Banana: $0.80
Apple: $1.50
Milk: $3.25
Total Cost: $7.05
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 0
Cart Status: Ready for checkout

Mağazada "Laptop" ürünü 999.99, "Mouse" ürünü 25.50, "Keyboard" ürünü 75.00 fiyatındaysa ve müşteriler sepete "Mouse", "Keyboard", "Mouse", "Monitor" eklemek istiyorsa programınız şunu çıktılar:

Shopping Cart Operations:
Adding 'Mouse': Item added to cart successfully
Adding 'Keyboard': Item added to cart successfully
Adding 'Mouse': Item added to cart successfully
Adding 'Monitor': Item not available in store
Cart Contents: [Mouse, Keyboard, Mouse]
Cost Calculation:
Mouse: $25.50
Keyboard: $75.00
Mouse: $25.50
Total Cost: $126.00
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 1
Cart Status: Ready for checkout

Mağazada "Novel" ürünü 12.99, "Magazine" ürünü 4.50, "Textbook" ürünü 89.00 fiyatındaysa ve müşteriler sepete "Novel", "Magazine", "Novel", "Textbook", "Dictionary" eklemek istiyorsa programınız şunu çıktılar:

Shopping Cart Operations:
Adding 'Novel': Item added to cart successfully
Adding 'Magazine': Item added to cart successfully
Adding 'Novel': Item added to cart successfully
Adding 'Textbook': Item added to cart successfully
Adding 'Dictionary': Item not available in store
Cart Contents: [Novel, Magazine, Novel, Textbook]
Cost Calculation:
Novel: $12.99
Magazine: $4.50
Novel: $12.99
Textbook: $89.00
Total Cost: $119.48
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 1
Cart Status: Ready for checkout

Programınız alışveriş sepeti listesindeki her öğe üzerinde yineleme yapmalı, ürün kataloğu map'inde fiyatını aramalı ve bu fiyatı devam eden toplama eklemelidir. Her sepet öğesini işlemek ve toplam maliyeti biriktirmek için bir döngü kullanın. Maliyet hesaplama aşamasında her öğenin kendi fiyatını görüntüleyin. Tüm fiyatları tam olarak 2 ondalık basamak gösterecek şekilde biçimlendirin. Girdi formatı şu şekilde olacaktır: sepete eklenecek öğe adları ve ardından "cart_done".

Kendin dene

import 'dart:io';

void main() {
  // Product catalog with items and prices
  Map<String, double> productCatalog = {
    'Apple': 1.50,
    'Banana': 0.80,
    'Orange': 2.00,
    'Milk': 3.25,
    'Laptop': 999.99,
    'Mouse': 25.50,
    'Keyboard': 75.00,
    'Novel': 12.99,
    'Magazine': 4.50,
    'Textbook': 89.00
  };
  
  // Shopping cart to store selected items
  List<String> shoppingCart = [];
  
  // Counters for tracking operations
  int successfulAdditions = 0;
  int itemsNotFound = 0;
  
  print("Shopping Cart Operations:");
  
  // Read items until "cart_done" is received
  String? item;
  while ((item = stdin.readLineSync()) != "cart_done") {
    if (item != null) {
      if (productCatalog.containsKey(item)) {
        shoppingCart.add(item);
        successfulAdditions++;
        print("Adding '$item': Item added to cart successfully");
      } else {
        itemsNotFound++;
        print("Adding '$item': Item not available in store");
      }
    }
  }
  
  // Display cart contents
  print("Cart Contents: $shoppingCart");
  
  // Calculate unique products
  Set<String> uniqueProducts = shoppingCart.toSet();
  
  // Display cart summary
  print("Cart Summary:");
  print("Total items in cart: ${shoppingCart.length}");
  print("Unique products in cart: ${uniqueProducts.length}");
  print("Items successfully added: $successfulAdditions");
  print("Items not found: $itemsNotFound");
  print("Cart Status: Ready for checkout");
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi