bogdanNiculeasa

Problema structuri angajati

Mar 8th, 2023
691
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. struct persoana {
  7.     int codAngajat;
  8.     char numePrenume[30];
  9.     char specializare[20];
  10.     char departament[25];
  11.     int numarZile;
  12.     int varsta;
  13.     int luna;
  14.     char sex;
  15. };
  16.  
  17. void afisare(persoana p);
  18.  
  19. /**
  20. Pentru un departament citit de la tastatura, sa se arate cati angajati are departament
  21. */
  22. int main()
  23. {
  24.     int n;
  25.     cout << "Introduceti cati angajati doriti sa introduceti in baza de date: ";
  26.     cin >> n;
  27.     struct persoana angajati[n];
  28.     for (int i = 0; i < n; i++) {
  29.         cout << "Introduceti codul de angajat: ";
  30.         cin >> angajati[i].codAngajat;
  31.         cout << "Introduceti numele si prenumele (maximum 30 de char): ";
  32.         cin.ignore();
  33.         cin.getline(angajati[i].numePrenume, 30);
  34.         cout << "Introduceti specializarea angajatului (maximum 20 de char): ";
  35.         cin.getline(angajati[i].specializare, 20);
  36.         cout << "Introduceti departamentul angajatului (maximum 25 de char): ";
  37.         cin.getline(angajati[i].departament, 25);
  38.         cout << "Introduceti sexul angajatului: (M|F)";
  39.         cin >> angajati[i].sex;
  40.     }
  41.  
  42.     cout << "Afisare angajati: " << endl;
  43.     for (int i = 0; i < n; i++) {
  44.         cout << "Angajat #"<<(i+1)<<": " <<endl;
  45.         afisare(angajati[i]);
  46.     }
  47.     cout << "------------------------\n\n\n\n";
  48.  
  49.     // Logica pentru cautare numar de angajati dintr-un departament
  50.     cout << "Introduceti numele departamentului pentru care doriti sa vedeti numarul de angajati: ";
  51.     char departament[25];
  52.     cin.ignore();
  53.     cin.getline(departament, 25);
  54.  
  55.     int numarDeAngajati = 0;
  56.     for (int i = 0; i < n; i++) {
  57.         if (strcmp(angajati[i].departament, departament) == 0) {
  58.             numarDeAngajati++;
  59.         }
  60.     }
  61.     cout << "In departamentul: " << departament << " sunt " << numarDeAngajati <<" angajati" << endl;
  62.     // Sfarsti logica pentru cautare numar de angajati dintr-un departament
  63.  
  64.  
  65.     // Logica pentru salvare angajati cu aceeasi specializare intr-un vector de angajati
  66.     cout << "Introduceti specializarea pentru care doriti sa filtrati angajati: ";
  67.     char specializare[20];
  68.     struct persoana angajatiAceeasiSpecializare[n];
  69.     int contorAngajati = 0;
  70.     cin.getline(specializare, 20);
  71.     for (int i = 0; i < n; i++) {
  72.         if (strcmp(angajati[i].specializare, specializare) == 0) {
  73.             angajatiAceeasiSpecializare[contorAngajati] = angajati[i];
  74.             contorAngajati++;
  75.         }
  76.     }
  77.  
  78.     cout << "Angajatii cu aceeasi specializare sunt: " << endl;
  79.     for (int i = 0; i < contorAngajati;i++) {
  80.         afisare(angajatiAceeasiSpecializare[i]);
  81.     }
  82.     return 0;
  83. }
  84.  
  85. void afisare(persoana p) {
  86.     cout << "Codul de angajat: " << p.codAngajat << endl;
  87.     cout << "Nume: " << p.numePrenume << endl;
  88.     cout << "Specializarea angajatului: " << p.specializare << endl;
  89.     cout << "Departamentul angajatului: " << p.departament << endl;
  90.     cout << "Sexul angajatului: " << p.sex << endl;
  91. }
  92.  
Advertisement
Add Comment
Please, Sign In to add comment