Gambaran Umum Proyek
Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 45 dari 68.
Tantangan
MudahKamu akan membuat pemeriksa inventaris sederhana untuk membantu mengelola tingkat stok produk.
Siapkan dasar sistem manajemen inventarismu dengan membuat struktur data inti dan menampilkan data inventaris awal. Tantangan ini menetapkan struct Product dan map inventaris yang akan digunakan di seluruh proyek.
Kamu akan menerima dua input:
- String berisi informasi toko dengan format
"store_name,location"(misalnya,"TechStore,Downtown") - String berisi data produk awal dengan format
"product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3"(misalnya,"Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")
Tugasmu adalah:
- Buat struct
Productdengan dua field:Price(float64), harga produkQuantity(int), jumlah stok saat ini
- Parse input pertama dengan memisahkannya berdasarkan koma untuk mendapatkan nama toko dan lokasi
- Parse input kedua dengan memisahkannya berdasarkan koma untuk mendapatkan setiap entri produk
- Untuk setiap entri produk, pisahkan berdasarkan titik dua untuk mendapatkan nama produk, harga, dan jumlah
- Ubah string harga menjadi float64 dan string jumlah menjadi int
- Buat map bernama
inventorydengan nama produk (string) sebagai kunci dan structProductsebagai nilai - Isi map inventaris dengan data produk yang telah di-parse
- Tampilkan informasi toko:
"=== [store_name] Inventory System ===""Location: [location]""Inventory initialized with [number_of_products] products"
- Tampilkan inventaris saat ini berdasarkan urutan alfabet nama produk:
"Current Inventory:"- Untuk setiap produk:
"- [product_name]: $[price] (Stock: [quantity])"
- Hitung dan tampilkan statistik inventaris:
"Inventory Statistics:""Total Products: [total_number_of_products]""Total Items in Stock: [sum_of_all_quantities]""Total Inventory Value: $[sum_of_price_times_quantity_for_all_products]"
- Tampilkan status sistem:
"System Status: Ready""Inventory management system initialized successfully"
Gunakan package strings untuk memisahkan string input, package strconv untuk mengubah string menjadi angka, package fmt untuk output berformat, dan package sort untuk mengurutkan nama produk berdasarkan abjad. Format nilai total inventaris hingga 2 angka desimal. Tantangan ini menetapkan struktur data dasar yang akan dikembangkan dalam pelajaran berikutnya pada proyek manajemen inventaris.
Coba sendiri
package main
import (
"bufio"
"fmt"
"os"
"sort"
"strconv"
"strings"
)
// TODO: Definisikan struct Product di sini
func main() {
// Baca input menggunakan bufio.Scanner agar spasi ditangani dengan benar
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
storeInfo := scanner.Text()
scanner.Scan()
productData := scanner.Text()
// TODO: Tulis kodemu di bawah ini
// 1. Uraikan informasi toko (pisahkan berdasarkan koma, periksa panjangnya)
// 2. Uraikan data produk (pisahkan berdasarkan koma, lalu berdasarkan titik dua untuk setiap produk)
// 3. Buat map inventory
// 4. Ubah string ke tipe yang sesuai dan isi inventory
// 5. Tampilkan informasi toko
// 6. Tampilkan inventory saat ini (urutkan menurut abjad)
// 7. Hitung dan tampilkan statistik inventory
// 8. Tampilkan status sistem
}Semua pelajaran di Logika & Alur
1Alur Kontrol Lanjutan
switch dengan `fallthrough`Keluar dari Perulangan BersarangMelanjutkan Perulangan TertentuPernyataan `goto`Rangkuman, Kontrol Perulangan Lanjutan4Proyek: Daftar Tugas Sederhana
Menyiapkan ProyekMenambahkan Tugas2Struct dan Method
Mendefinisikan Method pada StructPenerima NilaiPenerima PointerMemilih PenerimaMethod vs FungsiRekap: Perilaku Struct5Map secara Mendalam
Map Berisi StructPointer sebagai Nilai MapMenguji Map NilMembandingkan MapRingkasan: Penghitung Frekuensi Kata8Proyek: Inventaris Sederhana
Gambaran Umum ProyekMemeriksa Stok3Interface (Dasar)
Apa Itu Interface?Mendefinisikan InterfaceMengimplementasikan InterfaceMenggunakan Tipe InterfaceInterface KosongType AssertionType SwitchRingkasan: Bentuk dan PerilakuLatihan sendiri: Compiler Go online