Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <fstream>
- using namespace std;
- struct persoana {
- int codAngajat;
- char numePrenume[30];
- char specializare[20];
- char departament[25];
- int numarZile;
- int varsta;
- int luna;
- char sex;
- };
- ifstream fin("date.in");
- ofstream fout("date.out");
- void afisare(persoana p);
- void creare(persoana angajati[],int n, persoana angajatiSpecializare[], char specializare[20], int &contor);
- void citire (persoana angajati[], int n);
- void afisare(persoana angajati[], int n);
- /**
- Pentru un departament citit de la tastatura, sa se arate cati angajati are departament
- */
- int main()
- {
- int n, numarAngajatiSpecializare = 0;
- fin >> n;
- struct persoana angajati[n];
- struct persoana angajatiAceeasiSpecializare[n];
- citire(angajati, n);
- afisare(angajati, n);
- cout << "Introduceti numele departamentului pentru care doriti sa vedeti numarul de angajati: ";
- char departament[25];
- cin.getline(departament, 25);
- int numarDeAngajati = 0;
- for (int i = 0; i < n; i++) {
- if (strcmp(angajati[i].departament, departament) == 0) {
- numarDeAngajati++;
- }
- }
- fout << "In departamentul: " << departament << " sunt " << numarDeAngajati <<" angajati" << endl;
- cout << "Introduceti specializarea pentru care doriti sa filtrati angajati: ";
- char specializare[20];
- cin.getline(specializare, 20);
- creare(angajati, n, angajatiAceeasiSpecializare, specializare,numarAngajatiSpecializare);
- fout << "Angajatii cu aceeasi specializare sunt: " << endl;
- afisare(angajatiAceeasiSpecializare, numarAngajatiSpecializare);
- cout << "Verificati fisierul de output pentru a vedea rezultatele.";
- return 0;
- }
- void creare(persoana angajati[],int n, persoana angajatiSpecializare[], char specializare[20], int &contor){
- for (int i = 0; i < n; i++) {
- if (strcmp(angajati[i].specializare, specializare) == 0) {
- angajatiSpecializare[contor] = angajati[i];
- contor++;
- }
- }
- }
- void citire (persoana angajati[], int n) {
- cout << "n = " << n << endl;
- for (int i = 0; i < n; i++) {
- fin >> angajati[i].codAngajat;
- fin.ignore();
- fin.getline(angajati[i].numePrenume, 30);
- fin.getline(angajati[i].specializare, 20);
- fin.getline(angajati[i].departament, 25);
- fin >> angajati[i].sex;
- }
- }
- void afisare(persoana angajati[], int n) {
- fout << "Afisare angajati: " << endl;
- for (int i = 0; i < n; i++) {
- fout << "Angajat #"<<(i+1)<<": " <<endl;
- afisare(angajati[i]);
- }
- fout << "------------------------\n\n\n\n";
- }
- void afisare(persoana p) {
- fout << "Codul de angajat: " << p.codAngajat << endl;
- fout << "Nume: " << p.numePrenume << endl;
- fout << "Specializarea angajatului: " << p.specializare << endl;
- fout << "Departamentul angajatului: " << p.departament << endl;
- fout << "Sexul angajatului: " << p.sex << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment