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

İletişim bilgilerini düzenlemek ve görüntülemek için struct'ların, slice'ların ve fonksiyonların 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 fonksiyonlar uygulama yeteneğinizi test edecektir.

İki girdi alacaksınız:

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

Göreviniz şunları yapmaktır:

  1. Üç dize alanına sahip bir Contact struct'ı tanımlayın: Name, Phone ve Email
  2. Bir Contact struct slice'ı ve yeni bir Contact alan, ardından kişinin eklendiği yeni bir slice döndüren addContact adında bir fonksiyon oluşturun
  3. Bir Contact struct slice'ı alan ve her bir kişinin bilgisini yazdıran displayContacts adında bir fonksiyon oluşturun
  4. Bireysel kişi girişlerini elde etmek için ilk girdiyi virgüllere göre ayırarak ayrıştırın
  5. Her kişi girişi için isim, telefon ve e-postayı çıkarmak üzere iki nokta üst üste işaretine göre ayırın
  6. Ayrıştırılan verilerden Contact struct'ları oluşturun ve bunları bir slice içinde saklayın
  7. Yeni bir kişi oluşturmak için ikinci girdiyi iki nokta üst üste işaretine göre ayırarak ayrıştırın
  8. Uygulama başlığını görüntüleyin: "=== CONTACT MANAGEMENT SYSTEM ==="
  9. displayContacts fonksiyonunuzu kullanarak "Initial contact list:" başlığıyla başlangıçtaki kişileri görüntüleyin
  10. Eklenen yeni kişiyi görüntüleyin: "Adding new contact: [name] ([phone]) - [email]"
  11. Yeni kişiyi slice'a eklemek için addContact fonksiyonunuzu kullanın
  12. displayContacts fonksiyonunuzu kullanarak "Updated contact list:" başlığıyla güncellenmiş kişileri 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 fonksiyonu her kişiyi şu formatta yazdırmalıdır: "[index]. [name] - Phone: [phone], Email: [email]" (burada dizin 1'den başlar).

Girdi dizelerini ayırmak için strings paketini ve formatlı çıktı için fmt paketini kullanın. Bu meydan okuma, veri organizasyonu için struct'ları, koleksiyonlar için slice'ları ve kod organizasyonu için fonksiyonları nasıl birleştireceğinizi gösterir - bunlar Go programlamasında yaygın olarak 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