bogdanNiculeasa

Problema structuri angajati - functii

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