Menu
Coddy logo textTech

פרויקט: הגדרת מבנה איש קשר

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 50 מתוך 63.

challenge icon

אתגר

קל

תבנו כלי פשוט להזנת אנשי קשר, שמדגים כיצד מבנים יכולים לארגן נתונים קשורים ביישומים מהעולם האמיתי.

צרו תוכנית C שמגדירה מבנה Contact לאחסון פרטי קשר. התוכנית שלכם צריכה:

  1. להגדיר מבנה struct בשם Contact עם האיברים הבאים:
    • מערך תווים name בגודל 50 לאחסון שם איש הקשר
    • מערך תווים phone בגודל 20 לאחסון מספר הטלפון של איש הקשר
    • מערך תווים email בגודל 40 לאחסון כתובת האימייל של איש הקשר
    • מספר שלם age לאחסון הגיל של איש הקשר
  2. בפונקציה הראשית:
    • ליצור משתנה Contact בשם person
    • לקרוא את ערכי הקלט הבאים ולהקצות אותם לאיברי המבנה באמצעות אופרטור הנקודה:
      • לקרוא מחרוזת עבור השם ולהקצות אותה ל-person.name
      • לקרוא מחרוזת עבור מספר הטלפון ולהקצות אותה ל-person.phone
      • לקרוא מחרוזת עבור האימייל ולהקצות אותה ל-person.email
      • לקרוא מספר שלם עבור הגיל ולהקצות אותו ל-person.age
    • לאחר קריאת כל הערכים, לבצע את בדיקות האימות הבאות:
      • אם הגיל קטן מ-0 או גדול מ-120, להדפיס Invalid age ולצאת מהתוכנית
      • אם אורך מספר הטלפון קטן מ-10 תווים, להדפיס Invalid phone number ולצאת מהתוכנית
    • אם כל בדיקות האימות עוברות, להדפיס את פרטי הקשר בפורמט המדויק הזה:
      • Contact Information:
      • Name: [name]
      • Phone: [phone]
      • Email: [email]
      • Age: [age]
    • לחשב ולהדפיס מידע נוסף:
      • להדפיס את אורך השם באמצעות strlen() בפורמט: Name length: [length]
      • לקבוע את קטגוריית הגיל ולהדפיס אותה:
        • אם הגיל בין 0 ל-17: Category: Minor
        • אם הגיל בין 18 ל-64: Category: Adult
        • אם הגיל הוא 65 ומעלה: Category: Senior

האתגר הזה בודק את ההבנה שלכם בהגדרת מבנה, בהצהרה על איברים עם טיפוסי נתונים וגדלים מתאימים, בגישה לאיברי מבנה באמצעות אופרטור הנקודה, באימות קלט ובשימוש בפונקציות מחרוזת כמו strlen() עם איברי מבנה. תתרגלו יצירת מבנה נתונים שימושי שיכול לשמש בסיס למערכת לניהול אנשי קשר.

נסו בעצמכם

#include <stdio.h>
#include <string.h>

// TODO: הגדירו כאן את המבנה Contact

int main() {
    // TODO: צרו משתנה מסוג Contact בשם person
    
    // קראו ערכי קלט
    scanf("%s", /* TODO: השמו ל-person.name */);
    scanf("%s", /* TODO: השמו ל-person.phone */);
    scanf("%s", /* TODO: השמו ל-person.email */);
    scanf("%d", /* TODO: השמו ל-person.age */);
    
    // TODO: כתבו למטה את קוד האימות והפלט שלכם
    
    return 0;
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C אונליין