Ragazzi con un mio amico siamo riusciti a scrivere questo ma ora il problema sta nello ordinare gli appuntamenti in base a gli orari:
#include <stdio.h>
#define M 100
struct data {
int minuti;
int ora;
int giorno;
int mese;
int anno;
};
typedef struct data DATA;
void caricaDate (DATA *d, int dimensione);
void caricaDate (DATA *d, int dimensione)
{
int i=0;
for (i=0;i<dimensione;i++) {
printf("Inserimento data n. %d\n",i+1);
printf("\tOre: ");
scanf("%d",&d[i].ora);
printf("\tMinuti: ");
scanf("%d",&d[i].minuti);
printf("\tGiorno: ");
scanf("%d",&d[i].giorno);
printf("\tMese: ");
scanf("%d",&d[i].mese);
printf("\tAnno: ");
scanf("%d",&d[i].anno);
}
}
int CompareDate (const DATA, const DATA);
int CompareDate (const DATA d1, const DATA d2)
{
if (d1.anno<d2.anno) return 1;
else
if(d1.anno>d2.anno) return 2;
else
if(d1.anno==d2.anno)
if(d1.mese<d2.mese) return 1;
else
if (d1.mese > d2.mese) return 2;
else
if(d1.mese==d2.mese)
if(d1.giorno<d2.giorno) return 1;
else
if(d1.giorno>d2.giorno) return 2;
else
if(d1.giorno==d2.giorno)
if(d1.minuti<d2.minuti) return 1;
else
if(d1.minuti>d2.minuti) return 2;
else
if(d1.minuti==d2.minuti)
if(d1.ora<d2.ora) return 1;
else
if(d1.ora>d2.ora) return 2;
else
if(d1.ora==d2.ora) return 0;
}
DATA *BubbleSort (DATA *d, int dimensione);
DATA* BubbleSort (DATA *vettore, int dimensione){
int i=0; int j;
DATA temp;
int scambi=1;
while (scambi==1 && i<=dimensione-2) {
scambi=0;
for(j=dimensione-1;j>=i+1;j--)
if((CompareDate(vettore[j],vettore[j-1])==0) || (CompareDate(vettore[j],vettore[j-1])==1)){
temp=vettore[j];
vettore[j]=vettore[j-1];
vettore[j-1]=temp;
scambi=1;}
i++;
}
return vettore;
}
//funzione agenda.
typedef struct{
char testo[30];
int pagina;
}PaginaAgenda;
void FunzAgenda(const DATA *d, int dimensione){
PaginaAgenda Agenda[dimensione];
char text[30];
int i;
for(i=0;i<dimensione;i++){
Agenda[i].pagina=(i+1);
printf("inserisci appuntamento:");
scanf("%s",text);
strcpy(Agenda[i].testo,text);
}
printf("\nVisualizzo l'agenda\n");
for(i=0;i<dimensione;i++){
printf("\nPagina %d \n", Agenda[i].pagina);
printf("Appuntamento %s : %d:%d--%d/%d/%d \n",Agenda[i].testo,d[i].ora,d[i].minuti,d[i].giorno, d[i].mese, d[i].anno);
}
}
int main() {
DATA d1[M];
int dimensione;
dimensione=3;
caricaDate(d1, dimensione);
printf (" INSERISCI APPUNTAMENTI \n");
FunzAgenda(BubbleSort(d1, dimensione), dimensione);
system("pause");
return;
}