Revision: 60593
Updated Code
at November 12, 2012 05:50 by dmacan23
Updated Code
/*
* glavna.cpp
*
* Created on: Nov 8, 2012
* Author: David Ante Macan
*/
#include <iostream>
//#include "lista_pokazivaci.h"
#include "lista_polje.h"
bool polje = false;
using namespace std;
void unos(char *niz){
cin.getline(niz, 100);
if(cin.gcount()==1)
cin.getline(niz,100);
}
int sif=1;
int mog_1(tlista *L){
tziv nova;
nova.sifra = sif;
cout<<"Sifra zivotinje: "<<nova.sifra<<endl;
cout<<"Vrsta zivotinje: ";
unos(nova.vrsta);
cout<<"Naziv zivotinje: ";
unos(nova.naziv);
cout<<"Cijena zivotinje: ";
cin>>nova.cijena;
cout<<"Datum: "<<endl;
do{
cout<<"\tGodina (YYYY): ";
cin>>nova.datum[0];
}while(nova.datum[0]<1970 || nova.datum[0]>2020);
do{
cout<<"\tMjesec (MM): ";
cin>>nova.datum[1];
}while(nova.datum[1]<0 || nova.datum[1]>12);
do{
cout<<"\tDan (DD): ";
cin>>nova.datum[2];
}while(nova.datum[2]<0 || nova.datum[2]>30);
int provjera_upisa = InsertL(nova, EndL(L), L);
if(provjera_upisa){
cout<<"Upis je bio uspjesan!"<<endl;
sif++;
return 1;
}
else
return 0;
}
void ispis(tziv tekuci){
cout<<"\n\n"
<<"Sifra zivotinje: "<<tekuci.sifra<<endl
<<"Vrsta zivotinje: "<<tekuci.vrsta<<endl
<<"Naziv zivotinje: "<<tekuci.naziv<<endl
<<"Cijena zivotinje: "<<tekuci.cijena<<endl
<<"Datum dostave: "<<tekuci.datum[2]<<"."<<tekuci.datum[1]<<"."<<tekuci.datum[0]<<"."<<endl
<<"-------------------------------------"<<endl<<endl;
}
int mog_2(tlista *L){
tziv z;
tip zadnji = PreviousL(EndL(L),L);
while(EndL(L)!=FirstL(L)){
z = RetrieveL(zadnji, L);
ispis(z);
if(zadnji == FirstL(L))
break;
zadnji = PreviousL(zadnji,L);
}
return 1;
}
int mog_3(tlista *L){
tziv z;
tip iduci = FirstL(L);
cout<<"Ispis: "<<endl;
while(1){
z = RetrieveL(iduci,L);
if(z.datum[0]>2012)
ispis(z);
if(z.datum[0]==2012){
if((z.datum[1]==9) && (z.datum[2]>=23))
ispis(z);
else if(z.datum[1]>9)
ispis(z);
}
if(iduci == PreviousL(EndL(L),L))
break;
iduci = NextL(iduci, L);
}
return 1;
}
int mog_4(tlista *L){
tziv z;
tip tekuci = FirstL(L);
char vrsta[30];
cout<<"Unesite vrstu koju zelite obrisati: ";
unos(vrsta);
cout<<"\n\nBrisanje"<<endl<<endl;
while(1){
z = RetrieveL(tekuci,L);
if(strcmp(vrsta, z.vrsta)==0){
cout<<tekuci<<" | ";
DeleteL(tekuci, L);
if(tekuci==PreviousL(EndL(L),L))
break;
}
if(tekuci == NextL(EndL(L),L))
break;
tekuci = NextL(tekuci,L);
}
return 1;
}
int mog_5(tlista *L){
tziv z;
tip tekuci = FirstL(L);
char naziv[30];
cout<<"Unesite koji naziv zelite obrisati: ";
unos(naziv);
cout<<"\n\nBrisanje"<<endl<<endl;
while(1){
z = RetrieveL(tekuci,L);
if(strcmp(naziv, z.naziv)==0){
DeleteL(tekuci,L);
if(tekuci==PreviousL(EndL(L),L))
break;
}
if(tekuci == PreviousL(EndL(L),L))
break;
tekuci = NextL(tekuci,L);
}
return 1;
}
int main(){
tlista *L = InitL(L);
int odabir;
do{
cout<<"\n\n\n----------------------------------------------------"<<endl
<<"1. Zapis prema rastucoj sifri zivotinje"<<endl
<<"2. Ispis svih zivotinja od posljednje unesene"<<endl
<<"3. Ispis svih zivotinja sa datumom nakon 23.09.2012."<<endl
<<"4. Brisanje pojedinacnih unosa prema vrsti"<<endl
<<"5. Brisanje pojedinacnih unosa prema nazivu"<<endl
<<"6. Silazno sortiranje sadrzaja liste prema cijeni i nazivu"<<endl
<<"7. {TEST} DeleteAllL(L)"<<endl
<<"9. Izlaz iz programa"<<endl
<<"----------------------------------------------------------"<<endl
<<"\nOdabir: ";
cin>>odabir;
switch(odabir){
case 1: mog_1(L); break;
case 2: mog_2(L); break;
case 3: mog_3(L); break;
case 4: mog_4(L); break;
case 5: mog_5(L); break;
case 6: MSort(L,FirstL(L),EndL(L)-1); break;
case 7: DeleteAllL(L); break;
case 9: cout<<"\n\n\n\t\t--- KRAJ PROGRAMA ---"<<endl; break;
default: cout<<"\n\nPogresan unos! Odaberite jedan od ponudjenih!"<<endl; break;
}
}while(odabir!=9);
return 0;
}
Revision: 60592
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 12, 2012 01:51 by dmacan23
Initial Code
/*
* glavna.cpp
*
* Created on: Nov 8, 2012
* Author: David Ante Macan
*/
#include <iostream>
//#include "lista_pokazivaci.h"
#include "lista_polje.h"
bool polje = false;
using namespace std;
void unos(char *niz){
cin.getline(niz, 100);
if(cin.gcount()==1)
cin.getline(niz,100);
}
int sif=1;
int mog_1(tlista *L){
tziv nova;
nova.sifra = sif;
cout<<"Sifra zivotinje: "<<nova.sifra<<endl;
cout<<"Vrsta zivotinje: ";
unos(nova.vrsta);
cout<<"Naziv zivotinje: ";
unos(nova.naziv);
cout<<"Cijena zivotinje: ";
cin>>nova.cijena;
cout<<"Datum: "<<endl;
do{
cout<<"\tGodina (YYYY): ";
cin>>nova.datum[0];
}while(nova.datum[0]<1970 || nova.datum[0]>2020);
do{
cout<<"\tMjesec (MM): ";
cin>>nova.datum[1];
}while(nova.datum[1]<0 || nova.datum[1]>12);
do{
cout<<"\tDan (DD): ";
cin>>nova.datum[2];
}while(nova.datum[2]<0 || nova.datum[2]>30);
int provjera_upisa = InsertL(nova, EndL(L), L);
if(provjera_upisa){
cout<<"Upis je bio uspjesan!"<<endl;
sif++;
return 1;
}
else
return 0;
}
void ispis(tziv tekuci){
cout<<"\n\n"
<<"Sifra zivotinje: "<<tekuci.sifra<<endl
<<"Vrsta zivotinje: "<<tekuci.vrsta<<endl
<<"Naziv zivotinje: "<<tekuci.naziv<<endl
<<"Cijena zivotinje: "<<tekuci.cijena<<endl
<<"Datum dostave: "<<tekuci.datum[2]<<"."<<tekuci.datum[1]<<"."<<tekuci.datum[0]<<"."<<endl
<<"-------------------------------------"<<endl<<endl;
}
int mog_2(tlista *L){
tziv z;
tip zadnji = PreviousL(EndL(L),L);
while(EndL(L)!=FirstL(L)){
z = RetrieveL(zadnji, L);
ispis(z);
if(zadnji == FirstL(L))
break;
zadnji = PreviousL(zadnji,L);
}
return 1;
}
int mog_3(tlista *L){
tziv z;
tip iduci = FirstL(L);
cout<<"Ispis: "<<endl;
while(1){
z = RetrieveL(iduci,L);
if(z.datum[0]>2012)
ispis(z);
if(z.datum[0]==2012){
if((z.datum[1]==9) && (z.datum[1]>=23))
ispis(z);
else if(z.datum[1]>9)
ispis(z);
}
if(iduci == PreviousL(EndL(L),L))
break;
iduci = NextL(iduci, L);
}
return 1;
}
int mog_4(tlista *L){
tziv z;
tip tekuci = FirstL(L);
char vrsta[30];
cout<<"Unesite vrstu koju zelite obrisati: ";
unos(vrsta);
cout<<"\n\nBrisanje"<<endl<<endl;
while(1){
z = RetrieveL(tekuci,L);
if(strcmp(vrsta, z.vrsta)==0){
cout<<tekuci<<" | ";
DeleteL(tekuci, L);
break;
}
if(tekuci == PreviousL(EndL(L),L))
break;
tekuci = NextL(tekuci,L);
}
return 1;
}
int mog_5(tlista *L){
tziv z;
tip tekuci = FirstL(L);
char naziv[30];
cout<<"Unesite koji naziv zelite obrisati: ";
unos(naziv);
cout<<"\n\nBrisanje"<<endl<<endl;
while(1){
z = RetrieveL(tekuci,L);
if(strcmp(naziv, z.naziv)==0){
DeleteL(tekuci,L);
break;
}
if(tekuci == PreviousL(EndL(L),L))
break;
tekuci = NextL(tekuci,L);
}
return 1;
}
int main(){
tlista *L = InitL(L);
int odabir;
do{
cout<<"\n\n\n----------------------------------------------------"<<endl
<<"1. Zapis prema rastucoj sifri zivotinje"<<endl
<<"2. Ispis svih zivotinja od posljednje unesene"<<endl
<<"3. Ispis svih zivotinja sa datumom nakon 23.09.2012."<<endl
<<"4. Brisanje pojedinacnih unosa prema vrsti"<<endl
<<"5. Brisanje pojedinacnih unosa prema nazivu"<<endl
<<"6. Silazno sortiranje sadrzaja liste prema cijeni i nazivu"<<endl
<<"7. {TEST} DeleteAllL(L)"<<endl
<<"9. Izlaz iz programa"<<endl
<<"----------------------------------------------------------"<<endl
<<"\nOdabir: ";
cin>>odabir;
switch(odabir){
case 1: mog_1(L); break;
case 2: mog_2(L); break;
case 3: mog_3(L); break;
case 4: mog_4(L); break;
case 5: mog_5(L); break;
case 6: MSort(L,FirstL(L),EndL(L)-1); break;
case 7: DeleteAllL(L); break;
case 9: cout<<"\n\n\n\t\t--- KRAJ PROGRAMA ---"<<endl; break;
default: cout<<"\n\nPogresan unos! Odaberite jedan od ponudjenih!"<<endl; break;
}
}while(odabir!=9);
return 0;
}
Initial URL
Initial Description
1. Zadatak kolegija "Strukture podataka" na Fakultetu Organizacije i Informatike u Varaždinu. Trebalo je napraviti program koji služi za evidenciju kućnih ljubimaca u trgovini za kućne ljubimce, i to pomoću ATP liste implementirane poljem i pokazivaÄima. Ovo je glavna funkcija koja treba joÅ¡ ili "lista_pokazivaci.h", ili "lista_polje.h" kako bi radila
Initial Title
Strukture_Podataka_Z1-glavna.cpp
Initial Tags
Initial Language
C++