Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. /*
  7. 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.
  8.  
  9. Autor:
  10. Bojan Alex Stefan bojan_alex_stefan@yahoo.com
  11.  
  12.  
  13. V.1.0 17.01.2018 -> Creeareaa programului functional + comentarii
  14. V.1.1 19.01.2018 -> Modificarea partii de afisare
  15. V.1.2 20.01.2018 -> Adaugare cazuri de erori
  16. V.1.3 20.01.2018 -> Finalizarea aplicatiei +testari
  17.  
  18. */
  19.  
  20. typedef struct inregistrare inregistrare;
  21.  
  22. struct inregistrare
  23. {
  24. char nume[30], prenume[30];
  25. char functie[50];
  26. int nrLegitimatie;
  27. int salar;
  28. char sectie[50];
  29. };
  30.  
  31.  
  32.  
  33. int main()
  34. {
  35.  
  36. inregistrare v[100];
  37. int n; //numar inregistrari
  38. FILE *fin;
  39. fin = fopen("date12.txt", "r");
  40. if(fin==NULL){
  41. printf("A aparut o eroare la deschiderea fisierului.\n");
  42. return -1;
  43. }
  44. fscanf(fin, "%d", &n);
  45. int i; // char ch;
  46. for(i = 0; i < n; ++i)
  47. // while (fscanf(fin,"%s",&ch) != EOF)
  48. {
  49. fscanf(fin, "%s", &v[i].nume);
  50. fscanf(fin, "%s", &v[i].prenume);
  51. fscanf(fin, "%s", &v[i].functie);
  52. fscanf(fin, "%d", &v[i].nrLegitimatie);
  53. fscanf(fin, "%d", &v[i].salar);
  54. fscanf(fin, "%s", &v[i].sectie);
  55.  
  56. }
  57.  
  58.  
  59.  
  60. inregistrare sortate[100]; //in vectorul acesta punem inregistrarile cu sectia aleasa, si le sortam in functie de salariu
  61. char sectie[50];
  62. int fr[50];
  63. int k=n;
  64.  
  65. for (i = 0; i < k; ++i) {fr[v[i].sectie]=0; }
  66. // for (i = 0; i < k; ++i) { fr[v[i]]=fr[v[[i]]+1;}
  67. int m = 0; //numarul de inregistrari cu sectia aleasa
  68. printf("Bun venit in cadrul firmei Sc Gotec S.R.L \n Aici puteti vizualiza lista angajatiilor,repartajati pe sectii \n");
  69. printf("Sectiile disponibile: ");
  70. i=0;
  71. while (i < k){
  72.  
  73. if (fr[v[i].sectie]==1) {
  74. {
  75.  
  76.  
  77. //fr[i]=0;
  78. printf(" %s", &v[i].sectie); }
  79. // fr[v[i].sectie]++;
  80. k=k-1;
  81. i++;
  82.  
  83.  
  84. }
  85.  
  86.  
  87. printf("Alegeti sectia: ");
  88. scanf("%s", &sectie);
  89. for(i = 0; i < n; ++i)
  90. {
  91. if(strcmp(sectie, v[i].sectie) == 0)
  92. {
  93.  
  94. int j = 0;
  95. while(sortate[j].salar > v[i].salar && j < m)
  96. ++j;
  97. int k;
  98. for(k = m; k > j; --k)
  99. sortate[k] = sortate[k-1];
  100. sortate[j] = v[i];
  101. ++m;
  102. }
  103.  
  104. }
  105.  
  106. if(m != 0){
  107. for(i = 0; i < m; ++i)
  108. {
  109. printf("\n");
  110. printf("NUME: %s", sortate[i].nume); printf(" %s\n", sortate[i].prenume);
  111. printf("Functie: %s\n", sortate[i].functie);
  112. printf("Numar Legitimatie: %d\n", sortate[i].nrLegitimatie);
  113. printf("Salariu: %d", sortate[i].salar); printf(" EUR/ora \n");
  114. printf("Sectie: %s\n",sortate[i].sectie);
  115. printf("\n");
  116. }
  117. }
  118. else { printf("Sectia: %s",&sectie); printf(" nu exista!!!");
  119. return 0; }
  120. fclose(fin);
  121. return 0;
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement