Ovo je moj pokusaj...
Zadatak vam je dat dole...
Code:
#include <stdio.h>
#include <string.h>
typedef struct{char naziv_velicine[20],oznaka[2],jedinica[10],formula[5];}elektrotehnika;
void zamena (char a[20],char b[20])
{
char temp[20];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
main()
{
FILE *pok,*pok2,*pok3;
int i=0,opcija,sortiranje,j=1;
char kraj=' ',pretraga[20];
elektrotehnika velicina[200];
pok2=fopen("sortirano.txt","w");
pok3=fopen("resenja.txt","w");
do
{
printf("unesi naziv velicine\n");
scanf("%s",&velicina[i].naziv_velicine);
printf("unesi oznaku te velicine\n");
scanf("%s",&velicina[i].oznaka);
printf("unesi jedinicu te oznake\n");
scanf("%s",&velicina[i].jedinica);
printf("unesi formulu po kojoj se izracunava ta velicina\n");
scanf("%s",&velicina[i].formula);
pok=fopen("pomoc.txt","a");
fprintf(pok,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
getchar();
printf("kraj d/n");
scanf("%c",&kraj);
}
while(kraj!='d');
printf("unesi opciju\n");
printf("1. Spisak formula\n");
printf("2. Pronadji formulu\n");
printf("3. Izlaz\n");
scanf("%d",&opcija);
switch(opcija)
{
case 1: {
printf("unesi kriterijum\n");
printf("1. naziv\n");
printf("2. oznaka\n");
printf("3. jedinica\n");
scanf("%d",&sortiranje);
switch(sortiranje)
{
case 1:
{
while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF)
{
if(velicina[j].naziv_velicine<=velicina[i].naziv_velicine)
{
i++;
j++;
}
else
{
zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine);
zamena(velicina[i].oznaka,velicina[j].oznaka);
zamena(velicina[i].jedinica,velicina[j].jedinica);
zamena(velicina[i].formula,velicina[j].formula);
}
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula);
}
}
break;
case 2:
{
while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF)
{
if(velicina[j].oznaka<=velicina[i].oznaka)
{
i++;
j++;
}
else
{
zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine);
zamena(velicina[i].oznaka,velicina[j].oznaka);
zamena(velicina[i].jedinica,velicina[j].jedinica);
zamena(velicina[i].formula,velicina[j].formula);
}
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula);
}
}
break;
case 3:
{
while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF)
{
if(velicina[j].jedinica<=velicina[i].jedinica)
{
i++;
j++;
}
else
{
zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine);
zamena(velicina[i].oznaka,velicina[j].oznaka);
zamena(velicina[i].jedinica,velicina[j].jedinica);
zamena(velicina[i].formula,velicina[j].formula);
}
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula);
}
}
break;
default:printf("pogresno\n");
}
break;
}
case 2: {
printf("unesi kriterijum\n");
printf("1. naziv\n");
printf("2. oznaka\n");
printf("3. jedinica\n");
scanf("%d",&sortiranje);
switch(sortiranje)
{
case 1:
{
while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF)
{
printf("unesi naziv koji trazis");
scanf("%s",&pretraga);
if(strcmp(fscanf(pok,"%s",&velicina[i].naziv_velicine),pretraga)==1)
{
fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
break;
}
else
i++;
}
}
break;
case 2:
{
while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF)
{
printf("unesi oznaku koju trazis");
scanf("%s",&pretraga);
if(strcmp(fscanf(pok,"%s",&velicina[i].oznaka),pretraga)==1)
{
fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
break;
}
else
i++;
}
}
break;
case 3:
{
while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF)
{
printf("unesi jedinicu koju trazis");
scanf("%s",&pretraga);
if(strcmp(fscanf(pok,"%s",&velicina[i].jedinica),pretraga)==1)
{
fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
break;
}
else
i++;
}
}
break;
default:printf("pogresno\n");break;
}
case 3:exit(1);break;
default:printf("pogresno\n");
}
system("PAUSE");
}
}
#include <stdio.h>
#include <string.h>
typedef struct{char naziv_velicine[20],oznaka[2],jedinica[10],formula[5];}elektrotehnika;
void zamena (char a[20],char b[20])
{
char temp[20];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
main()
{
FILE *pok,*pok2,*pok3;
int i=0,opcija,sortiranje,j=1;
char kraj=' ',pretraga[20];
elektrotehnika velicina[200];
pok2=fopen("sortirano.txt","w");
pok3=fopen("resenja.txt","w");
do
{
printf("unesi naziv velicine\n");
scanf("%s",&velicina[i].naziv_velicine);
printf("unesi oznaku te velicine\n");
scanf("%s",&velicina[i].oznaka);
printf("unesi jedinicu te oznake\n");
scanf("%s",&velicina[i].jedinica);
printf("unesi formulu po kojoj se izracunava ta velicina\n");
scanf("%s",&velicina[i].formula);
pok=fopen("pomoc.txt","a");
fprintf(pok,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
getchar();
printf("kraj d/n");
scanf("%c",&kraj);
}
while(kraj!='d');
printf("unesi opciju\n");
printf("1. Spisak formula\n");
printf("2. Pronadji formulu\n");
printf("3. Izlaz\n");
scanf("%d",&opcija);
switch(opcija)
{
case 1: {
printf("unesi kriterijum\n");
printf("1. naziv\n");
printf("2. oznaka\n");
printf("3. jedinica\n");
scanf("%d",&sortiranje);
switch(sortiranje)
{
case 1:
{
while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF)
{
if(velicina[j].naziv_velicine<=velicina[i].naziv_velicine)
{
i++;
j++;
}
else
{
zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine);
zamena(velicina[i].oznaka,velicina[j].oznaka);
zamena(velicina[i].jedinica,velicina[j].jedinica);
zamena(velicina[i].formula,velicina[j].formula);
}
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula);
}
}
break;
case 2:
{
while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF)
{
if(velicina[j].oznaka<=velicina[i].oznaka)
{
i++;
j++;
}
else
{
zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine);
zamena(velicina[i].oznaka,velicina[j].oznaka);
zamena(velicina[i].jedinica,velicina[j].jedinica);
zamena(velicina[i].formula,velicina[j].formula);
}
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula);
}
}
break;
case 3:
{
while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF)
{
if(velicina[j].jedinica<=velicina[i].jedinica)
{
i++;
j++;
}
else
{
zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine);
zamena(velicina[i].oznaka,velicina[j].oznaka);
zamena(velicina[i].jedinica,velicina[j].jedinica);
zamena(velicina[i].formula,velicina[j].formula);
}
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula);
fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula);
}
}
break;
default:printf("pogresno\n");
}
break;
}
case 2: {
printf("unesi kriterijum\n");
printf("1. naziv\n");
printf("2. oznaka\n");
printf("3. jedinica\n");
scanf("%d",&sortiranje);
switch(sortiranje)
{
case 1:
{
while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF)
{
printf("unesi naziv koji trazis");
scanf("%s",&pretraga);
if(strcmp(fscanf(pok,"%s",&velicina[i].naziv_velicine),pretraga)==1)
{
fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
break;
}
else
i++;
}
}
break;
case 2:
{
while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF)
{
printf("unesi oznaku koju trazis");
scanf("%s",&pretraga);
if(strcmp(fscanf(pok,"%s",&velicina[i].oznaka),pretraga)==1)
{
fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
break;
}
else
i++;
}
}
break;
case 3:
{
while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF)
{
printf("unesi jedinicu koju trazis");
scanf("%s",&pretraga);
if(strcmp(fscanf(pok,"%s",&velicina[i].jedinica),pretraga)==1)
{
fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula);
break;
}
else
i++;
}
}
break;
default:printf("pogresno\n");break;
}
case 3:exit(1);break;
default:printf("pogresno\n");
}
system("PAUSE");
}
}
[Ovu poruku je menjao pelle07 dana 02.06.2009. u 21:34 GMT+1]
[Ovu poruku je menjao X Files dana 03.06.2009. u 07:17 GMT+1]