Napraviti aplikaciju koja omogucava unos, pregled, brisanje i pamcenje podataka za "Piće"
-Naziv (20)
-god_proizv (int)
-cena (double)
Prilikom unosa objekti strukture se cuvaju u dinamickoj listi.
Ja sam to nekako uspeo uraditi, ali nisam bas siguran gde smestam Header File i gde sam jos pogresio...Ako neko ima malo viska vremena, bio bih zahvalan za pomoc!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"pice.h"
struct Pice{
char naziv[20];
int god_proiz:
double cena;
struct Pice *prethodni;
struct Pice *sledeci;
};
void dodavanje (struct Pice **gl){
struct Pice *pom;
struct Pice *novi;
novi=malloc(sizeof(struct Pice));
printf("Unesite naziv, godinu proizvodnje i cenu pica\n");
scanf("%s%d%lf", &novi->naziv, &novi->god_proizv, &novi->cena);
novi->prethodni=NULL;
novi->sledeci=NULL;
if(*gl==NULL)
*gl=novi;
else
{
pom=*gl;
while(pom->sledeci !=NULL)
{
pom=pom->sledeci;
}
pom->sledeci=novi;
novi->prethodni=pom;
}
}
void prikaz (struct Pice **gl){
struct Pice *pom;
double cena;
puts("Unesi cenu pica");
fflush(stdin);
scanf("%lf", &cena);
pom=*gl;
while(pom!=NULL){
if(pom->cena<cena)
printf("\t%s\t%d\n", pom ->naziv, pom->god_proizv);
pom=pom->sledeci;
}
}
void brisanje(struct Pice **gl){
struct Pice *pom;
char naziv[20];
int nadjen=0;
pom=*gl;
printf("Unesi naziv pica za brisanje\n");
scanf("%s", &naziv);
while(pom!=NULL){
if(strcmp(naziv,pom->naziv)==0){
nadjen=1;
break;
}
pom=pom->sledeci;
}
if(nadjen){
if(pom->prethodni!=NULL)
pom->prethodni->sledeci=pom->sledeci;
else{
if(pom->sledeci!=NULL)
*gl=pom->sledeci;
else
*gl=NULL;
}
if(pom->sledeci!=NULL)
pom->sledeci->prethodni=pom->prethodni;
pom->sledeci=NULL;
pom->prethodni=NULL;
free(pom);
}
}
void pamcenje(struct Pice **gl)
{
struct Pice *pom;
FILE *fajl;
pom=*gl;
fajl=fopen("Ispit13.10.txt", "w");
if (fajl!=NULL)
{
while (pom!=NULL)
{
fputs(pom->naziv, fajl):
fputs("\t", fajl);
fprintf(fajl, "%d", pom->god_proizv);
fputs("\t", fajl);
fprintf(fajl, "%.2lf", pom->cena);
fputs("\n", fajl);
pom=pom->sledeci;
}
fclose(fajl);
}
}
void main(){
struct Pice *lista=NULL;
char izbor;
do{
puts("izaberi
\n\t1-upis\n\t2-pregled\n\t3-brisanje\n\t4-pamcenje\n\t5-kraj\n");
fflush(stdin);
scanf("%s", &izbor);
switch(izbor){
case'1':
dodavanje(&lista);
break;
case'2':
prikaz(&lista);
break;
case'3':
brisanje(&lista);
break;
case'4':
pamcenje(&lista);
case'5':
return;
}
}while(1);
}
[Ovu poruku je menjao X Files dana 11.10.2007. u 15:19 GMT+1]