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 nasıl birlikte çalıştığını gösteren basit bir alışveriş sepeti hesaplayıcısı oluşturacaksınız.

Bir e-ticaret uygulaması için gereken temel veri yapılarını başlatarak, bir alışveriş sepeti hesaplama sisteminin temelini kuran bir program oluşturun. Programınız şunları yapmalıdır:

  1. Mağaza adını temsil eden bir dize (string) girdisi okuyun
  2. Ürün adlarını ve fiyatlarını temsil eden birden fazla girdi çifti okuyun (girdi "products_done" değerini aldığınızda sona erecektir)
  3. Mevcut ürünleri, anahtar (key) olarak adları ve değer (value) olarak fiyatları ile saklamak için bir Map oluşturun
  4. Alışveriş sepetini temsil etmek için boş bir List oluşturun
  5. Başlangıç kurulum bilgilerini görüntüleyin ve veri yapılarının düzgün şekilde başlatıldığını doğrulayın
  6. Mağaza kurulum raporunu aşağıda gösterilen tam formatta yazdırın

Örneğin, mağaza adı "Fresh Market" ise ve ürünler 1.50 fiyatıyla "Apple", 0.80 fiyatıyla "Banana", 2.00 fiyatıyla "Orange", 3.25 fiyatıyla "Milk" içeriyorsa, programınız ş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

Eğer mağaza adı "Tech Store" ise ve ürünler 999.99 fiyatıyla "Laptop", 25.50 fiyatıyla "Mouse", 75.00 fiyatıyla "Keyboard" içeriyorsa, programınız ş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

Eğer mağaza adı "Book Corner" ise ve ürünler 12.99 fiyatıyla "Novel", 4.50 fiyatıyla "Magazine", 89.00 fiyatıyla "Textbook", 3.99 fiyatıyla "Comic", 15.75 fiyatıyla "Journal" içeriyorsa, programınız ş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ız String anahtarlı (ürün adları) ve double değerli (fiyatlar) bir Map ve alışveriş sepeti için boş bir String Listesi oluşturmalıdır. Ürün haritasındaki tüm fiyatları karşılaştırarak en pahalı ve en ucuz ürünleri bulun. Tüm fiyatların toplamını ürün sayısına bölerek ortalama fiyatı hesaplayın. Görüntüleme için ortalamayı 2 ondalık basamağa yuvarlayın. Giriş formatı şu şekilde olacaktır: mağaza adı, ardından dönüşümlü olarak ürün adları ve fiyatlar (double'a dönüştürülmesi gereken dizeler olarak), "products_done" ile biter.

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