Bonjour ou bonsoir !
Le titre du sujet peut paraître un peu pompeux à première vue, mais c'est sur un sujet plutôt simple que j'aimerais me renseigner.
Etant débutant en programmation, je me suis permis de poster dans cette section.
Pour schématiser l'application que je dois produire, disons que je souhaiterais gérer une galerie d'artistes.
Chaque artiste a un nom, dont la taille max est fixée, et peut avoir produit zéro, une ou plusieurs oeuvres, dont le titre a aussi une taille max fixée. A chacune des oeuvres est associé un et un seul commentaire, de taille max fixée.
Les moyens d'accès se font par le nom d'un artiste, ou par le titre d'une oeuvre.
Une oeuvre est associée à 1 et 1 seul artiste (d'ou la relation fonctionnelle), donc on doit avoir crée l'artiste correspondant avant.
Les noms d'auteur, les titres d'oeuvres, et les commentaires correspondant étant stockés dans trois fichiers différents (texte ou binaire peu importe).
Je me posais la question de quel type de structures de données choisir.
Pour les oeuvres, je pensais à une structure composée d'une chaîne de caractères (pour le titre), d'une autre pour le commentaire associé, et d'un pointeur sur une structure artiste.
Pour un artiste, une structure en liste chaînée avec une chaîne de caractères (pour le nom), et des pointeurs sur des structures oeuvres.
C'est ici que je me perds, comment définir dans cette structure le nombre de pointeurs, et comment en rajouter au fur et à mesure ?
Ma première idée serait de créer une structure fixe pour les artistes, avec le nom et un pointeur sur une structure oeuvre, et de rajouter un pointeur "oeuvre suivante" dans la structure oeuvre qui pointerait sur une autre structure oeuvre (ou pas), et vérifiant que leur pointeur sur la structure artiste soient bien les mêmes.
Mais cela me semble un peu tiré par les cheveux.
Et dernière chose, pour afficher la liste des oeuvres ou des auteurs, ou bien pour faire une recherche par nom ou titre, il faudra bien que je trie mes données, mais est-il plus efficace de les trier dans le fichier, à chaque nouvel ajout, ou bien seulement en mémoire centrale à chaque exécution du programme ?
Voilà j'espère avoir été assez clair et lisible, si vous avez des idées ou des remarques à partager, je vous en serai reconnaissant.
Merci de m'avoir lu.
Lazypanda
Partager