Informatică, întrebare adresată de Maxim200000, 8 ani în urmă

f) Să se păstreze în alt fişier conținutul fişierului creat în a), în ordinea lexicografică a numelui, prenumelui.​ În C++​

Anexe:

Răspunsuri la întrebare

Răspuns de Franz
1

Răspuns:

Rezolvarea a fost făcută integral in C++, aceasta consta in definirea unei structuri si implementarea mai multor vectori cu scopul de a tria si de a alege informația structurata corecta.

Explicație:

In fisierul program.cpp identificam rutina "comparaNumePrenume" ce este folosita in rezolvarea punctului f). Totodata, remarcam si implementarea unei structuri de tip angajat, definita in cerinta. Aceasta are 5 campuri, si anume: Nume, Prenume (de tip string); An, Salariu (de tip int); S*x(de tip string);

a)

In programul principal (main), am inceput prin a defini un vector (din biblioteca <vector>) ListaAng, pe care l-am populat static in cod cu 2 angajati cu comanda ListaAng.push_back(x), unde x este obiectul aferent. Apoi, am scris in fisierul de ofstream f('fisier.txt') lista populata anterior. Dupa aceea, am definit si un fisier de input 'g', deoarece dorim sa parcurgem in mod dinamic angajatii, acestia putand fi 'importati' din surse externe. Acest fisier se cheama 'fisier2.txt' si contine lista tuturor angajatilor. Am parsat fisierul, am aflat cate 'linii' se afla in acesta, 1 angajat fiind trecut pe 1 linie, apoi am facut un vector de angajati "rezultat" de lungime corespunzatoare, pe care l-am populat cu date pana cand ajung la finalul fisierului g.

Ulterior, am definit alte liste pe care le-am valorizat in functie de cerinta : b) ListaFemei contine toti angajatii de s*x "F",

c) avg_sal reprezinta salariul mediu al angajatilor

d) ListaAvgSal - aici este lista cu toti angajatii cu salariul < avg_sal

e) ListaAngajatiSeek - lista cu datele angajatilor dupa numele dat ca input de la tastatura (nume_input , prenume_input)

f) aici am folosit functia sort din biblioteca <bits/stdc++.h> si am definit functia comparaNumePrenume care returneaza rezultatul sortat intai dupa nume, iar daca exista un angajat cu acelasi nume de familie, sorteaza apoi dupa prenume. Lista sortata s-a salvat in ListaTotala, aceasta suprascriindu-se fata de valoarea initiala.

Anexe:

Maxim200000: mersi
Alte întrebări interesante