Return to Snippet

Revision: 60658
at November 12, 2012 05:19 by Pvrbek


Initial Code
#include<iostream>
    //#include "lista_polje.h"
    #include "lista_pokazivac.h"
    using namespace std;
    int sif=1;
    clan dodaj(lis *novi){
              zivine dodaj,tekuci;
              int stavi=0;
              clan mjesto=FirstL(novi);
              cout<<"Sifra zivotinje: "<<sif<<"."<<endl;
              dodaj.sifra=sif;
              cin.ignore();
              cout<<"Vrsta zivotinje: "<<endl;
              cin.getline(dodaj.vrsta,40);
              cout<<"Naziv zivotinje: "<<endl;
              cin.getline(dodaj.naziv,40);
p1:           cout<<"Dan: "<<endl;
              cin>>dodaj.dat[0];
              if(dodaj.dat[0]<1 || dodaj.dat[0]>31){
                 cout<<"Taj dan ne postoji.Unesite ponovo."<<endl;
                 goto p1;}
p2:           cout<<"Mjesec: "<<endl;
              cin>>dodaj.dat[1];
              if(dodaj.dat[1]<1 || dodaj.dat[1]>12){
                 cout<<"Taj mjesec ne postoji.Unesite ponovo."<<endl;
                 goto p2;}
              cout<<"Godina: "<<endl;
              cin>>dodaj.dat[2];
p3:           cout<<"Cijena: "<<endl;
              cin>>dodaj.cijena;
              if(dodaj.cijena<1){
                 cout<<"Unesena pogresna cijena.Unesite ponovo."<<endl;
                 goto p3;}
              stavi=InsertL(dodaj,EndL(novi),novi);
              if(stavi==1){
                            cout<<endl<<"1"<<endl<<endl;
                            sif++;
                            }
              else cout<<"0"<<endl<<endl;
              }
    void ispis(lis *ispis){
         clan mjesto=EndL(ispis);
         mjesto=PreviousL(mjesto,ispis);
         if(EndL(ispis)!=FirstL(ispis)){
            while(1){
                     zivine tekuci=RetreiveL(mjesto,ispis);
                     cout<<"Sifra: "<<tekuci.sifra<<endl;
                     cout<<"Vrsta: "<<tekuci.vrsta<<endl;
                     cout<<"Naziv: "<<tekuci.naziv<<endl;
                     cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
                     cout<<"Cijena: "<<tekuci.cijena<<endl;
                     if(mjesto==FirstL(ispis))break;
                     mjesto=PreviousL(mjesto,ispis);
                     cout<<endl;
                     }//while
         }//if
    }
    void dat(lis *pretraga){
         int broj=0;
         clan mjesto=EndL(pretraga);
         mjesto=PreviousL(mjesto,pretraga);
         if(EndL(pretraga)!=FirstL(pretraga)){
           while(1){
               zivine tekuci=RetreiveL(mjesto,pretraga);
               if(tekuci.dat[2]==2012){
                if((tekuci.dat[1]>=9)){
                 if(tekuci.dat[1]==9){
                  if(tekuci.dat[0]>23){
                   cout<<"Sifra: "<<tekuci.sifra<<endl;
                   cout<<"Naziv: "<<tekuci.naziv<<endl;
                   cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
                   cout<<"Vrsta: "<<tekuci.vrsta<<endl;
                   cout<<"Cijena: "<<tekuci.cijena<<endl;                  
                   broj++;
                  }
                 }
                 else{   
                  cout<<"Sifra: "<<tekuci.sifra<<endl;
                  cout<<"Naziv: "<<tekuci.naziv<<endl;
                  cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
                  cout<<"Vrsta: "<<tekuci.vrsta<<endl;
                  cout<<"Cijena: "<<tekuci.cijena<<endl;
                  broj++;
                 }
                }
               }
               else if(tekuci.dat[2]>2012){
                cout<<"Sifra: "<<tekuci.sifra<<endl;
                cout<<"Naziv: "<<tekuci.naziv<<endl;
                cout<<"Datum: "<<tekuci.dat[0]<<"."<<tekuci.dat[1]<<"."<<tekuci.dat[2]<<endl;
                cout<<"Vrsta: "<<tekuci.vrsta<<endl;
                cout<<"Cijena: "<<tekuci.cijena<<endl;
                broj++;
               }
           if(mjesto==FirstL(pretraga))break;
           mjesto=PreviousL(mjesto,pretraga);
           cout<<endl;
           }//while
         cout<<endl<<"Broj: "<<broj<<endl;
         }//if(endl)
    }//funk
    void brisi(lis *brisi){
         int t;
         if(FirstL(brisi)==EndL(brisi))return;
         zivine tekuci;
         clan mjesto=EndL(brisi);
         mjesto=PreviousL(mjesto,brisi);
         cout<<"Unesite naziv: "<<endl;
         cin.ignore();
         cin.getline(tekuci.naziv,40);
         clan pozicija=LocateL(tekuci,brisi);
         t=DeleteL(pozicija,brisi);
         if(t==1)
            cout<<"1"<<endl;
         else
            cout<<"0"<<endl;
    }
    
    void brisiv(lis *makni){
         zivine brisi;
         bool t=false;
         if(FirstL(makni)==EndL(makni)){
              cout<<"Lista je prazna... "<<endl;
              return;}
         cout<<"Unesite vrstu: "<<endl;
         cin.ignore();
         cin.getline(brisi.vrsta,40);
         clan mjesto=LocateL(brisi,makni);
           if(mjesto==0){
               DeleteL(mjesto,makni);
               t=true;
               return;}
           else
               while(mjesto!=EndL(makni)){
                  DeleteL(mjesto,makni);
                  t=true;
                  mjesto=LocateL(brisi,makni);}
         if(t==true) cout<<"1"<<endl<<endl;
         else cout<<"0"<<endl<<endl;}
    int main(){
        int odabir;
        lis *L=InitL(L);
        do{
           cout<<"\t\t\t\tIZBORNIK"<<endl;
           cout<<"\t\t\t\t--------"<<endl;
           cout<<"1. Dovanje zapisa po rastucoj sifri zivotinje "<<endl;
           cout<<"2. Ispis sadrzaja liste od posljednje"<<endl;
           cout<<"3. Pretrazivanje liste i ispis svih zivotinja(poslje 23.9.2012)"<<endl;
           cout<<"4. Brisanje pojedinih zivotinja po nazivu"<<endl;
           cout<<"5. Brisanje zivotinja odredene vrste"<<endl;
           cout<<"6. Silazni Merge sort"<<endl;
           cout<<"7. Kraj programa"<<endl;
           cout<<endl;
p4  :      cout<<"ODABIR: ";
           cin>>odabir;
           if(odabir<1 || odabir>7){
                       cout<<"Krivi unos!"<<endl;
                       goto p4;}
           switch(odabir){
           case 1:dodaj(L);break;
           case 2:ispis(L);break;
           case 3:dat(L);break;
           case 4:brisi(L);break;
           case 5:brisiv(L);break;
           case 6:clan kraj=PreviousL(EndL(L),L);Merge(L,FirstL(L),EndL(L)-1);break;
           }
        }while(odabir!=7);
    return 0;
    }

Initial URL


Initial Description
Ovaj program služi za evidenciju životinja (šifra životinja,vrsta,naziv,cijenu i datum dostave).Program je implementiran pomoću lista s pomoću pokazivača i pomoču polja koje smo stavili kao dvije različite datoteke zaglavlja s pomoću kojih možemo pokrenuti program.Mislim da je moj program dobar i drugaciji od ostalih jer sam stavio da se kod krivog unosa datuma ili cijene skoči ponovo na njihov upis da se nebi upisali krivi brojevi što bih naveo kao glavnu razliku od programa ostalih studenata koje sam vidio te sam uglavnom koristio imena varijabli i funkcija na način da se jednostavno i brzo primjeti čemu služe, te sam također upotrebljavao liste na način kako smo to radili na programiranju 2 pa  mislim da je jednostavno za razumjeti.

Initial Title
Strukture podataka/Evidencija životinja/Main

Initial Tags
podataka

Initial Language
C++