Rangkuman: Kelola Gudang
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 54 dari 66.
Tantangan
SedangBuat sistem manajemen inventaris gudang menggunakan dictionary. Tugasmu adalah mengimplementasikan method ManageWarehouse yang melakukan operasi berikut:
- Pertama, cetak semua item dan jumlahnya dengan format: "Item: [item], Quantity: [quantity]"
- Periksa apakah "apples" ada dalam inventaris, lalu cetak: "Apples in stock: [True/False]"
- Tambahkan 10 ke jumlah "bananas" jika item tersebut ada (ubah nilai secara langsung)
- Hapus item apa pun yang jumlahnya 0
- Cetak jumlah total item yang berbeda di gudang
- Terakhir, kembalikan dictionary inventaris yang sudah diperbarui
Coba sendiri
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
class Program
{
public static Dictionary<string, int> ManageWarehouse(Dictionary<string, int> inventory)
{
// Tulis kodemu di sini
return inventory;
}
static void Main(string[] args)
{
Dictionary<string, int> inventory = new Dictionary<string, int>();
// Baca baris pertama untuk memeriksa apakah formatnya JSON
string firstLine = Console.ReadLine();
// Periksa apakah input berformat JSON
if (firstLine != null && firstLine.StartsWith("{") && firstLine.EndsWith("}"))
{
try
{
// Proses input JSON
string jsonContent = firstLine.Substring(1, firstLine.Length - 2);
// Pisahkan berdasarkan koma yang berada di luar tanda kutip
string pattern = @",(?=(?:[^""]*""[^""]*"")*[^""]*$)";
string[] entries = Regex.Split(jsonContent, pattern);
foreach (string entry in entries)
{
// Ambil kunci dan nilai menggunakan regex
Match match = Regex.Match(entry, @"""([^""]+)""\s*:\s*(\d+)");
if (match.Success)
{
string keyMatch = match.Groups[1].Value;
int valueMatch = int.Parse(match.Groups[2].Value);
inventory.Add(keyMatch, valueMatch);
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing JSON input: {ex.Message}");
return;
}
}
else
{
// Process traditional input format
int n = int.Parse(firstLine);
for (int i = 0; i < n; i++)
{
string[] parts = Console.ReadLine().Split(':');
inventory.Add(parts[0], int.Parse(parts[1]));
}
}
Dictionary<string, int> result = ManageWarehouse(inventory);
// Print updated inventory
Console.WriteLine("Updated Inventory:");
foreach (var item in result)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
}
}Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan NullLatihan sendiri: Compiler C# online