Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

قائمة جهات اتصال أساسية

جزء من قسم Logic & Flow في رحلة GO على Coddy — الدرس 66 من 68.

challenge icon

التحدي

سهل

قم بإنشاء نظام لإدارة جهات الاتصال يوضح كيفية عمل الهياكل (structs)، والشرائح (slices)، والوظائف (functions) معاً لتنظيم وعرض معلومات الاتصال. سيختبر هذا التحدي قدرتك على تحديد هياكل بيانات مخصصة، وإدارة مجموعات من البيانات، وتنفيذ وظائف لمعالجة تلك البيانات.

ستتلقى مدخلين:

  • سلسلة نصية تحتوي على معلومات جهات الاتصال بالتنسيق "name1:phone1:email1,name2:phone2:email2,name3:phone3:email3" (على سبيل المثال، "Alice Johnson:555-0123:alice@email.com,Bob Smith:555-0456:bob@email.com,Carol Davis:555-0789:carol@email.com")
  • سلسلة نصية تحتوي على جهة اتصال جديدة لإضافتها بالتنسيق "name:phone:email" (على سبيل المثال، "David Wilson:555-0321:david@email.com")

مهمتك هي:

  1. تحديد هيكل Contact بثلاثة حقول نصية: Name، و Phone، و Email
  2. إنشاء وظيفة تسمى addContact تأخذ شريحة من هياكل Contact وجهة اتصال Contact جديدة، ثم تعيد شريحة جديدة مع إضافة جهة الاتصال
  3. إنشاء وظيفة تسمى displayContacts تأخذ شريحة من هياكل Contact وتطبع معلومات كل جهة اتصال
  4. تحليل المدخل الأول عن طريق التقسيم عند الفواصل للحصول على إدخالات جهات الاتصال الفردية
  5. لكل إدخال جهة اتصال، قم بالتقسيم عند النقطتين الرأسيتين لاستخراج الاسم والهاتف والبريد الإلكتروني
  6. إنشاء هياكل Contact من البيانات التي تم تحليلها وتخزينها في شريحة
  7. تحليل المدخل الثاني عن طريق التقسيم عند النقطتين الرأسيتين لإنشاء جهة اتصال جديدة
  8. عرض رأس التطبيق: "=== CONTACT MANAGEMENT SYSTEM ==="
  9. عرض جهات الاتصال الأولية باستخدام وظيفة displayContacts الخاصة بك مع الرأس: "Initial contact list:"
  10. عرض جهة الاتصال الجديدة التي يتم إضافتها: "Adding new contact: [name] ([phone]) - [email]"
  11. استخدم وظيفة addContact لإضافة جهة الاتصال الجديدة إلى الشريحة
  12. عرض جهات الاتصال المحدثة باستخدام وظيفة displayContacts الخاصة بك مع الرأس: "Updated contact list:"
  13. عرض إحصائيات جهات الاتصال:
    • "=== CONTACT STATISTICS ==="
    • "Total contacts: [number_of_contacts]"
    • "Contacts added this session: 1"
  14. عرض رسالة الإكمال: "Contact management operations completed successfully"

يجب أن تقوم وظيفة displayContacts بطباعة كل جهة اتصال بالتنسيق: "[index]. [name] - Phone: [phone], Email: [email]" حيث يبدأ الفهرس (index) من 1.

استخدم حزمة strings لتقسيم سلاسل الإدخال وحزمة fmt للإخراج المنسق. يوضح هذا التحدي كيفية الجمع بين الهياكل لتنظيم البيانات، والشرائح للمجموعات، والوظائف لتنظيم الكود - وهي أنماط أساسية مستخدمة في برمجة Go.

جرّب بنفسك

package main

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

// TODO: قم بتعريف هيكل Contact الخاص بك هنا

// TODO: قم بتنفيذ دالة addContact هنا

// TODO: قم بتنفيذ دالة displayContacts هنا

func main() {
	// قراءة المدخلات باستخدام bufio.Scanner للتعامل مع المسافات في الأسماء بشكل صحيح
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	contactsInput := scanner.Text()
	
	scanner.Scan()
	newContactInput := scanner.Text()
	
	// TODO: اكتب الكود الخاص بك أدناه
	// تحليل مدخلات جهات الاتصال وإنشاء هياكل Contact
	// تذكر التحقق مما إذا كانت شريحة الأجزاء تحتوي على عناصر كافية قبل الوصول إليها
	// تحليل مدخلات جهة الاتصال الجديدة
	// عرض ترويسة التطبيق
	// عرض جهات الاتصال الأولية
	// إضافة جهة الاتصال الجديدة
	// عرض جهات الاتصال المحدثة
	// عرض الإحصائيات
	// عرض رسالة الإكمال
}

جميع دروس Logic & Flow