Menu
Coddy logo textTech

Temel Kişi Listesi

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

challenge icon

Görev

Kolay

Yapıların, dilimlerin ve işlevlerin iletişim bilgilerini düzenlemek ve görüntülemek için nasıl birlikte çalıştığını gösteren bir kişi yönetim sistemi oluşturun. Bu meydan okuma, özel veri yapıları tanımlama, veri koleksiyonlarını yönetme ve bu verileri işlemek için işlevler uygulama becerinizi test edecektir.

İki girdi alacaksınız:

  • "name1:phone1:email1,name2:phone2:email2,name3:phone3:email3" biçiminde kişi bilgilerini içeren bir dize (ör. "Alice Johnson:555-0123:alice@email.com,Bob Smith:555-0456:bob@email.com,Carol Davis:555-0789:carol@email.com")
  • "name:phone:email" biçiminde eklenecek yeni kişiyi içeren bir dize (ör. "David Wilson:555-0321:david@email.com")

Göreviniz:

  1. Üç dize alanına sahip bir Contact struct'ı tanımlayın: Name, Phone ve Email
  2. Bir addContact struct dilimi ve yeni bir Contact alan, ardından kişinin eklendiği yeni bir dilim döndüren Contact adlı bir işlev oluşturun
  3. Bir displayContacts struct dilimi alan ve her kişinin bilgilerini yazdıran Contact adlı bir işlev oluşturun
  4. Bireysel kişi kayıtlarını elde etmek için ilk girdiyi virgüllere göre ayırarak ayrıştırın
  5. Her kişi kaydı için ad, telefon ve e-postayı çıkarmak üzere iki nokta üst üste işaretlerine göre ayırın
  6. Ayrıştırılan verilerden Contact struct'ları oluşturun ve bunları bir dilimde saklayın
  7. Yeni bir kişi oluşturmak için ikinci girdiyi iki nokta üst üste işaretlerine göre ayırarak ayrıştırın
  8. Uygulama başlığını görüntüleyin: "=== CONTACT MANAGEMENT SYSTEM ==="
  9. displayContacts başlığını kullanarak başlangıçtaki kişileri "Initial contact list:" işlevinizle görüntüleyin
  10. Eklenecek yeni kişiyi görüntüleyin: "Adding new contact: [name] ([phone]) - [email]"
  11. Yeni kişiyi dilime eklemek için addContact işlevinizi kullanın
  12. displayContacts başlığını kullanarak güncellenmiş kişileri "Updated contact list:" işlevinizle görüntüleyin
  13. Kişi istatistiklerini görüntüleyin:
    • "=== CONTACT STATISTICS ==="
    • "Total contacts: [number_of_contacts]"
    • "Contacts added this session: 1"
  14. Tamamlanma mesajını görüntüleyin: "Contact management operations completed successfully"

displayContacts işlevi her kişiyi şu biçimde yazdırmalıdır: "[index]. [name] - Phone: [phone], Email: [email]"; burada index 1'den başlar.

Girdi dizelerini ayırmak için strings paketini, biçimlendirilmiş çıktı için fmt paketini kullanın. Bu meydan okuma, veri düzenleme için struct'ların, koleksiyonlar için dilimlerin ve kod organizasyonu için işlevlerin nasıl birleştirileceğini gösterir; bunlar Go programlama boyunca kullanılan temel kalıplardır.

Kendin dene

package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

// TODO: Kişi (Contact) yapınızı burada tanımlayın

// TODO: addContact fonksiyonunu burada uygulayın

// TODO: displayContacts fonksiyonunu burada uygulayın

func main() {
	// İsimlerdeki boşlukları düzgün işlemek için bufio.Scanner kullanarak girdiyi okuyun
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	contactsInput := scanner.Text()
	
	scanner.Scan()
	newContactInput := scanner.Text()
	
	// TODO: Kodunuzu aşağıya yazın
	// Kişi girdisini ayrıştırın ve Contact yapılarını oluşturun
	// Erişmeden önce dilim (slice) parçalarının yeterli elemana sahip olup olmadığını kontrol etmeyi unutmayın
	// Yeni kişi girdisini ayrıştırın
	// Uygulama başlığını görüntüleyin
	// Başlangıçtaki kişileri görüntüleyin
	// Yeni kişiyi ekleyin
	// Güncellenmiş kişileri görüntüleyin
	// İstatistikleri görüntüleyin
	// Tamamlanma mesajını görüntüleyin
}

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi