/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> using namespace std; struct struktura{ int sifra; char naziv[50]; int dob; }pacijent; typedef int tip; #include "lista_polje.h" int unos(lista *L){ int temp=prvi(L); struktura pom; cout<<"\n\nUnesite maticni broj pacijenta: "; cin>>pacijent.sifra; if(pacijent.sifra<0){ cout<<"\nPogresan unos!"; cout<<"\nNiste uspijeli dodat pacijenta!"; return 0; } if(lociraj(pacijent.sifra,L)!=zadnji(L)){ cout<<"\nPacijent s tim maticnim brojem vec postoji!"; cout<<"\nNiste uspijeli dodat pacijenta!"; return 0; } cout<<"\nUnesite ime i prezime pacijenta: "; cin.ignore(); cin.getline(pacijent.naziv, 50); if(pacijent.naziv==""){ cout<<"\nPogresan unos!"; cout<<"\nNiste uspijeli dodat pacijenta!"; return 0; } cout<<"\nUnesite dob pacijenta: "; cin>>pacijent.dob; if(pacijent.dob<=0 || pacijent.dob>=100){ cout<<"\nPogresan unos"; cout<<"\nNiste uspijeli dodat pacijenta!"; return 0; } else{ temp=prvi(L); umetni(pacijent,temp,L); cout<<"\nPacijent je uspijesno dodan!"; return 1; } } void ispis_sortirano(lista *L){ if (prvi(L)==zadnji(L)){ cout << "\nNema zapisanih pacijenata!"; } else{ bool zamjena = true; for (int i = zadnji(L)-1; i > 0 && zamjena; i--) { zamjena = false; for (int j = 0; j < i; j++){ if (L->polje[j].sifra > L->polje[j+1].sifra){ struktura pom = L->polje[j]; L->polje[j] = L->polje[j+1]; L->polje[j+1] = pom; zamjena = true; } } } for(int i=0;i<zadnji(L);i++){ cout<<"\n\nMaticni broj pacijenta: "<< dohvati(lociraj(L->polje[i].sifra,L),L).sifra<<endl; cout<<"\nIme i prezime pacijenta: "<< dohvati(lociraj(L->polje[i].sifra,L),L).naziv<<endl; cout<<"\nGodine pacijenta: "<< dohvati(lociraj(L->polje[i].sifra,L),L).dob<<endl; cout<<"\n-------------------------------------------\n"; } } } void mladji_od_18(lista *L){ int ukupno=0; if (prvi(L)==zadnji(L)){ cout << "\nNema zapisanih pacijenata"; } else{ for(int i=0;i<zadnji(L);i++){ if(L->polje[i].dob<18){ cout<<"\n\nMaticni broj: "<<L->polje[i].sifra; cout<<"\nIme i prezime: "<<L->polje[i].naziv; cout<<"\nGodine: "<<L->polje[i].dob; ukupno++; } } if(ukupno==0){ cout<<"\nNema pacijenata mladjih od 18 godina!"; } else{ cout<<"\nUkupno pacijenata mladjih od 18: "<<ukupno<<endl; } } } int obrisi(lista *L, int trazena_sifra){ int pom=prvi(L); if(sljedeci(pom,L)==0){ cout<<"\nLista je prazna!"; return 0; } if(lociraj(trazena_sifra,L)==zadnji(L)){ cout<<"\nPacijent s trazenim maticnim brojem ne postoji!"; cout<<"\nNiste uspijeli izbrisat pacijenta!"; return 0; } else{ brisi(lociraj(trazena_sifra,L),L); cout<<"\nPacijent je uspijesno izbrisan!"; return 1; } } int main(){ lista pacijenti; pocetno(&pacijenti); int izbor; char jos; int trazeni; do { system("color A"); cout<<"\n\n\tIZBORNIK"; cout<<"\n\n1. Dodavanje pacijenata"; cout<<"\n2. Ispis svih pacijenata(sortirani prema maticnom broju uzlazno)"; cout<<"\n3. Ispis svih pacijenata mladjih od 18 godina"; cout<<"\n4. Brisanje pacienata"; cout<<"\n9. Izlaz iz programa"; cout<<"\nBirate? "; cin>>izbor; cout<<"\n----------------------------------------\n"; switch(izbor){ case 1: do{ unos(&pacijenti); cout<<"\nZelite li dodavati jos pacijenata?(d/n)"; cin>>jos; }while(jos=='d'); break; case 2: ispis_sortirano(&pacijenti); break; case 3: mladji_od_18(&pacijenti); break; case 4: do{ ispis_sortirano(&pacijenti); cout<<"Upisite maticni broj pacijenta kojeg zelite izbrisati: "; cin>>trazeni; cout<<"\n--------------------------------------------"; obrisi(&pacijenti,trazeni); cout<<"\nZelite li brisati jos pacijenata?(d/n)"; cin>>jos; }while(jos=='d'); break; case 9: cout<<"\nIzlazim iz programa...\n"; brisi_sve(&pacijenti); break; default: cout<<"\nKrivi izbor!\n"; } }while(izbor!=9); system("pause"); return 0; }