Menu
Coddy logo textTech

Projekt: Definiowanie struktury kontaktu

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 50 z 63.

challenge icon

Wyzwanie

Łatwy

Zbudujesz proste narzędzie do zapisywania kontaktów, które pokazuje, jak struktury mogą porządkować powiązane dane w praktycznych zastosowaniach.

Utwórz program w C, który definiuje strukturę Contact do przechowywania informacji o kontakcie. Twój program powinien:

  1. Zdefiniować strukturę struct o nazwie Contact z następującymi polami:
    • Tablica znaków name o rozmiarze 50 do przechowywania imienia i nazwiska kontaktu
    • Tablica znaków phone o rozmiarze 20 do przechowywania numeru telefonu kontaktu
    • Tablica znaków email o rozmiarze 40 do przechowywania adresu e-mail kontaktu
    • Liczbę całkowitą age do przechowywania wieku kontaktu
  2. W funkcji main:
    • Utworzyć zmienną typu Contact o nazwie person
    • Odczytać następujące wartości wejściowe i przypisać je do pól struktury za pomocą operatora kropki:
      • Odczytać ciąg znaków z imieniem i nazwiskiem i przypisać go do person.name
      • Odczytać ciąg znaków z numerem telefonu i przypisać go do person.phone
      • Odczytać ciąg znaków z adresem e-mail i przypisać go do person.email
      • Odczytać liczbę całkowitą z wiekiem i przypisać ją do person.age
    • Po odczytaniu wszystkich wartości wykonać następujące kontrole poprawności:
      • Jeśli wiek jest mniejszy niż 0 lub większy niż 120, wypisać Invalid age i zakończyć program
      • Jeśli długość numeru telefonu jest mniejsza niż 10 znaków, wypisać Invalid phone number i zakończyć program
    • Jeśli wszystkie kontrole poprawności zakończą się pomyślnie, wypisać informacje o kontakcie w dokładnie następującym formacie:
      • Contact Information:
      • Name: [name]
      • Phone: [phone]
      • Email: [email]
      • Age: [age]
    • Obliczyć i wypisać dodatkowe informacje:
      • Wypisać długość imienia i nazwiska za pomocą strlen() w formacie: Name length: [length]
      • Określić kategorię wiekową i ją wypisać:
        • Jeśli wiek mieści się w przedziale od 0 do 17: Category: Minor
        • Jeśli wiek mieści się w przedziale od 18 do 64: Category: Adult
        • Jeśli wiek wynosi 65 lub więcej: Category: Senior

To wyzwanie sprawdza, czy rozumiesz definiowanie struktur, deklarowanie pól z odpowiednimi typami i rozmiarami danych, uzyskiwanie dostępu do pól struktury za pomocą operatora kropki, kontrolę poprawności danych wejściowych oraz używanie funkcji obsługujących ciągi znaków, takich jak strlen(), z polami struktury. Przećwiczysz tworzenie praktycznej struktury danych, która może stanowić podstawę systemu zarządzania kontaktami.

Spróbuj swoich sił

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

// TODO: Zdefiniuj tutaj strukturę Contact

int main() {
    // TODO: Utwórz zmienną typu Contact o nazwie person
    
    // Odczytaj wartości wejściowe
    scanf("%s", /* TODO: przypisz do person.name */);
    scanf("%s", /* TODO: przypisz do person.phone */);
    scanf("%s", /* TODO: przypisz do person.email */);
    scanf("%d", /* TODO: przypisz do person.age */);
    
    // TODO: Napisz poniżej kod sprawdzający poprawność danych i wyświetlający wyniki
    
    return 0;
}

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online