Revision: 60603
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 12, 2012 02:11 by nzvorc
Initial Code
#include<iostream> #include<cstring> using namespace std; struct lista{ int sifra; char vrsta[20], naziv[30]; int dan, mj, god; float cijena; }; lista L[100]; int sif=1; //1. Dodavanje zapisa u listu int InsertL(int c, lista L[]){ L[c].sifra=sif++; if(c!=0) cin.ignore(); cout<<"Unesi vrstu zivotinje: "; cin.getline(L[c].vrsta, 20); cout<<"Unesi naziv zivotinje: "; cin.getline(L[c].naziv, 30); cout<<"Unesi cijenu zivotinje: "; cin>>L[c].cijena; cout<<"Unesi datum dostave:"<<endl; cout<<"Dan: "; cin>>L[c].dan; cout<<"Mjesec: "; cin>>L[c].mj; cout<<"Godina: "; cin>>L[c].god; if(L[c].dan>31 || L[c].dan<1 || L[c].mj<1 || L[c].mj>12 || L[c].god<1993) return 0; return 1; } //2. Ispis zapisa liste void IspisL(int c, lista L[]){ for(int x=c-1; x>=0; x--){ cout<<"Sifra: "; if(L[x].sifra<10) cout<<"00"; else if(L[x].sifra<100)cout<<"0"; cout<<L[x].sifra<<endl; cout<<"Vrsta: "<<L[x].vrsta<<endl; cout<<"Naziv: "<<L[x].naziv<<endl; cout<<"Cijena: "<<L[x].cijena<<endl; cout<<"Datum: "<<L[x].dan<<"."<<L[x].mj<<"."<<L[x].god<<endl; cout<<"---------------------" << endl; } } //3. Pretrazivaje liste int LocateL(int c, lista L[]){ int bz=0; for(int x=0; x<c; x++){ if(L[x].god<2012) continue; if(L[x].god==2012 && L[x].mj<9) continue; if(L[x].mj==9 && L[x].god==2012 && L[x].dan<=23) continue; cout<<"Sifra: "; if(L[x].sifra<10) cout<<"00"; else if(L[x].sifra<100)cout<<"0"; cout<<L[x].sifra<<endl; cout<<"Vrsta: "<<L[x].vrsta<<endl; cout<<"Naziv: "<<L[x].naziv<<endl; cout<<"Cijena: "<<L[x].cijena<<endl; cout<<"Datum dostave: "<<L[x].dan<<"."<<L[x].mj<<"."<<L[x].god<<endl; cout<<"-----------------------"<<endl; bz++; } return bz; } //4. Brisanje prema nazivu int DeleteL(int c, char naziv[], lista L[]){ int x; for(x=0; x<c; x++){ if(!strcmp(naziv, L[x].naziv)) break; } if(x==c) return 0; for(int i=x; i<c; i++){ L[i].sifra=L[i+1].sifra; strcpy(L[i].vrsta,L[i+1].vrsta); strcpy(L[i].naziv,L[i+1].naziv); L[i].cijena=L[i+1].cijena; L[i].dan=L[i+1].dan; L[i].mj=L[i+1].mj; L[i].god=L[i+1].god; } return 1; } //5. Brisanje prema vrsti int DeleteVrstaL(int c, char vrsta[], lista L[]){ int x; for(x=0; x<c; x++){ if(!strcmp(vrsta, L[x].vrsta)) break; } if(x==c) return 0; for(int i=x; i<c; i++){ L[i].sifra=L[i+1].sifra; strcpy(L[i].vrsta,L[i+1].vrsta); strcpy(L[i].naziv,L[i+1].naziv); L[i].cijena=L[i+1].cijena; L[i].dan=L[i+1].dan; L[i].mj=L[i+1].mj; L[i].god=L[i+1].god; } return 1; } //6. Sortiranje merge sort void Spajanje(lista *L, int i, int k, int j){ int I=i, J=k+1, K=0; lista *A=new lista [j-i+1]; while(I<=k && J<=j){ if(L[I].cijena<=L[J].cijena){ A[K++]=L[I++]; } else { A[K++]=L[J++]; } }//while if(I>k) while(J<=j) { A[K++]=L[J++]; }//while else while(I<=k) { A[K++]=L[I++]; }//while for(int I=0; I<=j-i; I++){ L[i+I]=A[I]; } }//spajanje void MSort(lista *L, int i, int j){ if(i<j){ int k=(i+j)/2; MSort(L,i,k); MSort(L,k+1,j); Spajanje(L,i,k,j); } } void SortL(int c, lista *L){ MSort(L,0,c-1); cout<<"Lista je uspjesno sortirana!!!"<<endl; }
Initial URL
Initial Description
Ovo je datoteka zaglavlja lista_polje.h u kojoj se nalazi implementacija liste pomoću polja. Riješenje je realizirano pomoću polja.
Initial Title
Zadatak1_lista_polje.h
Initial Tags
sort
Initial Language
C++