Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<conio.h>
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- typedef struct pacient
- {
- int nrpacient,nrmedic;
- char nume_pacient[20],prenume_pacient[20],cnp_pacient[20],datan[20],adresa_pacient[20];
- struct pacient *urm;
- }pacient;
- typedef struct medic
- {
- int nrmedic;
- char nume_medic[20],prenume_medic[20],cnp_medic[20],adresa_medic[20],nume_medic_rezerva[20],prenume_medic_rezerva[20];
- pacient *urm;
- struct medic *stang,*drept;
- }medic;
- 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)
- {
- pacient *p,*q;
- if(prim==NULL)
- {
- prim=(pacient*)malloc(sizeof(pacient));
- strcpy(prim->nume_pacient,nume_pacient);
- strcpy(prim->prenume_pacient,prenume_pacient);
- strcpy(prim->cnp_pacient,cnp_pacient);
- strcpy(prim->datan,datan);
- strcpy(prim->adresa_pacient,adresa_pacient);
- prim->nrpacient=nrpacient;
- prim->nrmedic=nrmedic;
- prim->urm=NULL;
- }
- else
- {
- p=prim;
- while(p->urm!=NULL)
- p=p->urm;
- q=(pacient*)malloc(sizeof(pacient));
- p->urm=q;
- strcpy(q->nume_pacient,nume_pacient);
- strcpy(q->prenume_pacient,prenume_pacient);
- strcpy(q->cnp_pacient,cnp_pacient);
- strcpy(q->datan,datan);
- strcpy(q->adresa_pacient,adresa_pacient);
- q->nrpacient=nrpacient;
- q->nrmedic=nrmedic;
- q->urm=NULL;}
- return prim;
- }
- 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)
- {
- if(t==NULL)
- {
- t=(medic*)malloc(sizeof(medic));
- strcpy(t->nume_medic,nume_medic);
- strcpy(t->prenume_medic,prenume_medic);
- strcpy(t->cnp_medic,cnp_medic);
- strcpy(t->adresa_medic,adresa_medic);
- strcpy(t->nume_medic_rezerva,nume_medic_rezerva);
- strcpy(t->prenume_medic_rezerva,prenume_medic_rezerva);
- t->nrmedic=nrmedic;
- t->stang=t->drept=NULL;
- }
- else
- if(strcmp(t->nume_medic,nume_medic)<=0)
- t->drept=adauga_medic(t->drept,nume_medic,prenume_medic,cnp_medic,adresa_medic,nume_medic_rezerva,prenume_medic_rezerva,nrmedic);
- else
- if(strcmp(t->nume_medic,nume_medic)>0)
- t->stang=adauga_medic(t->stang,nume_medic,prenume_medic,cnp_medic,adresa_medic,nume_medic_rezerva,prenume_medic_rezerva,nrmedic);
- else
- {
- printf("Acest medic %s exista",t->nume_medic);
- getch();
- }
- return t;
- }
- int main()
- {
- int opt,nrpacient,nrmedic,nrmedic1;
- 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];
- FILE *f,*g;
- pacient *p;
- medic *root;
- f=fopen("medici.txt","r+w");
- g=fopen("pacienti.txt","r+w");
- do
- {
- printf("1.Incarca informatiile din fisier\n");
- printf("2.Tiparire in ordine alfabetica medici si pacienti\n");
- printf("3.Cautare medic dupa nume si tiparire pacientii acestuia\n");
- printf("4.Stergere medic\n");
- printf("5.Muta un pacient de la un medic la altul\n");
- printf("6.Tipareste informatii medic in ordine descrescatoare cu numarul pacientiilor cu varsta intre 50 si 70 de ani\n");
- printf("7.Inserare pacient\n");
- printf("8.Actualizare fisier pacienti\n");
- printf("9.Actualizare fisier medici\n");
- printf("10.Stergerea intregii evidente\n");
- printf("11.Iesire\n");
- printf("Citeste optiunea:");
- scanf("%d",&opt);
- switch(opt)
- {case 1:while(!feof(f))
- {
- fscanf(f,"%d",&nrmedic);
- fscanf(f,"%s",nume_medic);
- fscanf(f,"%s",prenume_medic);
- fscanf(f,"%s",cnp_medic);
- fscanf(f,"%s",adresa_medic);
- fscanf(f,"%s",nume_medic_rezerva);
- fscanf(f,"%s",prenume_medic_rezerva);
- //printf("%s",nume_medic);
- while(!feof(g))
- {
- fscanf(g,"%d",&nrpacient);
- fscanf(g,"%d",&nrmedic1);
- fscanf(g,"%s",nume_pacient);
- fscanf(g,"%s",prenume_pacient);
- fscanf(g,"%s",cnp_pacient);
- fscanf(g,"%s",datan);
- fscanf(g,"%s",adresa_pacient);
- printf("%s",nume_pacient);
- if(nrmedic==nrmedic1)
- root->urm=adauga_pacient(root->urm,nume_pacient,prenume_pacient,cnp_pacient,datan,adresa_pacient,nrpacient,nrmedic);
- p=adauga_pacient(p,nume_pacient,prenume_pacient,cnp_pacient,datan,adresa_pacient,nrpacient,nrmedic);
- }
- root=adauga_medic(root,nume_medic,prenume_medic,cnp_medic,adresa_medic,nume_medic_rezerva,prenume_medic_rezerva,nrmedic);
- }
- break;
- case 2:break;
- case 3:break;
- case 4:break;
- case 5:break;
- case 6:break;
- case 7:break;
- case 8:break;
- case 9:break;
- case 10:break;
- case 11:break;
- }
- }
- while(opt!=11);
- getch();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement