Return to Snippet

Revision: 34528
at October 24, 2010 05:46 by barrogar


Initial Code
#include <iostream>

#include "list_pokazivaci.h"
//#include "list_polje.h"

using namespace std;

void unos (list* lista) {
    int broj, uspjesno_dodan=0, lokacija;
    cout << "===================================" << endl;
    cout << "Koliko pacijenata zelite unijeti: ";
    cin  >> broj;
    cout << endl;
    for (int i=0; i<broj; i++){
        cout << "Maticni broj pacijenta: ";
        cin  >> pacijent.mb;
        cout << "Ime i prezime pacijenta: ";
        cin.ignore();
        cin.getline(pacijent.ime, 30);
        cout << "Godine pacijenta: ";
        cin  >> pacijent.godine;
        cout << endl << "Zelite li pacijenta dodati na " << endl 
             << "1.Pocetak liste" << endl 
             << "2.Kraj liste" << endl
             << "Izbor: ";
        cin  >> lokacija;
        cout << endl;
        if (lokacija==1)
           uspjesno_dodan = InsertL(pacijent, FirstL(lista), lista);
        if (lokacija==2)
           uspjesno_dodan = InsertL(pacijent, EndL(lista), lista);
        if (uspjesno_dodan)
           cout << "Pacijent je evidentiran" << endl;
        else
           cout << "Greska, pacijent nije evidentiran" << endl;
        cout << "---------------------------------" << endl << endl;
    }
};


void sort(list *lista) {
   int broj_elemenata=0; 
   tpacijent polje[100];
   element pozicija = FirstL(lista);
   while (pozicija != EndL(lista)){
       polje[broj_elemenata]=RetrieveL(pozicija, lista);
       pozicija = NextL(pozicija, lista);
       broj_elemenata++;      
   }
   
   for (int i = 1; i<broj_elemenata;i++) {
       int j = i-1;
       tpacijent pom = polje[i];
       while (j>=0 && polje[j].mb>pom.mb)
             polje[j+1] = polje[j--];
       polje[j+1] = pom;    
   }
   
   cout << "========== Sortirani pacijenti ==========" << endl << endl;
   for (int i=0; i<broj_elemenata; i++)
        cout << "Maticni broj pacijenta: " << polje[i].mb << endl
             << "Ime i prezime pacijenta: " << polje[i].ime << endl
             << "Godine pacijenta: " << polje[i].godine << endl
             << "-------------------------------------------" << endl;
};

void ispis(list* lista) {
  int broj_maloljetnika=0;
  tpacijent maloljetnik;
  cout << "======== Maloljetni pacijenti ========" << endl << endl;
  element pozicija = FirstL(lista);
  while (pozicija != EndL(lista)){
       maloljetnik = RetrieveL(pozicija, lista);
       if (maloljetnik.godine<=18){ 
           cout << "Maticni broj pacijenta: " << maloljetnik.mb << endl
                << "Ime i prezime pacijenta: " << maloljetnik.ime << endl
                << "Godine pacijenta: " << maloljetnik.godine << endl
                << "-------------------------------------------" << endl;     
           broj_maloljetnika++;
       }
       pozicija = NextL(pozicija, lista);
   }
  cout << "Ukupno pacijenata mladih od 18 godina: " << broj_maloljetnika << endl;    
};

void brisanje (list* lista) {
  int izbor;
  tpacijent maticni;
  element pozicija;
  cout << "Unesite maticni broj osobe za brisanje: ";
  cin  >> maticni.mb;
  pozicija = LocateL(maticni, lista);
  if (pozicija != EndL(lista)) { 
           maticni = RetrieveL(pozicija, lista);           
           cout << "===== Pronadjen pacijent ===== " << endl
                << "Maticni broj pacijenta: " << maticni.mb << endl
                << "Ime i prezime pacijenta: " << maticni.ime << endl
                << "Godine pacijenta: " << maticni.godine << endl
                << "--------------------------------------" << endl << endl
                << "Sigurno obisati?" << endl
                << "1. Obrisati" << endl
                << "2. Ostaviti" << endl
                << "Vas izbor: ";
           cin  >> izbor;
           
           if (izbor == 1) {
              int izbrisan = DeleteL(pozicija, lista);
              if (izbrisan){
                 cout << "Pacijent je obrisan iz baze" << endl;
                 return;
                 }
              else{
                 cout << "Greska, pacijent nije obrisan" << endl;
                 return;
                 }
           } // if izbor 1
           else if (izbor == 2) {
                cout << "Pacijent nije obrisan prema izboru korisnika" << endl;
                return;
           }
           else cout << "Krivi odabir, pacijent nije obrisan" << endl;
  } // if pozicija
 cout << "Pacijent s trazenim maticnim brojem ne postoji u evidenciji" << endl;    
};

int main () {
    int izbor;
    list* lista = InitL(lista); 
    do {
        cout << "========== Izbornik ==========" << endl
             << "1. Unos pacijenata" << endl
             << "2. Sortiranje pacijenata" << endl
             << "3. Ispis maloljetnih pacijenata" << endl
             << "4. Brisanje pacijenata" << endl
             << "9. Izlaz iz programa" << endl
             << "Izbor: ";
        cin  >> izbor;
        cout << endl << endl;
        
        switch (izbor) {
            case 1:
                 unos(lista);
                 cout << endl;
                 break;
            case 2:
                 sort(lista);
                 cout << endl;
                 break;
            case 3:
                 ispis(lista); 
                 cout << endl;
                 break;
            case 4:
                 brisanje(lista);
                 cout << endl;
                 break;
            case 9:
                 break;
        }
    } while (izbor!=9);    
    return 0;    
};

Initial URL


Initial Description


Initial Title
Sp zadatak 1 main, Barbara Rogar

Initial Tags


Initial Language
C++