P_131 /********* Program treba stvoriti spis(datoteku) na disku racunala s ******** ******** imenom "kvadrat.dat" u koju ce ispisati tablicu kvadrata, ******** ******** kubova i drugih korijena brojeva od 1 do 20. ********/ #include #include // void main() { //prijava varijabli int broj,kvadrat,kub; double korijen; FILE *spis; //pokazivac na spis //otvaranje spisa "kvadrat.dat" spis=fopen("kvadrat.dat","w");//funkcija fopen stvara spis i vraca pokazivac na strukturu FILE //izracunavanje potrebnih velicina i ispis u spis fprintf(spis,"Broj Kvadrat Kub Korijen\n" "-----------------------------------\n"); for(broj=1;broj<=20;broj++) { kvadrat=broj*broj; kub=(int)pow(broj,3); korijen=sqrt((double)broj); fprintf(spis,"%-5i %-10i %-10i %-.5f \n",broj,kvadrat,kub,korijen); } } ----------------------------------------------------------------------------------------------- P_132 /****** Program stvara na disku tekstualnu datoteku "kolokvij.dat" u koju se upisuju ***** ****** podaci o postignutim bodovima na kolokviju.Kolokvij sadrzi pet pitanja gdje ***** ****** svako pitanje nosi maksimalno 20 bodova.Za svakoga studenta se izracunava i ***** ****** prosjecna uspjesnost na kolokviju. *****/ ///////////////////////////////////////////////////// #include #include #include"ispis.h" /////////// void unos(student *); float prosjek(student); /////////// void main() { int i,br_stud; student kolokvij[MAX]; FILE *upis; if((upis = fopen("kolokvij.dat","w"))==NULL) { puts("\n >>>>GRESKA U KREIRANJU DATOTEKE ***kolokvij.dat*** !!!!<<<<<<"); exit(1); } printf("Koliko ce te unijeti studenata u bazu podataka :");scanf("%d",&br_stud); fprintf(upis,"Statistika kolokvija za studente racunarstva\n" "----------------------------------------------------------"); fprintf(upis,"\nStudent\t MB I II III IV V PROSJEK(%)\n"); for(i=0;iime_prezime); printf( "\nMaticni broj studenta glasi:");scanf("%d",&x->MB); for(i=0;i<5;i++) { printf("\nBroj bodova postignut u %d. pitanju je:",i+1); scanf("%d",&x->bodovi[i]); } } /*************************************/ //funkcija koja izracunava prosjecni uspjeh na kolokviju float prosjek(student y) { int i; float temp=0; for(i=0;i<5;i++) temp+=y.bodovi[i]; return temp; } -------------------------------- ispis.h #define MAX 50 ////Deklaracija strukture///// typedef struct{ char ime_prezime[MAX] ; int MB; int bodovi[20]; float prosjek; }student; ///definicija funkcije za ispis podataka u datoteku//// void ispis(FILE *pf,student x) { fprintf(pf,"%-20s %-5d ",x.ime_prezime,x.MB); int j; for( j=0;j<5;j++) fprintf(pf,"%-3d ",x.bodovi[j]); fprintf(pf,"%-.3f\n",x.prosjek); } ----------------------------------------------------------------------------------------------- P_133 /********* Program treba stvoriti spis(datoteku) na disku racunala s ******** ********* imenom "polozili.dat" u koju ce se prepisat,i iz datoteke koja je ******** ********* stvorena u prethodnom zadataku, svi studenti koji imaju prosjek ******** ********* na kolokviju preko N%. ********/ #include #include #include"ispis.h" // void main() { //prijava varijabli int i,k; float N; student kolokvij[80]; char prezime[15],temp[80]; FILE *ulaz,*izlaz; //pokazivaci na spis ////////////////////// //otvaranje spisa "kolokvij.dat" i "polozili.dat" if((ulaz=fopen("kolokvij.dat","r"))==NULL) { puts("ERROR->>>GRESKA pri otvaranju datoteke kolokvij.dat!!!"); } else if((izlaz=fopen("polozili.dat","w"))==NULL) { puts("ERROR->>>GRESKA pri otvaranju datoteke polozili.dat!!!"); } ////////////////// //unos granicnog postotka else { printf("Unesite granicni postotak:");scanf("%f",&N); fprintf(izlaz,"Studenti koji imaju prosjek na kolokviju preko %.2f%%:",N); //preskacu se tri retka for(k=1;k<=3;k++) { while(fgetc(ulaz)!='\n'); } //////////////// fputs("\n------------------------------------------------------",izlaz); fprintf(izlaz,"\nStudent\t MB I II III IV V PROSJEK(%)\n"); i=0; while(feof(ulaz)==0) { fscanf(ulaz,"%s %s %d",kolokvij[i].ime_prezime,prezime,&kolokvij[i].MB); strcat(kolokvij[i].ime_prezime," "); strcat(kolokvij[i].ime_prezime,prezime); int j; for(j=0;j<5;j++) fscanf (ulaz,"%d", &kolokvij[i].bodovi[j]); fscanf (ulaz,"%f",&kolokvij[i].prosjek); /// if(kolokvij[i].prosjek>N) { ispis(izlaz,kolokvij[i]); i++; } } } } ----------------------------------------------------------------------------------------------- P_134 /****** Na disku se nalazi baza podataka o mobilnim uređajima "mobil.dat " . ***** ****** Izraditi program koji će ispisivati podatke o traženom mobitelu na zaslon računala. ***** ****** Ako se mobitel ne nalazi u bazi podataka ispisati odgovarajuću poruku.Program treba ***** ****** omogućiti čitanje podataka iz spisa promijenjiva imena ili staze. *****/ ///////////////////////////////////////////////////// #include #include #include #define TRUE 1 #define FALSE 0 /////////// int main() { //prijava varijabli int i,DA; char c; char ime_spisa[50],proiz[10],model[10],P[10],M[10],cijena[10]; FILE *pok; // do{ printf("\nUpisite ime spisa s podacima o mobilnim uredjajima : ");gets(ime_spisa); if((pok = fopen(ime_spisa,"r"))==NULL) printf("\nPonovite unos--->>>>TRAZENI SPIS NE POSTOJI !!!"); }while(pok==NULL); do{ printf("\nUpisite ime proizvodjaca mobitela\n(ili KRAJ za izlaz iz programa)....:");gets(proiz); strupr(proiz); if((strcmp(proiz,"KRAJ"))==0) break; printf("\n...jos upisite model mobitela ....:");gets(model); strupr(model); ///// DA=FALSE; //preskakanje dva retka for(i=0;i<2;i++) while((fgetc(pok))!='\n'); //trazenje while(feof(pok)==0) { fscanf(pok,"%s %s %s",P,M,cijena); if(!(strcmp(proiz,P)) && !(strcmp(model,M))) {DA=TRUE; printf("\n******* U bazi podataka pronadjen je trazeni uredjaj! *******\n"); printf(" --------------------------------------------\n"); fprintf(stdout," ****->Proizvodjac : %s \n ****->Model : %s \n ****->Cijena : %s...kuna\n",P,M,cijena); printf(" --------------------------------------------\n"); break; } } if(!DA) printf("\nU BAZI NEMA TRAZENOG UREDJAJA !!!"); rewind(pok); }while((strcmp(proiz,"KRAJ"))!=0); fclose(pok); }