Advertisement
Guest User

Untitled

a guest
Sep 14th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.50 KB | None | 0 0
  1. #include<conio.h>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5.  
  6. typedef struct pacient
  7. {
  8.     int nrpacient,nrmedic;
  9. char nume_pacient[20],prenume_pacient[20],cnp_pacient[20],datan[20],adresa_pacient[20];
  10. struct pacient *urm;
  11. }pacient;
  12.  
  13. typedef struct medic
  14. {
  15.     int nrmedic;
  16. char nume_medic[20],prenume_medic[20],cnp_medic[20],adresa_medic[20],nume_medic_rezerva[20],prenume_medic_rezerva[20];
  17.  pacient *urm;
  18. struct medic *stang,*drept;
  19. }medic;
  20.  
  21.  
  22.  
  23. pacient *adauga_pacient(pacient *prim,char nume_pacient[20],char prenume_pacient[20],char cnp_pacient[20],char datan[20],char adresa_pacient[20],int nrpacient,int nrmedic)
  24. {
  25.     pacient *p,*q;
  26. if(prim==NULL)
  27. {
  28.     prim=(pacient*)malloc(sizeof(pacient));
  29.  strcpy(prim->nume_pacient,nume_pacient);
  30.  strcpy(prim->prenume_pacient,prenume_pacient);
  31.  strcpy(prim->cnp_pacient,cnp_pacient);
  32.  strcpy(prim->datan,datan);
  33.  strcpy(prim->adresa_pacient,adresa_pacient);
  34.  prim->nrpacient=nrpacient;
  35.  prim->nrmedic=nrmedic;
  36.  prim->urm=NULL;
  37. }
  38. else
  39. {
  40.     p=prim;
  41. while(p->urm!=NULL)
  42. p=p->urm;
  43. q=(pacient*)malloc(sizeof(pacient));
  44. p->urm=q;
  45. strcpy(q->nume_pacient,nume_pacient);
  46.  strcpy(q->prenume_pacient,prenume_pacient);
  47.  strcpy(q->cnp_pacient,cnp_pacient);
  48.  strcpy(q->datan,datan);
  49.  strcpy(q->adresa_pacient,adresa_pacient);
  50.  q->nrpacient=nrpacient;
  51.  q->nrmedic=nrmedic;
  52.  q->urm=NULL;}
  53. return prim;
  54. }
  55.  
  56.  
  57.  
  58. medic *adauga_medic(medic *t,char nume_medic[20],char prenume_medic[20],char cnp_medic[20],char adresa_medic[20],char nume_medic_rezerva[20],char prenume_medic_rezerva[20],int nrmedic)
  59. {
  60.     if(t==NULL)
  61.     {
  62.         t=(medic*)malloc(sizeof(medic));
  63.         strcpy(t->nume_medic,nume_medic);
  64.         strcpy(t->prenume_medic,prenume_medic);
  65.         strcpy(t->cnp_medic,cnp_medic);
  66.         strcpy(t->adresa_medic,adresa_medic);
  67.         strcpy(t->nume_medic_rezerva,nume_medic_rezerva);
  68.         strcpy(t->prenume_medic_rezerva,prenume_medic_rezerva);
  69.         t->nrmedic=nrmedic;
  70.         t->stang=t->drept=NULL;
  71.     }
  72.    
  73.     else
  74.      if(strcmp(t->nume_medic,nume_medic)<=0)
  75.          t->drept=adauga_medic(t->drept,nume_medic,prenume_medic,cnp_medic,adresa_medic,nume_medic_rezerva,prenume_medic_rezerva,nrmedic);
  76.       else
  77.        if(strcmp(t->nume_medic,nume_medic)>0)
  78.          t->stang=adauga_medic(t->stang,nume_medic,prenume_medic,cnp_medic,adresa_medic,nume_medic_rezerva,prenume_medic_rezerva,nrmedic);
  79.       else
  80.           {
  81.               printf("Acest medic %s exista",t->nume_medic);
  82.            getch();
  83.       }
  84.           return t;
  85. }
  86.  
  87. int main()
  88. {
  89.     int opt,nrpacient,nrmedic,nrmedic1;
  90. char nume_pacient[20],prenume_pacient[20],cnp_pacient[20],datan[20],adresa_pacient[20],nume_medic[20],prenume_medic[20],cnp_medic[20],adresa_medic[20],nume_medic_rezerva[20],prenume_medic_rezerva[20];
  91. FILE *f,*g;
  92. pacient *p;
  93. medic *root;
  94. f=fopen("medici.txt","r+w");
  95. g=fopen("pacienti.txt","r+w");
  96. do
  97. {
  98.     printf("1.Incarca informatiile din fisier\n");
  99. printf("2.Tiparire in ordine alfabetica medici si pacienti\n");
  100. printf("3.Cautare medic dupa nume si tiparire pacientii acestuia\n");
  101. printf("4.Stergere medic\n");
  102. printf("5.Muta un pacient de la un medic la altul\n");
  103. printf("6.Tipareste informatii medic in ordine descrescatoare cu numarul pacientiilor cu varsta intre 50 si 70 de ani\n");
  104. printf("7.Inserare pacient\n");
  105. printf("8.Actualizare fisier pacienti\n");
  106. printf("9.Actualizare fisier medici\n");
  107. printf("10.Stergerea intregii evidente\n");
  108. printf("11.Iesire\n");
  109. printf("Citeste optiunea:");
  110. scanf("%d",&opt);
  111. switch(opt)
  112. {case 1:while(!feof(f))
  113.     {
  114.         fscanf(f,"%d",&nrmedic);
  115.        fscanf(f,"%s",nume_medic);
  116.         fscanf(f,"%s",prenume_medic);
  117.         fscanf(f,"%s",cnp_medic);
  118.         fscanf(f,"%s",adresa_medic);
  119.         fscanf(f,"%s",nume_medic_rezerva);
  120.         fscanf(f,"%s",prenume_medic_rezerva);
  121.         //printf("%s",nume_medic);
  122.         while(!feof(g))
  123.         {
  124.             fscanf(g,"%d",&nrpacient);
  125.          fscanf(g,"%d",&nrmedic1);
  126.         fscanf(g,"%s",nume_pacient);
  127.  fscanf(g,"%s",prenume_pacient);
  128.  fscanf(g,"%s",cnp_pacient);
  129.  fscanf(g,"%s",datan);
  130.  fscanf(g,"%s",adresa_pacient);
  131. printf("%s",nume_pacient);
  132.  if(nrmedic==nrmedic1)
  133.  root->urm=adauga_pacient(root->urm,nume_pacient,prenume_pacient,cnp_pacient,datan,adresa_pacient,nrpacient,nrmedic);
  134.  p=adauga_pacient(p,nume_pacient,prenume_pacient,cnp_pacient,datan,adresa_pacient,nrpacient,nrmedic);
  135.         }
  136.         root=adauga_medic(root,nume_medic,prenume_medic,cnp_medic,adresa_medic,nume_medic_rezerva,prenume_medic_rezerva,nrmedic);
  137. }
  138.     break;
  139. case 2:break;
  140. case 3:break;
  141. case 4:break;
  142. case 5:break;
  143. case 6:break;
  144. case 7:break;
  145. case 8:break;
  146. case 9:break;
  147. case 10:break;
  148. case 11:break;
  149.     }
  150. }
  151. while(opt!=11);
  152.     getch();
  153.     return 1;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement