[ kekinjo9 @ 14.03.2006. 12:34 ] @
#include <stdio.h> #include <stdlib.h> #include <string.h> struct pacijent { char ime_prezime[50]; char adresa[50]; int br_zdr; struct pacijent *veza; } *glavap=NULL,*novip, *pomp; struct lijecnicki_pregled { int br_zdrp; int sifra; char dijagnoza[50]; int datum; struct lijecnicki_pregled *veza; } *glavalp=NULL,*pomlp, *novilp; void upis_novog(); void brisanje(); void novi_pregled(); void popis_svih(); void main() { int b; do{ printf("\n 1. Upis novog pacijenta"); printf("\n 2. Brisanje pacijenta"); printf("\n 3. Novi pregled"); printf("\n 4. Popis svih pregleda"); printf("\n 5. Izlaz"); printf("\n ----------------------------"); printf("\n Unesi izbor:"); scanf("%d",&b); switch(b) { case 1: upis_novog();break; case 2: brisanje();break; case 3: novi_pregled();break; case 4: popis_svih();break; case 5: break; } }while(b!=5); } void upis_novog() { int temp_br_zdr; printf("Unesi broj zdravstvene iskaznice:"); scanf("%d",&temp_br_zdr); pomp=glavap; while(pomp!=NULL) { if(pomp->br_zdr==temp_br_zdr) { printf("Pacijent vec postoji!"); } pomp=pomp->veza; } novip=(struct pacijent *)malloc(sizeof(struct pacijent)); novip->br_zdr=temp_br_zdr; printf("Ime i prezime:");fflush(stdin); gets(novip->ime_prezime); printf("Adresa:");fflush(stdin); gets(novip->adresa); novip->veza=glavap; glavap=novip; } void brisanje() { int temp_br_zdr=0; pomp=glavap; printf("Unesi broj zdravstvene iskaznice za brisanje:"); scanf("%d",&temp_br_zdr); if(pomp->br_zdr==temp_br_zdr) { glavap=glavap->veza; free(pomp); pomp=glavap; } printf(""); struct pacijent *pom2; pom2=pomp->veza; while(pom2!=NULL) { if(pom2->br_zdr==temp_br_zdr) { pomp->veza=pom2->veza; free(pom2); pom2=pomp->veza; return; } pom2=pom2->veza; pomp=pomp->veza; } } void novi_pregled() { int temp_br_zdr; printf("Unesi broj zdravstvene iskaznice za novi pregled:"); scanf("%d",&temp_br_zdr); pomp=glavap; while(pomp!=NULL) { if(pomp->br_zdr==temp_br_zdr) { FILE *fp; fp=fopen("Pregled.txt","w"); fprintf(fp,"Broj zdravstvene : %d",temp_br_zdr); int tempsifra; printf("Unesi sifru lijecnika:"); scanf("%d",&tempsifra); fprintf(fp,"Sifra lijecnika je : %d",tempsifra); char dijagnoza[50]; printf("Unesi dijagnozu:"); gets(dijagnoza); fprintf(fp,"Dijagnoza je : %s",dijagnoza); int datum; printf("Datum:"); scanf("%d",&datum); fprintf(fp,"Datum je : %d",datum); } pomp=pomp->veza; } } void popis_svih() { int sortiranje=0; struct lijecnicki_pregled *pom1, *pom2; FILE *fp; fp=fopen("pregledi.txt","r") int sifra=0; printf("Izaberi kategoriju sortiranja\n"); printf("\n1.Po sifri lijecnika\n"); printf("\n1.Po dijagnozi\n"); printf("\n1.Po datumu\n"); printf("Vas izbor je:\n"); scanf("%d",&sortiranje); switch(sortiranje) { case 1: { while(fscanf(fp,"%d",&sifra)!=EOF) { novilp=(struct lijecnicki_pregled*)malloc(sizeof(lijecnicki_pregled)); novilp->sifra=sifra; fscanf(fp,"%d",&novilp->br_zdrp); fscanf(fp,"%s",&novilp->dijagnoza); fscanf(fp,"%d",&novilp->datum); pomp=glavap; while(pomp!=NULL) { if(pomp->br_zdr==novilp->br_zdrp) { printf("Ime je:%s\n",pomp->ime_prezime); printf("Ime je:%d\n",pomp->br_zdr); break; } pomp=pomp->veza; } if((glavalp==NULL)||(glavalp->sifra>novilp->sifra)) { novilp->veza=glavalp; glavalp=novilp; } else { pom1=glavalp; pom2=pom1->veza; while(pom2!=NULL) { if(pom2->sifra>novilp->sifra) { pom1->veza=novilp; novilp->veza=pom2 } pom2=pom2->veza; pom1=pom1->veza; } if(pom2==NULL) { pom1->veza=novilp; novilp->veza=NULL; } } break; } case 2: { while(fscanf(fp,"%d",&sifra)!=EOF) { novilp=(struct lijecnicki_pregled*)malloc(sizeof(lijecnicki_pregled)); novilp->sifra=sifra; fscanf(fp,"%d",&novilp->br_zdrp); fscanf(fp,"%s",&novilp->dijagnoza); fscanf(fp,"%d",&novilp->datum); pomp=glavap; while(pomp!=NULL) { if(pomp->br_zdr==novilp->br_zdrp) { printf("Ime je:%s\n",pomp->ime_prezime); printf("Ime je:%d\n",pomp->br_zdr); break; } pomp=pomp->veza; } if((glavalp==NULL)||(glavalp->sifra>novilp->sifra)) { novilp->veza=glavalp; glavalp=novilp; } else { pom1=glavalp; pom2=pom1->veza; while(pom2!=NULL) { if(pom2->sifra>novilp->sifra) { pom1->veza=novilp; novilp->veza=pom2 } pom2=pom2->veza; pom1=pom1->veza; } if(pom2==NULL) { pom1->veza=novilp; novilp->veza=NULL; } } break; } |