Projeye Genel Bakış
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 45 / 68.
Görev
KolayÜrün stok seviyelerini yönetmenize yardımcı olacak basit bir envanter kontrolcüsü oluşturmak üzeresiniz.
Temel veri yapılarını oluşturarak ve başlangıç envanter verilerini görüntüleyerek envanter yönetim sisteminizin temelini atın. Bu görev, proje boyunca kullanılacak olan Product yapısını (struct) ve envanter haritasını (map) oluşturur.
İki girdi alacaksınız:
"store_name,location"formatında mağaza bilgilerini içeren bir dize (örneğin,"TechStore,Downtown")"product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3"formatında başlangıç ürün verilerini içeren bir dize (örneğin,"Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")
Göreviniz şunları yapmaktır:
- İki alana sahip bir
Productyapısı (struct) oluşturun:Price(float64) - ürünün fiyatıQuantity(int) - mevcut stok miktarı
- Mağaza adını ve konumunu almak için ilk girdiyi virgüllere göre ayırarak ayrıştırın
- Bireysel ürün girişlerini almak için ikinci girdiyi virgüllere göre ayırarak ayrıştırın
- Her ürün girişi için, ürün adını, fiyatını ve miktarını almak üzere iki nokta üst üste işaretine göre ayırın
- Fiyat dizesini float64'e ve miktar dizesini int'e dönüştürün
- Anahtarların ürün adları (dizeler) ve değerlerin
Productyapıları olduğuinventoryadında bir harita (map) oluşturun - Envanter haritasını ayrıştırılmış ürün verileriyle doldurun
- Mağaza bilgilerini görüntüleyin:
"=== [store_name] Inventory System ===""Location: [location]""Inventory initialized with [number_of_products] products"
- Mevcut envanteri ürün adına göre alfabetik sırayla görüntüleyin:
"Current Inventory:"- Her ürün için:
"- [product_name]: $[price] (Stock: [quantity])"
- Envanter istatistiklerini hesaplayın ve görüntüleyin:
"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]"
- Sistem durumunu görüntüleyin:
"System Status: Ready""Inventory management system initialized successfully"
Girdi dizelerini ayırmak için strings paketini, dizeleri sayılara dönüştürmek için strconv paketini, biçimlendirilmiş çıktı için fmt paketini ve ürün adlarını alfabetik olarak sıralamak için sort paketini kullanın. Toplam envanter değerini virgülden sonra 2 basamak olacak şekilde biçimlendirin. Bu görev, envanter yönetimi projesinin sonraki derslerinde genişletilecek olan temel veri yapılarını oluşturur.
Kendin dene
package main
import (
"bufio"
"fmt"
"os"
"sort"
"strconv"
"strings"
)
// TODO: Product yapısını (struct) burada tanımlayın
func main() {
// Boşlukları düzgün işlemek için bufio.Scanner kullanarak girdiyi okuyun
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
storeInfo := scanner.Text()
scanner.Scan()
productData := scanner.Text()
// TODO: Kodunuzu aşağıya yazın
// 1. Mağaza bilgilerini ayrıştırın (virgülle ayırın, uzunluğu kontrol edin)
// 2. Ürün verilerini ayrıştırın (virgülle ayırın, ardından her ürün için iki nokta üst üste ile ayırın)
// 3. Envanter haritası (map) oluşturun
// 4. Dizeleri uygun türlere dönüştürün ve envanteri doldurun
// 5. Mağaza bilgilerini görüntüleyin
// 6. Mevcut envanteri görüntüleyin (alfabetik olarak sıralanmış)
// 7. Envanter istatistiklerini hesaplayın ve görüntüleyin
// 8. Sistem durumunu görüntüleyin
}Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı8Proje: Basit Envanter
Projeye Genel BakışStok Kontrolü3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve Davranışlar