zadatak koji pokusavam rešiti ima nekoliko delova:
1 deo -> U datoteci 'Printeri.dat' upisuju se strukture sledeće sadržine: proizvođač, naziv, vrsta, mesec proizvodnje (mp), godina proizvodnje (gp), cena i broj komada. Upis u datoteku i prikaz podataka realizovati funkcijama, a u glavnom programu realizovati meni sa opcijama: Unos podataka, Prikaz svih podataka i Kraj rada.
- urađeno... (kod ispod)
2. deo -> Napisati funkciju koja prikazuje sve slogove iz datoteke čije su cene u zadatom opsegu.
3. deo -> Napisati funkciju kojom se prikazuju elementi tražene strukture broj k iz datoteke 'Printeri.dat'. U programu proveriti da li je k u dozvoljenom opsegu vrednosti, a u meniju glavnog programa dodati ovu opciju.
4. deo -> Iz datoteke prikazati sve štampače zadatog proizvođača. Predvideti da korisnik može da unese početni deo naziva proizvođača (koristiti funkciju strstr() za stringove).
Unapred HVALA na bilo kakvoj pomoci, bila ona resenje ili ideja... :)
Kod za 1. deo:
Code:
#include <stdio.h>
#include <stdlib.h>
struct stampaci {
char naziv[50];
char vrsta[50];
char mp[20];
char gp[10];
char cena[20];
char broj_komada[50];
};
int main()
{
int a,b,s;
struct stampaci data;
FILE* p;
s: printf(" S T A M P A C I\n");
printf("Opcije programa:\n");
printf("1.Unos podataka\n");
printf("2.Prikaz svih podataka\n");
printf("3.Kraj rada\n");
printf("Vas izbor: ");
scanf("%d",&a);
switch(a){
case 1:
p=fopen("Printeri.dat","ab");
if (p==NULL) printf("Greska pri otvaranju datoteke");
printf("Unesite naziv stampaca: ");
scanf("%s",&data.naziv);
fwrite(&data.naziv,sizeof data.naziv,1,p);
printf("Unesite vrstu stampaca:\n");
scanf("%s",&data.vrsta);
fwrite(&data.vrsta,sizeof data.vrsta,1,p);
printf("Unesite mesec proizvodnje stampaca:\n");
scanf("%s",&data.mp);
fwrite(&data.mp,sizeof data.mp,1,p);
printf("Unesite godinu proizvodnje stampaca:\n");
scanf("%s",&data.gp);
fwrite(&data.gp,sizeof data.gp,1,p);
printf("Unesite cenu stampaca:\n");
scanf("%s",&data.cena);
fwrite(&data.cena,sizeof data.cena,1,p);
printf("Unesite broj komada stampaca:\n");
scanf("%s",&data.broj_komada);
fwrite(&data.broj_komada,sizeof data.broj_komada,1,p);
printf("Pritisnite 1 za povratak u glavni meni ili bilo koje dugme za izlaz iz programa: ");
scanf("%d",&b);
if (b==1){
system("cls");
goto s;
}
if (b!=1) return 0;
else printf("Pogresan unos\n");
break;
case 2:
p=fopen("Printeri.dat","rb");
if (p==NULL) printf("Greska pri otvaranju datoteke");
while (fread(&data, sizeof data, 1, p) == 1){
printf("Naziv stampaca: %s\nVrsta stampaca:%s\nMesec proizvodnje stampaca:%s\nGodina proizvodnje stampaca:%s\nCena stampaca:%s\nBroj komada stampaca:%s\n\n", data.naziv, data.vrsta,data.mp,data.gp,data.cena,data.broj_komada);
}
printf("Pritisnite 1 za povratak u glavni meni ili bilo koje dugme za izlaz iz programa: ");
scanf("%d",&b);
if (b==1){
system("cls");
goto s;
}
if (b!=1) return 0;
else printf("Pogresan unos\n");
fclose(p);
break;
case 3: return 0; break;
default: system("cls"); goto s; break;
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
struct stampaci {
char naziv[50];
char vrsta[50];
char mp[20];
char gp[10];
char cena[20];
char broj_komada[50];
};
int main()
{
int a,b,s;
struct stampaci data;
FILE* p;
s: printf(" S T A M P A C I\n");
printf("Opcije programa:\n");
printf("1.Unos podataka\n");
printf("2.Prikaz svih podataka\n");
printf("3.Kraj rada\n");
printf("Vas izbor: ");
scanf("%d",&a);
switch(a){
case 1:
p=fopen("Printeri.dat","ab");
if (p==NULL) printf("Greska pri otvaranju datoteke");
printf("Unesite naziv stampaca: ");
scanf("%s",&data.naziv);
fwrite(&data.naziv,sizeof data.naziv,1,p);
printf("Unesite vrstu stampaca:\n");
scanf("%s",&data.vrsta);
fwrite(&data.vrsta,sizeof data.vrsta,1,p);
printf("Unesite mesec proizvodnje stampaca:\n");
scanf("%s",&data.mp);
fwrite(&data.mp,sizeof data.mp,1,p);
printf("Unesite godinu proizvodnje stampaca:\n");
scanf("%s",&data.gp);
fwrite(&data.gp,sizeof data.gp,1,p);
printf("Unesite cenu stampaca:\n");
scanf("%s",&data.cena);
fwrite(&data.cena,sizeof data.cena,1,p);
printf("Unesite broj komada stampaca:\n");
scanf("%s",&data.broj_komada);
fwrite(&data.broj_komada,sizeof data.broj_komada,1,p);
printf("Pritisnite 1 za povratak u glavni meni ili bilo koje dugme za izlaz iz programa: ");
scanf("%d",&b);
if (b==1){
system("cls");
goto s;
}
if (b!=1) return 0;
else printf("Pogresan unos\n");
break;
case 2:
p=fopen("Printeri.dat","rb");
if (p==NULL) printf("Greska pri otvaranju datoteke");
while (fread(&data, sizeof data, 1, p) == 1){
printf("Naziv stampaca: %s\nVrsta stampaca:%s\nMesec proizvodnje stampaca:%s\nGodina proizvodnje stampaca:%s\nCena stampaca:%s\nBroj komada stampaca:%s\n\n", data.naziv, data.vrsta,data.mp,data.gp,data.cena,data.broj_komada);
}
printf("Pritisnite 1 za povratak u glavni meni ili bilo koje dugme za izlaz iz programa: ");
scanf("%d",&b);
if (b==1){
system("cls");
goto s;
}
if (b!=1) return 0;
else printf("Pogresan unos\n");
fclose(p);
break;
case 3: return 0; break;
default: system("cls"); goto s; break;
}
system("PAUSE");
return 0;
}
01000100011101010111001101100001011011100010000001010011011101000110000
1
01101110011010010110110101101001011100100110111101110110011010010110001
1
1
01101110011010010110110101101001011100100110111101110110011010010110001
1