Ringkasan: Pembaruan Inventaris
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 32 dari 65.
Tantangan
MudahBuat program yang mengelola sistem inventaris gudang dengan melacak tingkat stok produk, memeriksa barang yang sudah ada, menambahkan produk baru dengan aman, dan memperbarui jumlahnya. Programmu harus:
- Membaca input string yang mewakili nama gudang
- Membaca beberapa pasangan input yang mewakili nama produk dan jumlah stok saat ini (input akan berakhir saat kamu menerima
"inventory_done") - Membaca input string yang mewakili produk yang akan diperiksa keberadaannya
- Membaca input string yang mewakili produk baru yang akan ditambahkan dengan stok default
- Membaca input string yang mewakili produk yang akan diisi ulang stoknya
- Membaca input string yang mewakili jumlah tambahan untuk ditambahkan ke produk yang stoknya diisi ulang
- Membuat Map untuk menyimpan nama produk sebagai kunci dan jumlah stoknya sebagai nilai
- Menggunakan
containsKey()untuk memeriksa apakah produk yang ditentukan ada dalam inventaris - Menggunakan
putIfAbsent()untuk menambahkan produk baru dengan stok default sebanyak 50 unit - Memperbarui jumlah stok produk yang diisi ulang dengan menambahkan jumlah tambahan
- Mencetak laporan pengelolaan inventaris dengan format persis seperti yang ditunjukkan di bawah
Misalnya, jika nama gudangnya adalah "Central Warehouse", inventarisnya mencakup "Laptops" dengan 25 unit, "Mice" dengan 150 unit, dan "Keyboards" dengan 75 unit, produk yang akan diperiksa adalah "Laptops", produk baru yang akan ditambahkan adalah "Monitors", produk yang akan diisi ulang stoknya adalah "Mice", dan jumlah tambahannya adalah 30, programmu harus menghasilkan output:
Warehouse: Central Warehouse
Initial Inventory: {Laptops: 25, Mice: 150, Keyboards: 75}
Inventory Operations:
Checking for 'Laptops': Product found in inventory
Adding 'Monitors': New product added with default stock 50
Restocking 'Mice': Updated quantity from 150 to 180
Final Inventory: {Laptops: 25, Mice: 180, Keyboards: 75, Monitors: 50}
Inventory Summary:
Total products: 4
Total stock units: 330
Low stock items (below 30): 1
Products restocked: 1
Status: Inventory management completedJika nama gudangnya adalah "North Storage", inventarisnya mencakup "Tablets" dengan 40 unit dan "Headphones" dengan 80 unit, produk yang akan diperiksa adalah "Smartphones", produk baru yang akan ditambahkan adalah "Tablets", produk yang akan diisi ulang stoknya adalah "Headphones", dan jumlah tambahannya adalah 20, programmu harus menghasilkan output:
Warehouse: North Storage
Initial Inventory: {Tablets: 40, Headphones: 80}
Inventory Operations:
Checking for 'Smartphones': Product not found in inventory
Adding 'Tablets': Product already exists, keeping stock 40
Restocking 'Headphones': Updated quantity from 80 to 100
Final Inventory: {Tablets: 40, Headphones: 100}
Inventory Summary:
Total products: 2
Total stock units: 140
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completedJika nama gudangnya adalah "South Depot", inventarisnya mencakup "Printers" dengan 15 unit, "Scanners" dengan 35 unit, dan "Cables" dengan 200 unit, produk yang akan diperiksa adalah "Scanners", produk baru yang akan ditambahkan adalah "Webcams", produk yang akan diisi ulang stoknya adalah "Printers", dan jumlah tambahannya adalah 45, programmu harus menghasilkan output:
Warehouse: South Depot
Initial Inventory: {Printers: 15, Scanners: 35, Cables: 200}
Inventory Operations:
Checking for 'Scanners': Product found in inventory
Adding 'Webcams': New product added with default stock 50
Restocking 'Printers': Updated quantity from 15 to 60
Final Inventory: {Printers: 60, Scanners: 35, Cables: 200, Webcams: 50}
Inventory Summary:
Total products: 4
Total stock units: 345
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completedProgrammu harus menggunakan containsKey() untuk memastikan apakah produk tersebut ada dalam inventaris, putIfAbsent() untuk menambahkan produk baru dengan aman dan stok default sebanyak 50 unit, serta memperbarui nilai Map secara langsung untuk menambah jumlah stok. Hitung barang dengan stok rendah sebagai barang yang jumlahnya di bawah 30 unit. Hitung total unit stok dengan menjumlahkan semua jumlah dalam inventaris akhir. Format inputnya adalah: nama gudang, lalu nama produk dan jumlah stok secara bergantian (sebagai string yang perlu dikonversi menjadi bilangan bulat), diakhiri dengan "inventory_done", lalu produk yang akan diperiksa, produk baru yang akan ditambahkan, produk yang akan diisi ulang stoknya, dan jumlah tambahan.
Coba sendiri
import 'dart:io';
void main() {
// Baca nama gudang
String? warehouseName = stdin.readLineSync();
// Baca barang inventaris sampai "inventory_done"
Map<String, int> inventory = {};
while (true) {
String? input = stdin.readLineSync();
if (input == "inventory_done") break;
String productName = input!;
String? quantityStr = stdin.readLineSync();
int quantity = int.parse(quantityStr!);
inventory[productName] = quantity;
}
// Baca produk yang akan diperiksa
String? productToCheck = stdin.readLineSync();
// Baca produk baru yang akan ditambahkan
String? newProduct = stdin.readLineSync();
// Baca produk yang akan ditambah stoknya
String? productToRestock = stdin.readLineSync();
// Baca jumlah tambahan
String? additionalQuantityStr = stdin.readLineSync();
int additionalQuantity = int.parse(additionalQuantityStr!);
// TODO: Tulis kodemu di bawah ini
// Gunakan containsKey() untuk memeriksa apakah produk tersedia
// Gunakan putIfAbsent() untuk menambahkan produk baru dengan stok awal 50
// Perbarui jumlah stok dan hitung statistik inventaris
// Cetak laporan pengelolaan inventaris
print("Warehouse: $warehouseName");
// Tambahkan pernyataan output-mu di sini
}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