Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /*
- Acest program citteste dintr-un fisier text organigrama unei firme si afiseaza pe ecran muncitorii unei sectii selectate,in ordine descrescatoare in functie de salariu.
- Autor:
- Bojan Alex Stefan bojan_alex_stefan@yahoo.com
- V.1.0 17.01.2018 -> Creeareaa programului functional + comentarii
- V.1.1 19.01.2018 -> Modificarea partii de afisare
- V.1.2 20.01.2018 -> Adaugare cazuri de erori
- V.1.3 20.01.2018 -> Finalizarea aplicatiei +testari
- */
- typedef struct inregistrare inregistrare;
- struct inregistrare
- {
- char nume[30], prenume[30];
- char functie[50];
- int nrLegitimatie;
- int salar;
- char sectie[50];
- };
- int main()
- {
- inregistrare v[100];
- int n; //numar inregistrari
- FILE *fin;
- fin = fopen("date12.txt", "r");
- if(fin==NULL){
- printf("A aparut o eroare la deschiderea fisierului.\n");
- return -1;
- }
- fscanf(fin, "%d", &n);
- int i; // char ch;
- for(i = 0; i < n; ++i)
- // while (fscanf(fin,"%s",&ch) != EOF)
- {
- fscanf(fin, "%s", &v[i].nume);
- fscanf(fin, "%s", &v[i].prenume);
- fscanf(fin, "%s", &v[i].functie);
- fscanf(fin, "%d", &v[i].nrLegitimatie);
- fscanf(fin, "%d", &v[i].salar);
- fscanf(fin, "%s", &v[i].sectie);
- }
- inregistrare sortate[100]; //in vectorul acesta punem inregistrarile cu sectia aleasa, si le sortam in functie de salariu
- char sectie[50];
- int fr[50];
- int k=n;
- for (i = 0; i < k; ++i) {fr[v[i].sectie]=0; }
- // for (i = 0; i < k; ++i) { fr[v[i]]=fr[v[[i]]+1;}
- int m = 0; //numarul de inregistrari cu sectia aleasa
- printf("Bun venit in cadrul firmei Sc Gotec S.R.L \n Aici puteti vizualiza lista angajatiilor,repartajati pe sectii \n");
- printf("Sectiile disponibile: ");
- i=0;
- while (i < k){
- if (fr[v[i].sectie]==1) {
- {
- //fr[i]=0;
- printf(" %s", &v[i].sectie); }
- // fr[v[i].sectie]++;
- k=k-1;
- i++;
- }
- printf("Alegeti sectia: ");
- scanf("%s", §ie);
- for(i = 0; i < n; ++i)
- {
- if(strcmp(sectie, v[i].sectie) == 0)
- {
- int j = 0;
- while(sortate[j].salar > v[i].salar && j < m)
- ++j;
- int k;
- for(k = m; k > j; --k)
- sortate[k] = sortate[k-1];
- sortate[j] = v[i];
- ++m;
- }
- }
- if(m != 0){
- for(i = 0; i < m; ++i)
- {
- printf("\n");
- printf("NUME: %s", sortate[i].nume); printf(" %s\n", sortate[i].prenume);
- printf("Functie: %s\n", sortate[i].functie);
- printf("Numar Legitimatie: %d\n", sortate[i].nrLegitimatie);
- printf("Salariu: %d", sortate[i].salar); printf(" EUR/ora \n");
- printf("Sectie: %s\n",sortate[i].sectie);
- printf("\n");
- }
- }
- else { printf("Sectia: %s",§ie); printf(" nu exista!!!");
- return 0; }
- fclose(fin);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement