Advertisement
Guest User

sebii

a guest
Oct 18th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. typedef enum {
  7.     medii,sup,doct
  8.  
  9.             }studii;
  10.  
  11. typedef enum{
  12.     tehnic,economic
  13.             }profil;
  14. typedef struct{
  15.  
  16.     float med_4ani,med_bac;
  17. }inf_med;
  18.  
  19. typedef union {
  20.     inf_med i_m;
  21.     float nota_lic;
  22.     profil p;
  23. }informatii;
  24.  
  25. typedef struct{
  26.     int z,l,a;
  27. }data_nastere;
  28.  
  29. typedef struct{
  30.     char nume[20],prenume[20];
  31.     float salar;
  32.     data_nastere d_n;
  33.     studii stdii;
  34.     informatii inf;
  35. }angajat;
  36. void afisare(angajat pers[],int i)
  37. {
  38.     for(int p=0;p<i;p++)
  39.     {
  40.         cout<<pers[p].nume<<" "<<pers[p].prenume<<endl;
  41.         cout<<"SALAR:"<<pers[p].salar<<endl;
  42.         cout<<"Data nastere:"<<pers[p].d_n.z<<"."<<pers[p].d_n.l<<"."<<pers[p].d_n.a<<endl;
  43.         cout<<"Studii:"<<pers[p].stdii<<endl;
  44.         switch (pers[p].stdii)
  45.         {
  46.         case 0:{
  47.             cout<<"Med 4ani:"<<pers[p].inf.i_m.med_4ani<<endl<<"Med bac:"<<pers[i].inf.i_m.med_bac<<endl;      
  48.                break;
  49.                }
  50.         case 1:{
  51.             cout<<"Nota lic:"<<pers[p].inf.nota_lic<<endl;
  52.                break;
  53.                }
  54.         case 2:{
  55.             cout<<"Profil"<<pers[p].inf.p<<endl;
  56.                break;
  57.                }
  58.         default: break;
  59.        
  60.         }
  61.     }
  62.  
  63. }
  64.  
  65. void main()
  66. {
  67.     angajat pers[20];
  68.     int i=0;
  69.     FILE *f;
  70.     fopen_s(&f,"inf.txt","r");
  71.     while(!feof(f))
  72.     {
  73.         fscanf_s(f,"%s",pers[i].nume);
  74.         fscanf_s(f,"%s",pers[i].prenume);
  75.         fscanf_s(f,"%f",&pers[i].salar);
  76.         fscanf_s(f,"%d %d %d",&pers[i].d_n.z,&pers[i].d_n.l,&pers[i].d_n.a);
  77.         fscanf_s(f,"%d",&pers[i].stdii);
  78.         switch (pers[i].stdii)
  79.         {
  80.         case 0:{
  81.             fscanf_s(f,"%f %f",&pers[i].inf.i_m.med_4ani,&pers[i].inf.i_m.med_bac);    
  82.                break;
  83.                }
  84.         case 1:{
  85.             fscanf_s(f,"%f",&pers[i].inf.nota_lic);
  86.                break;
  87.                }
  88.         case 2:{
  89.             fscanf_s(f,"%d",&pers[i].inf.p);
  90.                break;
  91.                }
  92.         default: break;
  93.        
  94.         }
  95.         i++;
  96.     }
  97.     afisare(pers,i);
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement