|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
26.5.2013, 20:42 | #1 |
Novi član
Član od: 26.5.2013.
Poruke: 1
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
|
Mala pomoc u vezi programa
Pozdrav, imam problem u vezi programa koji treba da radi sledece stvari:
Da kreira i ažurira sadržaj tekstualne datoteke (npr. knjige.txt) sa sledećim podacima: ime_knjige, autor, izdavac i god_izdavanja, i prikazuje na ekranu sledeće opcije: 1. Dodavanje knjige katalogu 2. Pronalazenje knjige na osnovu imena 3. Prikaz na ekranu kataloga 4. Kraj rada (sa cuvanjem izmena) Vec sam taj program odradio i ovako izgleda: Kod:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> struct knjiga{ char ime_knjige[15],autor[15],izdavac[20]; int god_izdavanja; struct knjiga *sledeca; }*prva,*tekuca; void ucitaj(char *fajl,int *br); void dodavanje(void); void nadji(void); void izlaz(char *fajl); main() { char odg,ime_fajla[40]; int poc=1; prva=malloc(sizeof(struct knjiga)); tekuca=prva; printf("\nUnesite ime fajla: "); //fajl treba da je prethodno kreiran gets(ime_fajla); ucitaj(ime_fajla,&poc); tekuca->sledeca=NULL; do{ printf("\nD. dodavanje knjige katalogu\nP. pronalazi u katalogu na osnovu imena\nI. izlaz (sa cuvanjem izmena)\t"); fflush(stdin); odg=toupper(getchar()); if(odg=='D') { if(poc!=1) { if((tekuca->sledeca=malloc(sizeof(struct knjiga)))==NULL) { printf("\n\nNE MOGU DA DODELIM MEMORIJU!!!"); exit(1); } tekuca=tekuca->sledeca; } dodavanje(); poc=0; tekuca->sledeca=NULL; } if(odg=='P') nadji(); if(odg=='I') izlaz(ime_fajla); }while(odg!='I'); } void ucitaj(char *fajl,int *br) { FILE *f; char ime_knjige[15],autor[15],izdavac[20]; int god_izdavanja; if((f=fopen(fajl,"r"))==NULL) { fprintf(stderr,"\n\nFAJL NEPOSTOJI!!!"); exit(1); } while(1) { ime_knjige[0]='\0'; fscanf(f,"%s",ime_knjige); if(ime_knjige[0]=='\n' || ime_knjige[0]=='\0') break; fscanf(f,"%s",autor); fscanf(f,"%s",izdavac); fscanf(f,"%d",&god_izdavanja); if(*br!=1) { if((tekuca->sledeca=malloc(sizeof(struct knjiga)))==NULL) { printf("\n\nNE MOGU DA DODELIM MEMORIJU!!!"); exit(1); } tekuca=tekuca->sledeca; } strcpy(tekuca->ime_knjige,ime_knjige); strcpy(tekuca->autor,autor); strcpy(tekuca->izdavac,izdavac); tekuca->god_izdavanja=god_izdavanja; *br=0; } fclose(f); } void dodavanje(void) { fflush(stdin); printf("\nUnesite ime knjige: "); gets(tekuca->ime_knjige); printf("\nUnesite autora: "); gets(tekuca->autor); printf("\nUnesite izdavaca: "); gets(tekuca->izdavac); printf("\nUnesite godinu izdavanja: "); scanf("%d",&tekuca->god_izdavanja); fflush(stdin); } void nadji(void) { int ima=0; char ime_knjige[15]; struct knjiga *trazi; trazi=prva; if(trazi->sledeca==NULL) printf("\nKatalog JE PRAZAN!!!"); else { fflush(stdin); printf("\nUnesite ime knjige: "); gets(ime_knjige); printf("\n================= ADRESE ================="); while(trazi!=NULL) { if(strcmp(trazi->ime_knjige,ime_knjige)==0) { printf("\n%s %s %s %d",trazi->ime_knjige,trazi->autor,trazi->izdavac,trazi->god_izdavanja); ima=1; } trazi=trazi->sledeca; } if(ima==0) printf("\nNEMA Knjige!!!"); printf("\n==========================================\n\n"); } } void izlaz(char *fajl) { FILE *f; struct knjiga *trazi; trazi=prva; if(trazi->sledeca==NULL) printf("\nKatalog JE PRAZAN!!!"); else { if((f=fopen(fajl,"w"))==NULL) { fprintf(stderr,"\n\nNE MOGU DA OTVORIM FAJL!!!"); exit(1); } while(trazi!=NULL) { fprintf(f,"%s %s %s %d\n",trazi->ime_knjige,trazi->autor,trazi->izdavac,trazi->god_izdavanja); trazi=trazi->sledeca; } fclose(f); } } Problem u programu je sto nece da sacuva unete podatke...ako bi neko mogao da pomogne bio bi mu mnogo zahvalan, hvala unapred! Poslednja ispravka: Andross (26.5.2013 u 23:06) Razlog: code tag postoji |
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Pomoc oko programa!!! | Number3 | Programiranje | 5 | 7.6.2012 23:58 |
Pomoc oko programa u C-u | absonic | Programiranje | 28 | 21.5.2012 23:27 |
Mala pomoc oko programa Sony sound forge | perakle | Foto i audio/video | 2 | 15.11.2011 16:59 |
Mala pomoc u vezi IntelliSense-a | Dorfeus | Programiranje | 5 | 6.11.2010 20:55 |
Mala pomoc (IP finder na MSN-u) | Denisda | Internet tehnologije | 0 | 24.4.2006 11:42 |