Informações

Autores Aurélien Hermant Anthony Doeraene
Prazo de entrega Sem prazo
Limite de submissão No limitation

Etiquetas

Entrar

Vinyls

Un disquaire vous contacte car il souhaite automatiser l'envoi de mail de recommandations à ses clients. Pour ce faire, il dispose d'une liste d'artistes (un album par artiste) contenant comme information : le nom de l'artiste, le genre de l'artiste, le prix de l'album ainsi que le nombre d'unités qu'il lui reste en stock. Il dispose également d'informations à propos de ses clients, à savoir, une liste de genre(s) que ce client aime, la taille de cette liste et leur budget.

Pour contenir ces informations, 3 structures sont nécessaires, une nommée Artist, l'autre Client et la dernière Recommendations. Les deux premières sont décrites dans le texte ci-dessus, tandis que la dernière est la forme de la sortie de la fonction demandée, elle contient une liste de type Artist et la taille de cette liste. Ci-dessous les 3 signatures :

typedef struct{
char* name;
char* genre;
int price;
int stock;
} Artist;

typedef struct{
char** genres;
int genre_number;
int budget;
} Client;

typedef struct{
Artist* rec_list;
int rec_number;
} Recommendations;

Il vous est demandé d'écrire une fonction baptisée possible_vinyls.


Possible vinyls
/*
*@pre liste d'artistes : Artist* artists!=NULL, length = a_length!=0
*@pre client : Client client
*@pre a_length
*@post retourne une structure Recommendations contenant la liste d'artistes conforme au client.
*      (cohérent au budget + genre de l'artiste appartient aux genres du client + disponible)
*/
Recommendations possible_vinyls(Artist* artists, Client client, int a_length);