Menambahkan Barang ke Keranjang
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 34 dari 65.
Tantangan
MudahBuat program yang menerapkan fungsi untuk menambahkan barang ke keranjang belanja. Programmu harus menggunakan Map katalog produk yang ditentukan langsung dalam kode dan List keranjang belanja yang kosong, lalu memproses input barang dari pengguna.
Tentukan katalog produk berikut langsung di kodemu:
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
};Programmu harus:
- Menggunakan Map katalog produk yang ditentukan di atas dan List keranjang belanja yang kosong
- Membaca beberapa input string yang mewakili barang yang ingin ditambahkan pelanggan ke keranjang mereka (input akan berakhir saat kamu menerima
"cart_done") - Untuk setiap barang, memeriksa apakah barang tersebut ada di katalog produk menggunakan
containsKey() - Jika barang tersebut ada, menambahkannya ke List keranjang belanja menggunakan method
add() - Jika barang tersebut tidak ada, melewatinya dan melanjutkan pemrosesan
- Melacak penambahan yang berhasil dan percobaan yang gagal
- Menampilkan laporan pengelolaan keranjang dengan format persis seperti di bawah ini
Contohnya, jika pelanggan ingin menambahkan "Apple", "Bread", "Banana", "Apple", "Juice", programmu harus menghasilkan output:
Shopping Cart Operations:
Adding 'Apple': Item added to cart successfully
Adding 'Bread': Item not available in store
Adding 'Banana': Item added to cart successfully
Adding 'Apple': Item added to cart successfully
Adding 'Juice': Item not available in store
Cart Contents: [Apple, Banana, Apple]
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 2
Cart Status: Ready for checkoutJika pelanggan ingin menambahkan "Mouse", "Monitor", "Keyboard", "Mouse", programmu harus menghasilkan output:
Shopping Cart Operations:
Adding 'Mouse': Item added to cart successfully
Adding 'Monitor': Item not available in store
Adding 'Keyboard': Item added to cart successfully
Adding 'Mouse': Item added to cart successfully
Cart Contents: [Mouse, Keyboard, Mouse]
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 1
Cart Status: Ready for checkoutJika pelanggan ingin menambahkan "Novel", "Dictionary", "Magazine", "Novel", "Comic", "Textbook", programmu harus menghasilkan output:
Shopping Cart Operations:
Adding 'Novel': Item added to cart successfully
Adding 'Dictionary': Item not available in store
Adding 'Magazine': Item added to cart successfully
Adding 'Novel': Item added to cart successfully
Adding 'Comic': Item not available in store
Adding 'Textbook': Item added to cart successfully
Cart Contents: [Novel, Magazine, Novel, Textbook]
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 2
Cart Status: Ready for checkoutProgrammu harus menggunakan containsKey() untuk memastikan bahwa setiap barang ada di katalog produk sebelum menambahkannya ke keranjang. Gunakan method add() untuk menambahkan barang yang valid ke List keranjang belanja. Hitung jumlah total barang di keranjang menggunakan property length, dan tentukan produk unik dengan mengonversi keranjang menjadi Set lalu memeriksa length-nya. Lacak penambahan yang berhasil dan barang yang tidak ditemukan di katalog. Format inputnya adalah: nama barang yang akan ditambahkan ke keranjang, diakhiri dengan "cart_done".
Coba sendiri
import 'dart:io';
void main() {
// Read store name
String? storeName = stdin.readLineSync();
// Initialize data structures
Map<String, double> products = {};
List<String> shoppingCart = [];
// Read products until "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!);
// Add product to map
products[productName] = price;
}
// Calculate statistics
double totalPrice = 0;
double maxPrice = 0;
double minPrice = double.infinity;
String mostExpensiveItem = '';
String cheapestItem = '';
for (String productName in products.keys) {
double price = products[productName]!;
totalPrice += price;
if (price > maxPrice) {
maxPrice = price;
mostExpensiveItem = productName;
}
if (price < minPrice) {
minPrice = price;
cheapestItem = productName;
}
}
double averagePrice = totalPrice / products.length;
// Print the store setup report
print('Store: $storeName');
print('Product Catalog Setup:');
print('Available Products: $products');
print('Shopping Cart Initialized: $shoppingCart');
print('System Status:');
print('Total products available: ${products.length}');
print('Cart status: Empty');
print('Most expensive item: $mostExpensiveItem (\$${maxPrice.toStringAsFixed(2)})');
print('Cheapest item: $cheapestItem (\$${minPrice.toStringAsFixed(2)})');
print('Average product price: \$${averagePrice.toStringAsFixed(2)}');
print('Setup Status: Shopping cart system ready for customers');
}Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online