Extras din proiect
Tema proiectului este gestionarea situatiei dintr-o firma .
Informatiile disponibile pentru fiecare angajat sunt :
• Nume
• Prenume
• Cnp
• Salariu
• Varsta
• Vechime
Aceste informatii vor fi stocate intr-un fisier relativ.Pentru stocarea datelor se va folosi o structura de forma :
typedef struct {
char nume[50];
char prenume[50];
char cnp[50];
int salariu;
int varsta ;
int vechime;
int exists ;
}salariat;
Campul exists din structura salariat este folosit pentru a determina daca exista inregistrare pe pozitia respectiva.
Meniul aplicatiei :
printf("n ****************OPTIUNI:*********************");
printf("n 1:CREARE FISIER RELATIV ");
printf("n 2:ADAUGARE DATE IN FISIER ");
printf("n 3:LISTARE FISIER ");
printf("n 4: CAUTARE DUPA NUMARUL RELATIV ");
printf("n 5: CONSULTARE DUPA CARACTERISTICA ");
printf("n 6: MODIFICARE ");
printf("n 7: CALCULUL MEDIEI SALARIULUI PE FIRMA ");
printf("n 8: RAPORT: SALARIATI CU SALARIUL MAI MARE DECAT SALARIU MEDIU ");
printf("n 9: STERGERE ");
printf("n 10: SORTARE DUPA VARSTA");
printf("n 11: GRADE TOTAL");
printf("n 0: IESIRE ");
printf("n ");
1. Crearea fisierului :
Functia CREARE creaza fisierul binar "salariat.dat". Fisierul se deschide in modul wb+ care suprascrie un fisier existent sau creeaza unul nou, fiind permise atât citiri cât si scrieri pentru fisier binar.Daca fisierul poate sau nu poate fi creat se va afisa un mesaj corespunzator.
Schema bloc :
if f=fopen("salariat.dat","wb+")) then Afiseaza “Fisierul a fost creat”.
Else Afiseaza “fisierul nu poate fi creat”
2. Adaugare
Functia ADAUGARE adauga date in fisier. Se deschide fisierul in modul rb+ pentru consultare si actualizare fisier binar. Se citeste de la tastatura numarul relativ, n, reprezentand pozitia de pe lista a unui salariat. Intr-o structura while se verifica sfarsitul de fisier cu functia feof(f). Cat timp nu s-a ajuns la sfarsitul inserarii (n=0) se face prelucrarea: avem 2 cauzuri- n citit sa fie mai mare decat numarul de articole deja adaugate in fisier, caz in care adaugarea se face la sfarsit, sau n sa fie mai mic, caz in care se face un fel de inserare in fisier.
Daca avem n in primul caz ne pozitionam la sfarsitul fisierului, se face o preformare dinamica (se scriu articole cu indicatorul de stare is=0 pana la pozitia n, pe care vrem sa adaugam noul articol. Se citesc de la tastatura caracteristicile campurilor articolului in variabila e de tip salariat si se scrie artcolul in fiser cu functia fwrite(articolul e, pe o lungime sizeof(salariat), 1 singura data, in fisierul f). In cazul in care n este mai mic decat numarul de articole din fisier, ne pozitionam in fisier dupa primele n-1 articole, verificam daca indicatorul de stare este 0, adica nu exista articol pe pozitia respectiva, se citeste si se scrie articolul pe pozitia n. Daca avem articol pe pozitia respectiva se va da un mesaj corespunzator.
Schema logica :
3. Afisare date si stocare in fisierul salariati1.txt
Functia AFISARE listeaza articolele din fisier pe ecran, si deasemenea se creaza un fisier text salariat1.txt, cu articolele din fisierul binar. Fisierul binar se dechide in modul rb- consultare fisier binar iar fisierul text in modul w- creare fisier text. Intr-o structura while care verifica sfarsitul fisierului (feof(f)) se citesc articolele (verificand indicatorul de stare x.is!=0) pe rand din fisierul f, in variabila x de tip salariat, se afiseaza pe ecran si deasemenea se scrie in fisierul text .
Schema logica :
Preview document
Conținut arhivă zip
- Gestionarea Situatiei dintr-o Firma.doc