Return to Snippet

Revision: 60657
at November 12, 2012 05:18 by tsteyska


Initial Code
#include <iostream>
#include "lista_pokazivaci.h"
//#include "lista_polje.h"
using namespace std;

int sifra=1,elementi=0;
lista *L;

void novi_zapis(){
     podaci pod;
     pod.sifra=sifra;
     cout<<"UNESITE PODATKE"<<endl;
     cout <<"Sifra zivotinje: " << pod.sifra << endl;
     cout <<"Unesi vrstu zivotinje: ";
     cin.ignore();
     cin.getline(pod.vrsta,20);
     cout<<"Unesi naziv zivotinje: ";
     cin.getline(pod.naziv,20);
     cout<<"Cijena: ";
     cin>>pod.cijena;
     cout<<"Unesi datum dostave(GGGGMMDD): ";
     cin >> pod.datum;
     InsertL(pod,sifra,L);
     cout<<endl;   
}

void ispis(lista *L){
     if(elementi<=0)
           return;
     int poz = EndL(L);
     poz = PreviousL(poz,L);
     while (1){
           podaci novi = RetrieveL(poz,L);
           cout<<"Sifra: "<<novi.sifra<<endl;
           cout<<"Vrsta: "<<novi.vrsta<<endl;
           cout<<"Naziv: "<<novi.naziv<<endl;
           cout<<"Cjena: "<<novi.cijena<<endl;
           cout<<"Datum: "<<novi.datum<<endl;
           cout<<"---------------------"<<endl;
           if(poz== FirstL(L))
                    break;
           poz=PreviousL(poz,L);
    }   
}

void ispis_datum(lista *L){
     int C=0;
     lista *a = L -> slijedeci;
     while(a){
         if(a -> pod.datum >20120923){
          cout<<"Sifra: "<<a->pod.sifra<<endl;
          cout<<"Vrsta: "<<a->pod.vrsta<<endl;
          cout<<"Naziv: "<<a->pod.naziv<<endl;
          cout<<"Cijena: "<<a->pod.cijena<<endl;
          cout<<"Datum: "<<a->pod.datum<<endl;
          C++;                    
         }
         a = a -> slijedeci;
     }
     cout<<"Broj zivotinja dostavljene nakon 23.rujna 2012: "<<C<<endl<<endl;
}

void brisanje_naziv(lista *L){
     
     char naziv[20];
     cin.ignore();
     cout<<"Upisite naziv: ";
     cin.getline(naziv,50);
     if(DeleteL(naziv,L))
                         elementi--;
     cout<<"Uspjesno obrisano!"<<endl<<endl;
}

void brisanje_vrsta(lista *L){
     char naziv[20];
     cin.ignore();
     cout<<"Upisite vrstu: ";
     cin.getline(naziv,20);
     for(int i=sifra;i>0;i--)
             if(DeleteL(naziv,L))
                                 elementi--;
     cout<<"Uspjesno obrisano!"<<endl<<endl;       
}

void sortiranje_cijena(lista *L){
  if(!L->slijedeci)
                   return;
  lista *prije , *trenutni, *poslije;
  bool sort;
  do {
    sort = false;
    trenutni=L->slijedeci;
    prije=L;
    while (trenutni->slijedeci) {
      poslije=trenutni->slijedeci;
      if (int(trenutni->pod.cijena) < int(poslije->pod.cijena)) {
         prije->slijedeci=poslije;
         trenutni->slijedeci=poslije->slijedeci;
         poslije->slijedeci=trenutni;
         sort=true;
      }
    prije=prije->slijedeci;
    trenutni=prije->slijedeci;
    }
   } while (sort);
  lista *a = L->slijedeci;
  while (a){
    cout<<"Sifra: "<<a->pod.sifra<<endl;
    cout<<"Vrsta: "<<a->pod.vrsta<<endl;
    cout<<"Naziv: "<<a->pod.naziv<<endl;
    cout<<"Cijena: "<<a->pod.cijena<<endl;
    cout<<"Datum: "<<a->pod.datum<<endl;
    cout<<"---------------------"<<endl;
    a = a -> slijedeci;
  }
  return;
}

void sortiranje_naziv(lista *L){
  if(!L->slijedeci)
                   return;
  lista *prije , *trenutni, *poslije;
  bool sort;
  do {
    sort = false;
    trenutni=L->slijedeci;
    prije=L;
    while (trenutni->slijedeci) {
      poslije=trenutni->slijedeci;
      if (int(trenutni->pod.naziv[0]) < int(poslije->pod.naziv[0])) {
         prije->slijedeci=poslije;
         trenutni->slijedeci=poslije->slijedeci;
         poslije->slijedeci=trenutni;
         sort=true;
      }
    prije=prije->slijedeci;
    trenutni=prije->slijedeci;
    }
   } while (sort);
  lista *a = L->slijedeci;
  while (a){
    cout<<"Sifra: "<<a->pod.sifra<<endl;
    cout<<"Vrsta: "<<a->pod.vrsta<<endl;
    cout<<"Naziv: "<<a->pod.naziv<<endl;
    cout<<"Cijena: "<<a->pod.cijena<<endl;
    cout<<"Datum: "<<a->pod.datum<<endl;
    cout<<"---------------------"<<endl;
    a = a -> slijedeci;
  }
  return;
}


int main(){
    int izbor;
    L = new lista;
    InitL(L);
    do{
        cout << "Program za evidenciju zivotinja"<<endl;
        cout << "-----IZBORNIK-----"<<endl;
        cout << "1. Dodavanje zapisa u listu"<<endl;
        cout << "2. Ispis sadrzaja liste"<<endl;
        cout << "3. Ispis svih zivotinja koje su dostavljene nakon 23.rujna 2012. godine"<<endl;
        cout << "4. Brisanje pojedinacnih unosa prema nazivu zivotinje"<<endl;
        cout << "5. Brisanje svih zivotinja odabrane vrste"<<endl;
        cout << "6. Silazno sortiranje prema cijeni"<<endl;
        cout << "7. Silazno sortiranje prema nazivu"<<endl;
        cout << "9. Izlaz iz programa"<<endl;
        cout << "Vas izbor: ";
        cin >> izbor;
        cout << endl << endl;
        
        switch(izbor){
         case 1: novi_zapis();
                 sifra++;
                 elementi++;
                 break;
                 
         case 2: ispis(L);
                 break;
                 
         case 3: ispis_datum(L);
                 break;
                 
         case 4: brisanje_naziv(L);
                 elementi--;
                 break;
                 
         case 5: brisanje_vrsta(L);
                 break;
                 
         case 6: sortiranje_cijena(L);
                 break;
         
         case 7: sortiranje_naziv(L);
                 break;        
                 
         case 9: break;
         
         default: cout << "Pogresan unos! " << endl;
        }
                 
        
    }while(izbor!=9);

    system("pause");
    return 0;
}

Initial URL


Initial Description
Program sluzi za evidenciju zivotinja(unosenje, ispis, sortiranje, brisanje)

Initial Title
Z1_Program_evidencije_zivotinja

Initial Tags
podataka

Initial Language
C++