Bonjour,
J'étudie en maths et je débute en C.
Pour un devoir, dont l'objectif est la gestion d une collection BD, organisée en série contenant plusieurs tomes,
j'ai défini 2 structures :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct Tome_s { char *titre; char *scenariste; char *dessinateur; int no_serie; struct Serie_s *serie; } Un_tome;
Je dois créér une fonction permettant de créer une série selon le prototype suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct Serie_s { char *titre; char *pays_parution; int nb_parus; Un_tome *tomes[MAX_TOMES]; } Une_serie;
et une permettant de créer une série selon le prototype suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Une_serie *creer_serie(char *nom_serie, char *pays_parution, int nb_parus)
Voici ma proposition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Un_tome *creer_tome(char *titre, char *scenariste, char *dessinateur, int no_serie)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Une_serie *creer_serie(char *nom_serie, char *pays_parution, int nb_parus) { Une_serie *s = (Une_serie *)malloc(sizeof(Une_serie)); s->titre=strdup(nom_serie); s->pays_parution=strdup(pays_parution); s->nb_parus=nb_parus; return s; } Un_tome *creer_tome(char *titre, char *scenariste, char *dessinateur, int no_serie) { Un_tome *t = (Un_tome *)malloc(sizeof(Un_tome)); t->titre=strdup(titre); t->scenariste=strdup(scenariste); t->dessinateur=strdup(dessinateur); t->no_serie=no_serie; return t; }
je teste avec :
Je pense que cela fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int main() { Une_serie *test_serie = creer_serie("Asterix", "FR", 20); Un_tome *test_tome = creer_tome("Asterix le gaulois", "gosc","ud", 12); }
J'ai plus de difficulté pour créer une fonction ajouter_serie_a_collection qui ajoute une nouvelle série à la fin du tableau. Elle doit déterminer cette fin. Les cases vides contiennent la valeur NULL.
Le prototype est le suivant :
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part void ajouter_serie_a_collection(Une_serie *collectionSeries[], Une_serie *serie)
N.
Partager