Salve a tutti, avrei voluto direttamente allegarvi il file .c che ho creato ma ricevo un errore allegandolo alla discussione. Per cui provo a spiegare lo scopo del programma e come lo ho risolto.
Data una struttura dati costituita dai campi titolo, autore, anno e costo, voglio simulare il funzionamento di un applicazione simile ad iTunes. Creati un array di struttura all'interno del quale carico una lista di brani, ed un secondo chiamato playlist dove inserirò un numero definito di brani sviluppo ogni problema con una funzione o procedura a seconda dei casi:
procedura per l'acquisizione della lista dei brani;
procedura che stampa la lista;
procedura che crea la playlist, chiedendo all'utente di inserire dei dati relativi ad un brano e inserendoli nella playlist solo se tutti corrispondono a quelli di un brano presente nella lista principale
void creaPlaylist(struct brani lista[],struct brani preferiti[])
{
int i,j,trovato;
printf("\n-----------CREAZIONE PLAYLIST-----------\n\n");
for(i=0;i<DIMplaylist;i++)
{
trovato=0;
do
{
j=0;
printf("Inserire i dati relativi al %do brano della playlist: ",i+1);
printf("\nTitolo, Autore, Anno di uscita, Prezzo\n");
scanf("%29s",preferiti[i].titolo);
scanf("%29s",preferiti[i].autore);
scanf("%d",&preferiti[i].anno);
scanf("%f",&preferiti[i].prezzo);
do
{
if(strcmp(preferiti[i].titolo,lista[j].titolo)==0 && strcmp(preferiti[i].autore,lista[j].autore)==0 && preferiti[i].anno==lista[j].anno && preferiti[i].prezzo==lista[j].prezzo)
{
trovato=1;
}
j++;
}while(j<DIMlista && trovato==0);
if(trovato==0)
printf("\a");
}while(trovato==0);
}
}
procedura che ordina alfabeticamente in base al titolo del brano la playlist
void ordinaPlaylist(struct brani preferiti[])
{
struct brani temp;
int i,j;
for(i=0;i<DIMplaylist;i++)
{
for(j=0;j<DIMplaylist-i-1;j++)
{
if(strcmp(preferiti[j].titolo,preferiti[j+1].titolo)>0)
{
temp=preferiti[j];
preferiti[j]=preferiti[j+1];
preferiti[j+1]=temp;
}
}
}
}
funzione che calcola e stampa il costo dei brani presenti nella playlist.
Il codice funziona correttamente, ma chiedo a chi è più esperto se dal punto di vista didattico, per ordinare alfabeticamente i brani, il metodo utilizzato sia il più consono o sia meglio lavorare attraverso dei puntatori a struttura?
NB: Ho scelto di ordinare con il bubble sort anche se sono consapevole che esistano metodi più efficienti.