Return to Snippet

Revision: 60770
at November 12, 2012 09:02 by bcobanov_foi


Initial Code
#include<iostream>
#include "lista_polje.h"
//#include "lista_pokazivac.h"
using namespace std;
int sif=1;
element unos(lista *novi)
{
      zivotinja unos, sad;
      int brojac_liste=0;
      element lokacija=FirstL(novi);
      cout<<"Sifra zivotinje: ";
      cout<<sif<<endl;
      unos.sifra=sif;
      cin.ignore();
      cout<<"Vrsta zivotinje: ";
      cin.getline(unos.vrsta,35);
      cout<<"Naziv zivotinje: ";
      cin.getline(unos.naziv,35);
      do
      {
       cout<<"Dan dostave: ";
       cin>>unos.datum[0];
       if(unos.datum[0]<1 || unos.datum[0]>31) cout << "Unjeli ste krivi datum, unesite ponovno!" << endl;
      }while(unos.datum[0]<1 || unos.datum[0]>31);
      do
      {
       cout<<"Mjesec dostave: ";
       cin>>unos.datum[1];
       if(unos.datum[1]<1 || unos.datum[1]>12) cout << "Unjeli ste krivi mjesec, unesite ponovno!" << endl;
      }while(unos.datum[1]<1 || unos.datum[1]>12);
      do
      {
       cout<<"Godina dostave: ";
       cin>>unos.datum[2];
       if(unos.datum[2]<1900) cout << "Unjeli ste krivu godinu, unesite ponovno!" << endl;
      }while(unos.datum[2]<1900);
      cout<<"Cijena zivotinje: ";
      cin>>unos.cijena;
      brojac_liste=InsertL(unos,EndL(novi),novi);
      if(brojac_liste==1)
      {
             cout<<endl<<"Element je uspjesno dodan! "<<endl<<endl;
             sif++;
      }
      else cout<<"Element nije dodan! "<<endl<<endl;
}
void ispis(lista *ispis)
{
    element lokacija=EndL(ispis);
    lokacija=PreviousL(lokacija,ispis);
    if(EndL(ispis)!=FirstL(ispis))
    {
     while(5)
     {
             zivotinja sad=RetreiveL(lokacija,ispis);
             cout<<"Sifra "<<sad.sifra<<endl;
             cout<<"Vrsta "<<sad.vrsta<<endl;
             cout<<"Naziv "<<sad.naziv<<endl;
             cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl;
             cout<<"Cijena "<<sad.cijena<<endl;
             cout<<"\t\t\t\t\t\t\t\t"<<endl;
             if(lokacija==FirstL(ispis))break;
             lokacija=PreviousL(lokacija,ispis);
     } 
    }   
}
void datum(lista *pretraga)
{
     int broj=0;
     element lokacija=EndL(pretraga);
     lokacija=PreviousL(lokacija,pretraga);
     if(EndL(pretraga)!=FirstL(pretraga))
     {
      while(1)
      {
       zivotinja sad=RetreiveL(lokacija,pretraga);
       if(sad.datum[2]==2012)
       {
        if((sad.datum[1]>=9))
        {
         if(sad.datum[1]==9)
         {
          if(sad.datum[0]>23)
          {
           cout<<"Sifra "<<sad.sifra<<endl;              
           cout<<"Naziv "<<sad.naziv<<endl; 
           cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl;
           cout<<"Vrsta "<<sad.vrsta<<endl;
           cout<<"Cijena "<<sad.cijena<<endl;
           cout<<"\t\t\t\t\t\t"<<endl;  
           broj++;             
          }
         }
         else
         {
          cout<<"Sifra "<<sad.sifra<<endl;              
          cout<<"Naziv "<<sad.naziv<<endl; 
          cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl;
          cout<<"Vrsta "<<sad.vrsta<<endl;
          cout<<"Cijena "<<sad.cijena<<endl;
          cout<<"\t\t\t\t\t\t"<<endl;  
          broj++;      
         }
        }
       }
       else if(sad.datum[2]>2012)
       {
        cout<<"Sifra "<<sad.sifra<<endl;              
        cout<<"Naziv "<<sad.naziv<<endl; 
        cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl;
        cout<<"Vrsta "<<sad.vrsta<<endl;
        cout<<"Cijena "<<sad.cijena<<endl;
        cout<<"\t\t\t\t\t\t"<<endl;  
        broj++;     
       }
        if(lokacija==FirstL(pretraga))break;
        lokacija=PreviousL(lokacija,pretraga);
      }                
      cout<<endl<<"Broj "<<broj<<endl;
     }
}
void brisanje(lista *brisi)
{
     int potvrda;
     if(FirstL(brisi)==EndL(brisi))return;
     zivotinja sad;
     element lokacija=EndL(brisi);
     lokacija=PreviousL(lokacija,brisi);
     cout<<"Unesite naziv: "<<endl;
     cin.ignore();
     cin.getline(sad.naziv,35);
     element pozicija=LocateL(sad,brisi);
     potvrda=DeleteL(pozicija,brisi);
     if(potvrda==1) cout<<"Element uspjesno ukonjen! "<<endl;
     else cout<<"Element nije obrisan! "<<endl;
}
void brisanje_vrsta(lista *ukloni)
{
     zivotinja e;
     bool potvrda=false;
     if(FirstL(ukloni)==EndL(ukloni))
     {
      cout<<"Lista je prazna "<<endl;                         
      return;
     }
     cout<<"Unesite vrstu "<<endl;
     cin.ignore();
     cin.getline(e.vrsta,35);
     element lokacija=LocateL(e,ukloni);
     if(lokacija==0)
     {
                    DeleteL(lokacija,ukloni);
                    potvrda=true;
                    return;
     }
     else
         while(lokacija!=EndL(ukloni))
         {
                  DeleteL(lokacija,ukloni);
                  potvrda=true;
                  lokacija=LocateL(e,ukloni);
         }
     if(potvrda==true) cout<<"Elementi uspjesno obrisani "<<endl<<endl;
     else cout<<"Elementi nisu obrisani "<<endl<<endl;
}
int main()
{
    int select;
    lista *L=InitL(L);
    do
    {
     cout<<"------------------------IZBORNIK------------------------"<<endl;
     cout<<"1. Dodaj zapis u listu po rastucoj sifri "<<endl;
     cout<<"2. Ispis svih unesenih elemenata (od zadnjeg do prvog unesenog) "<<endl;
     cout<<"3. Svi elementi novijeg datuma od 23.9.2012"<<endl;
     cout<<"4. Brisanje elementa sa odredenim nazivom "<<endl;
     cout<<"5. Brisanje svih elemenata odredene vrste "<<endl;
     cout<<"6. Merge sort elemenata liste (silazno po cijeni i silazno po nazivu)"<<endl;
     cout<<"9. Kraj programa "<<endl; 
     cout<<"VAS ODABIR: ";
     cin>>select;
     switch(select)
     {
      case 1:
           unos(L);
           break;  
      case 2:
            ispis(L);
            break;
      case 3:
            datum(L);
            break;    
      case 4:
            brisanje(L);
            break;  
      case 5:
            brisanje_vrsta(L);
            break;
      case 6:
            element kraj=PreviousL(EndL(L),L);
            MSort(L,FirstL(L),EndL(L)-1);
            break;
      }               
     }while(select!=9);      
     return 0;
}

Initial URL


Initial Description
Programski kod main funkcije zadatka 1 iz struktura podataka.

Initial Title
Main.cpp - Evidencija životinja

Initial Tags


Initial Language
C++