Revision: 60566
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 11, 2012 21:19 by Quake6
Initial Code
#include <iostream>
#include "liste_poka.h"
//#include "lista_polja.h"
#include <string.h>
#include <windows.h>
using namespace std;
void spoji_polja( z *polje[],int low,int mid,int high )
{
int l,p,d,k;
z*pom[1000];
l=low;
p=low;
d=mid+1;
while( ( l<=mid )&&( d<=high ) ) {
if( polje[l]->cijena>=polje[d]->cijena ) {
pom[p]=polje[l];
l++;
} else {
pom[p]=polje[d];
d++;
}
p++;
}
if( l>mid ) {
for( k=d; k<=high; k++ ) {
pom[p]=polje[k];
p++;
}
} else {
for( k=l; k<=mid; k++ ) {
pom[p]=polje[k];
p++;
}
}
for( k=low; k<=high; k++ ){
polje[k]=pom[k];
}
}
bool brisi_sve( t*list_head,int cetvrti_ili_peti)
{
bool obrisano=0;
if(cetvrti_ili_peti==0){
cout<<"Naziv vrste-> ";
}
else{
cout<<"Naziv zivotinje-> ";
}
char naziv[40];
cin.ignore();
cin.getline( naziv,40 );
int br=NumberL( list_head );
z*trenutni;
while(br>0) {
trenutni=RetrieveL( br,list_head );
if(cetvrti_ili_peti==1) {
if( !strcmp( trenutni->naziv,naziv ) ) {
DeleteL( br,list_head );
br--;
obrisano=1;
} else{
br--;
}
} else {
if( !strcmp( trenutni->vrsta,naziv ) ) {
DeleteL( br,list_head );
br--;
obrisano=1;
} else{
br--;
}
}
}
return obrisano;
}
void pretraga( t*list_head )
{
int br=NumberL( list_head );
z*kretanje_kroz_listu;
int b=0;
for( int i=1; i<=br; i++ ) {
kretanje_kroz_listu=RetrieveL( i,list_head );
if( kretanje_kroz_listu->godina>2012 ) {
cout<<"-----------------------"<<endl;
cout<<"Sifra-> "<<kretanje_kroz_listu->sifra<<endl;
cout<<"Vrsta-> "<<kretanje_kroz_listu->vrsta<<endl;
cout<<"Naziv-> "<<kretanje_kroz_listu->naziv<<endl;
cout<<"Datum-> "<<kretanje_kroz_listu->dan<<"."<<kretanje_kroz_listu->mjesec<<"."<<kretanje_kroz_listu->godina<<endl;
cout<<"Cijena-> "<<kretanje_kroz_listu->cijena<<endl;;
b++;
} else if( kretanje_kroz_listu->godina==2012&&kretanje_kroz_listu->mjesec>9 ) {
cout<<"-----------------------"<<endl;
cout<<"Sifra-> "<<kretanje_kroz_listu->sifra<<endl;
cout<<"Vrsta-> "<<kretanje_kroz_listu->vrsta<<endl;
cout<<"Naziv-> "<<kretanje_kroz_listu->naziv<<endl;
cout<<"Datum-> "<<kretanje_kroz_listu->dan<<"."<<kretanje_kroz_listu->mjesec<<"."<<kretanje_kroz_listu->godina<<endl;
cout<<"Cijena-> "<<kretanje_kroz_listu->cijena<<endl;
b++;
} else if( kretanje_kroz_listu->godina==2012&&kretanje_kroz_listu->mjesec==9&&kretanje_kroz_listu->dan>23 ) {
cout<<"-----------------------"<<endl;
cout<<"Sifra-> "<<kretanje_kroz_listu->sifra<<endl;
cout<<"Vrsta-> "<<kretanje_kroz_listu->vrsta<<endl;
cout<<"Naziv-> "<<kretanje_kroz_listu->naziv<<endl;
cout<<"Datum-> "<<kretanje_kroz_listu->dan<<"."<<kretanje_kroz_listu->mjesec<<"."<<kretanje_kroz_listu->godina<<endl;
cout<<"Cijena-> "<<kretanje_kroz_listu->cijena<<endl;
b++;
}
}
cout<<"Broj zivotinja dostavljenih nakon 23. rujna 2012-> "<<b<<endl;
}
z*pomocni=new z;
t*zadnji2=new t;
int z_dodan=0;
void mergesort( z *polje[], int low,int high )
{
int mid;
if( low<high ) {
mid=( low+high )/2;
mergesort( polje,low,mid ); // 4
mergesort( polje,mid+1,high );
spoji_polja( polje,low,mid,high );
}
}
void ispis_zivotinja( t*list_head )
{
z*kretanje_kroz_listu;
int br= NumberL( list_head );
cout<<"Ukupan broj zivotinja-> "<<br<<endl;
if( z_dodan==0 ){
return;
}
for( int i=z_dodan; i<=br; i++ ) {
kretanje_kroz_listu=RetrieveL( i,list_head );
cout<<"-----------------------"<<endl;
cout<<"Sifra-> "<<kretanje_kroz_listu->sifra<<endl;
cout<<"Vrsta-> "<<kretanje_kroz_listu->vrsta<<endl;
cout<<"Naziv-> "<<kretanje_kroz_listu->naziv<<endl;
cout<<"Datum-> "<<kretanje_kroz_listu->dan<<"."<<kretanje_kroz_listu->mjesec<<"."<<kretanje_kroz_listu->godina<<endl;
cout<<"Cijena-> "<<kretanje_kroz_listu->cijena<<endl;
}
}
void sortiraj( t*list_head )
{
int br=NumberL( list_head );
z*polje[br];
for( int i=1; i<=br; i++ ){
polje[i-1]=RetrieveL( i,list_head );
}
mergesort( polje,0,br-1 );
for( int i=0; i<br; i++ ) {
cout<<"-----------------------"<<endl;
cout<<"Sifra-> "<<polje[i]->sifra<<endl;
cout<<"Vrsta-> "<<polje[i]->vrsta<<endl;
cout<<"Naziv-> "<<polje[i]->naziv<<endl;
cout<<"Datum-> "<<polje[i]->dan<<"."<<polje[i]->mjesec<<"."<<polje[i]->godina<<endl;
cout<<"Cijena-> "<<polje[i]->cijena<<endl;
}
}
bool dodaj_novu( t*list_head )
{
int br=NumberL( list_head );
bool dodan=false;
z*nova_zivotinja=new z;
cout<<"Sifra-> ";
cin>>nova_zivotinja->sifra;
cout<<"Vrsta->";
cin>>nova_zivotinja->vrsta;
cout<<"Naziv-> ";
cin>>nova_zivotinja->naziv;
cout<<"Cijena-> ";
cin>>nova_zivotinja->cijena;
cout<<"Dan dostave-> ";
cin>>nova_zivotinja->dan;
cout<<"Mjesec dostave-> ";
cin>>nova_zivotinja->mjesec;
cout<<"Godina dostave-> ";
cin>>nova_zivotinja->godina;
while( br>=0 ) {
if( br==0 ) {
InsertL( nova_zivotinja,0,list_head );
dodan=true;
z_dodan=1;
break;
}//if
pomocni=RetrieveL( br,list_head );
if( nova_zivotinja->sifra>pomocni->sifra ) {
InsertL( nova_zivotinja,br,list_head );
dodan=true;
z_dodan=br+1;
break;
}//if
else{
br--;
}
}//while
if( !dodan ){
return 0;
}
return 1;
}
int main()
{
t*list_head;
list_head=InitL( list_head );
int izbor;
do {
cout<<"================================"<<endl;
cout<<"Izbornik-> "<<endl;
cout<<"1. Nova zivotinja"<<endl;
cout<<"2. Ispis zivotinja"<<endl;
cout<<"3. Pretraga"<<endl;
cout<<"4. Brisanje prema nazivu"<<endl;
cout<<"5. Brisanje prema vrsti"<<endl;
cout<<"6. Sortiranje"<<endl;
cout<<"10. Izlaz"<<endl;
cin>>izbor;
if(izbor==1) {
int povratak=dodaj_novu(list_head);
if(povratak){
cout<<"Dodan"<<endl;
}
else{
cout<<"Nije dodan"<<endl;
}
} if(izbor==2)
ispis_zivotinja( list_head );
if(izbor==3)
pretraga( list_head );
if(izbor==4) {
int povratak= brisi_sve( list_head,1 );
if(povratak){
cout<<"Obrisan"<<endl;
}
else{
cout<<"Nije obrisan"<<endl;
}
} if(izbor==5) {
int povratak= brisi_sve( list_head,0 );
if(povratak) {
cout<<"Obrisan"<<endl;
}
else {
cout<<"Nije obrisan"<<endl;
}
} if(izbor==6)
sortiraj( list_head );
}//do
while( izbor!=10 );
DeleteAll( list_head );
return 0;
}
Initial URL
Initial Description
Evidencija životinja
Initial Title
Evidencija životinja - Zadatak_1, strukture podataka
Initial Tags
podataka
Initial Language
C++