Menu
Coddy logo textTech

Proje Kurulumu

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

challenge icon

Görev

Kolay

Gerçek bir uygulamada farklı veri yapılarının birlikte nasıl çalıştığını gösteren basit bir alışveriş sepeti hesaplayıcısı oluşturacaksın.

Bir e-ticaret uygulaması için gereken temel veri yapılarını başlatarak alışveriş sepeti hesaplayıcı sisteminin temelini oluşturan bir program yaz. Programın şunları yapmalıdır:

  1. Mağaza adını temsil eden bir dize girdisini oku
  2. Ürün adlarını ve fiyatlarını temsil eden birden fazla girdi çifti oku ( "products_done" alınca girdi sona erecek)
  3. Mevcut ürünleri, anahtar olarak adlarını ve değer olarak fiyatlarını kullanarak depolamak için bir Map oluştur
  4. Alışveriş sepetini temsil etmek için boş bir List oluştur
  5. Başlangıç kurulum bilgilerini görüntüle ve veri yapılarının doğru şekilde başlatıldığını doğrula
  6. Mağaza kurulum raporunu aşağıda gösterilen tam biçimde yazdır

Örneğin, mağaza adı "Fresh Market" ise ve ürünler arasında fiyatı "Apple" olan 1.50, fiyatı "Banana" olan 0.80, fiyatı "Orange" olan 2.00 ve fiyatı "Milk" olan 3.25 bulunuyorsa programın şu çıktıyı vermelidir:

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

Mağaza adı "Tech Store" ise ve ürünler arasında fiyatı "Laptop" olan 999.99, fiyatı "Mouse" olan 25.50 ve fiyatı "Keyboard" olan 75.00 bulunuyorsa programın şu çıktıyı vermelidir:

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

Mağaza adı "Book Corner" ise ve ürünler arasında fiyatı "Novel" olan 12.99, fiyatı "Magazine" olan 4.50, fiyatı "Textbook" olan 89.00, fiyatı "Comic" olan 3.99 ve fiyatı "Journal" olan 15.75 bulunuyorsa programın şu çıktıyı vermelidir:

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

Programın String anahtarlara (ürün adları) ve double değerlere (fiyatlar) sahip bir Map ile alışveriş sepeti için boş bir String List oluşturması gerekir. Ürün map'indeki tüm fiyatları karşılaştırarak en pahalı ve en ucuz ürünleri bul. Tüm fiyatların toplamını ürün sayısına bölerek ortalama fiyatı hesapla. Görüntülemek üzere ortalamayı 2 ondalık basamağa yuvarla. Girdi biçimi şöyle olacaktır: mağaza adı, ardından ürün adları ve fiyatları (double değerlerine dönüştürülmesi gereken dizeler olarak) sırayla gelecek ve "products_done" ile sona erecektir.

Kendin dene

import 'dart:io';

void main() {
  // Mağaza adını oku
  String? storeName = stdin.readLineSync();
  
  // Veri yapılarını başlat
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // "products_done" gelene kadar ürünleri oku
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "products_done") {
      break;
    }
    String productName = input!;
    String? priceInput = stdin.readLineSync();
    double price = double.parse(priceInput!);
    
    // Ürünü haritaya ekle
    products[productName] = price;
  }
  
  // YAPILACAK: İstatistikleri hesaplamak ve raporu oluşturmak için kodunuzu aşağıya yazın
  
  // Mağaza kurulum raporunu yazdır
  // Çıktınız örneklerde gösterilen tam formatla eşleşmelidir
}

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

Kendi başına pratik yap: Online Dart derleyicisi