Menu
Coddy logo textTech

Projeye Genel Bakış

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 45 / 68.

challenge icon

Görev

Kolay

Ürün stok seviyelerini yönetmenize yardımcı olacak basit bir envanter denetleyicisi oluşturmak üzeresiniz.

Temel veri yapılarını oluşturarak ve başlangıç envanter verilerini görüntüleyerek envanter yönetim sisteminizin temelini oluşturun. Bu görev, proje boyunca kullanılacak Product struct'ını ve envanter map'ini oluşturur.

İki girdi alacaksınız:

  • Şu formatta mağaza bilgilerini içeren bir dize: "store_name,location" (örneğin, "TechStore,Downtown")
  • Şu formatta başlangıç ürün verilerini içeren bir dize: "product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3" (örneğin, "Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")

Göreviniz:

  1. İki alana sahip bir Product struct'ı oluşturun:
    • Price (float64) - ürünün fiyatı
    • Quantity (int) - mevcut stok miktarı
  2. Mağaza adını ve konumunu elde etmek için ilk girdiyi virgüllere göre ayırarak ayrıştırın
  3. Tek tek ürün girdilerini elde etmek için ikinci girdiyi virgüllere göre ayırarak ayrıştırın
  4. Her ürün girdisi için ürün adını, fiyatı ve miktarı elde etmek üzere iki nokta üst üste işaretlerine göre ayırın
  5. Fiyat dizesini float64'e, miktar dizesini int'e dönüştürün
  6. Anahtarları ürün adları (string), değerleri ise inventory struct'ları olan Product adlı bir map oluşturun
  7. Ayrıştırılan ürün verileriyle inventory map'ini doldurun
  8. Mağaza bilgilerini görüntüleyin:
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. Mevcut envanteri ürün adına göre alfabetik sırada görüntüleyin:
    • "Current Inventory:"
    • Her ürün için: "- [product_name]: $[price] (Stock: [quantity])"
  10. Envanter istatistiklerini hesaplayıp 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]"
  11. 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 2 ondalık basamakla biçimlendirin. Bu görev, envanter yönetim projesinin sonraki derslerinde genişletilecek temel veri yapılarının temelini 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

Kendi başına pratik yap: Online Go derleyicisi