Proje Kurulumu
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 33 / 65.
Görev
KolayGerç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:
- Mağaza adını temsil eden bir dize girdisini oku
- Ürün adlarını ve fiyatlarını temsil eden birden fazla girdi çifti oku (
"products_done"alınca girdi sona erecek) - Mevcut ürünleri, anahtar olarak adlarını ve değer olarak fiyatlarını kullanarak depolamak için bir Map oluştur
- Alışveriş sepetini temsil etmek için boş bir List oluştur
- Başlangıç kurulum bilgilerini görüntüle ve veri yapılarının doğru şekilde başlatıldığını doğrula
- 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 customersMağ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 customersMağ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 customersProgramı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
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli ListesiKendi başına pratik yap: Online Dart derleyicisi