Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include<string.h>
- #define MAXC 25
- typedef struct
- {
- char nome[MAXC+1];
- char cognome[MAXC+1];
- char data[11+1];
- char codice[5+1];
- char Categoria[MAXC+1];
- int ore;
- }atleta;
- int leggi_file(int N,atleta**A);//voglio passare la struct come riferimento
- void Stampa(int N,atleta*A);
- void Ord_Codice(atleta*A,int N,int *tipo_ordinamento);
- void Data(atleta*A,int N,int *tipo_ordinameto);
- int ConfrontaDate(char Data1[],char Data2[]);
- int main()
- {
- int N,t_O,continua=0;//t_O il tipo di Ordinamento Ord_Codice=1;Ord_Dat=2;Ord_nom=3,Ord_com=4 no ordi 78
- atleta*ATLETI;
- N=leggi_file(N,&ATLETI);
- t_O=78;
- printf("--->%d<---\n",N);
- Stampa(N,ATLETI);
- printf("\n\n\n");
- Ord_Codice(ATLETI,N,&t_O);
- Stampa(N,ATLETI);
- Data(ATLETI,N,&t_O);
- printf("\n\n\n");
- Stampa(N,ATLETI);
- while(!continua)
- {
- printf("scelta");
- scanf("%d",&continua);
- }
- return 0;
- }
- int leggi_file(int N,atleta**A)
- {
- int Num_atl=0,i,giorno,mese,anno;
- char dataloc[11];
- atleta*temp_atl;
- FILE*in;
- in=fopen("atleti.txt","r");
- if(in==NULL) {printf("Problema file in ingresso "); exit(45);}//controllo aperturafile
- fscanf(in,"%d",&Num_atl);
- temp_atl=(atleta*)malloc(Num_atl*sizeof(atleta));
- if(temp_atl==NULL) {printf("Problema Allocazione"); exit(7);}
- for(i=0;i<Num_atl;i++)
- {
- fscanf(in,"%s %s %s %s %s %d",temp_atl[i].codice,temp_atl[i].nome,temp_atl[i].cognome,temp_atl[i].Categoria,dataloc,&temp_atl[i].ore);
- sscanf(dataloc,"%d/%d/%d",&giorno,&mese,&anno);
- sprintf(dataloc,"%d/%d/%d",anno,mese,giorno);
- strcpy(temp_atl[i].data,dataloc);
- }
- *A=temp_atl;
- return Num_atl;
- }
- void Stampa(int N,atleta*A)
- { int i;
- for(i=0;i<N;i++)
- {
- printf("%s %s %s %s %s %d\n",A[i].codice,A[i].nome,A[i].cognome,A[i].Categoria,A[i].data,A[i].ore);
- }
- }
- void Ord_Codice(atleta*A,int N,int *tipo_ordinamento)
- {
- int i,j;
- atleta X;
- for(i=1;i<=N;i++)
- {
- X=A[i];
- j=i-1;
- while(j>=0&& (strcmp(X.codice,A[j].codice))<0)
- {
- A[j+1]=A[j];
- j--;
- }
- A[j+1]=X;
- }
- *tipo_ordinamento=1;
- }
- void Data(atleta*A,int N,int *tipo_ordinameto)
- {
- int i,j;
- atleta X;
- for(i=1;i<=N;i++)
- {
- X=A[i];
- j=i-1;
- while(j>=0&& (strcmp(X.data,A[j].data))<0 )
- {
- A[j+1]=A[j];
- j--;
- }
- A[j+1]=X;
- }
- *tipo_ordinameto=2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement