Structuri în C++

Teorie

Structurile în C++ sunt tipuri de date definite de utilizator, folosite pentru a grupa mai multe variabile (de tipuri diferite) sub un singur nume.

Există patru moduri principale de definire și utilizare a structurilor:

1. Struct clasic (definit și folosit ulterior)

struct Elev {
    char nume[50];
    int varsta;
};

int main() {
    Elev e1;
}

2. Struct cu declararea variabilelor imediat după acoladă

struct Elev {
    char nume[50];
    int varsta;
} e1, e2;

3. Struct fără nume – se declară variabile direct, fără a denumi tipul.

struct {
    char nume[50];
    int varsta;
} e1, e2;

4. Struct cu typedef – se creează un alias pentru a simplifica utilizarea.

typedef struct {
    char nume[50];
    int varsta;
} Elev;

int main() {
    Elev e1;
}

Exemple

Exemplul 1: Definirea unei structuri Elev cu nume și vârstă și afișarea datelor.

struct Elev {
    char nume[50];
    int varsta;
};

int main() {
    Elev e;
    cin >> e.nume >> e.varsta;
    cout << e.nume << " " << e.varsta;
}

Exemplul 2: Declararea mai multor elevi imediat după structură.

struct Elev {
    char nume[50];
    int varsta;
} e1, e2;

int main() {
    cin >> e1.nume >> e1.varsta;
    cin >> e2.nume >> e2.varsta;
    cout << e1.nume << " " << e2.nume;
}

Exemplul 3: Folosirea unei structuri fără nume.

struct {
    char nume[50];
    int varsta;
} e1;

int main() {
    cin >> e1.nume >> e1.varsta;
    cout << e1.nume << " " << e1.varsta;
}

Exemplul 4: Struct cu typedef pentru simplificarea codului.

typedef struct {
    char nume[50];
    int varsta;
} Elev;

int main() {
    Elev e;
    cin >> e.nume >> e.varsta;
    cout << e.nume << " " << e.varsta;
}

Exemplul 5: Vector de structuri – citirea și afișarea datelor pentru mai mulți elevi.

struct Elev {
    char nume[50];
    int varsta;
};

int main() {
    int n;
    cin >> n;
    Elev v[100];
    for (int i = 0; i < n; i++) {
        cin >> v[i].nume >> v[i].varsta;
    }
    for (int i = 0; i < n; i++) {
        cout << v[i].nume << " " << v[i].varsta << "\\n";
    }
}

Exerciții propuse

  1. Definiți o structură Student cu câmpurile: nume, grupă și medie. Citiți și afișați datele pentru un student.
  2. Citiți datele pentru n studenți și afișați media generală a grupei.
  3. Scrieți un program care determină studentul cu cea mai mare medie.
  4. Scrieți un program care determină studentul cu cea mai mică medie.
  5. Citiți datele pentru n studenți și afișați toți studenții care au media peste 8.
  6. Definiți o structură Carte cu titlu, autor și an_apariție. Citiți și afișați datele pentru o carte.
  7. Citiți n cărți și afișați toate cărțile publicate după anul 2000.
  8. Citiți n elevi și afișați-i ordonați alfabetic după nume.
  9. Citiți n elevi și afișați-i ordonați descrescător după medie.
  10. Scrieți un program care determină numărul elevilor majori (≥18 ani).
  11. Definiți o structură Angajat cu nume, funcție și salariu. Citiți și afișați datele.
  12. Citiți n angajați și determinați salariul mediu al firmei.
  13. Citiți n angajați și afișați angajatul cu salariul maxim.
  14. Citiți n angajați și afișați toți angajații cu salariu sub media firmei.
  15. Definiți o structură Complex cu parte reală și imaginară. Citiți două numere complexe și afișați suma lor.

Reclame Google AdSense

Flux de știri