Je joue de la musique irlandaise et j’aimerais pouvoir encoder les morceaux de musique que j’apprends. Pour le moment, je ne joue que quatre type de morceaux : des reels, des jigs, des polkas et des mazurkas
Une musique a un nom, un type (parmi les 4 cités précédemment) et une durée (en secondes).
Remplacez les TODO du programme ci-dessous afin d’encoder ces musiques de cette façon :
Demandez d'abord à l'utilisateur combien de morceaux il souhaite encoder, puis pour chaque morceau, demandez :
- son titre
- son type (reel, jig, polka, mazurka)
- sa durée (en secondes)
Affichez ensuite à l'utilisateur:
- la durée moyenne d'un morceau
- le titre du morceau le plus long
- la plus longue suite de morceaux du même type qui ont été encodés, ainsi que les titres de ces morceaux
Essayez d'utiliser une enum pour représenter les différents types de morceaux ! Allez voir dans le syllabus pour comprendre comment elles fonctionnent.
Exemple
Par exemple, si j'ai encodé 3 jigs, 2 polkas, 1 jig, 4 reels, 1 mazurka, j'aimerais que le programme m'affiche
Nombre de morceaux à encode: 11 Morceau 1 Titre: jig1 Type (reel, jig, polka, mazurka): jig Durée: 60 Morceau 2 Titre: jig2 Type (reel, jig, polka, mazurka): jig Durée: 63 Morceau 3 Titre: jig3 Type (reel, jig, polka, mazurka): jig Durée: 45 Morceau 4 Titre: polka1 Type (reel, jig, polka, mazurka): polka Durée: 73 Morceau 5 Titre: polka2 Type (reel, jig, polka, mazurka): polka Durée: 80 Morceau 6 Titre: jig4 Type (reel, jig, polka, mazurka): jig Durée: 76 Morceau 7 Titre: reel1 Type (reel, jig, polka, mazurka): reel Durée: 25 Morceau 8 Titre: reel2 Type (reel, jig, polka, mazurka): reel Durée: 90 Morceau 9 Titre: reel3 Type (reel, jig, polka, mazurka): reel Durée: 53 Morceau 10 Titre: reel4 Type (reel, jig, polka, mazurka): reel Durée: 49 Morceau 11 Titre: mazurka1 Type (reel, jig, polka, mazurka): mazurka Durée: 78 Durée moyenne: 62.91 Morceau le plus long: reel2 Titres de la suite la plus longue: reel1 reel2 reel3 reel4
Évaluation
Votre code va être compilé puis testé avec plusieurs valeurs d'entrées différentes pour vérifier qu'il fonctionne bien.
Cependant, prenez déjà l'habitude de tester votre code vous-mêmes car il n'y aura pas INGInious pour le vérifier automatiquement dans l'exercice récapitulatif.
Veuillez aussi suivre les bonnes pratiques suivantes car INGInious ne sait pas les vérifier automatiquement mais elles seront vérifiées dans l'exercice récapitulatif :
- Les noms des variables, constantes, paramètres, fonctions, structures et types créés sont-ils pertinents ? Correspondent-ils vraiment à ce qu'ils doivent contenir ?
- Est-ce que le code est correctement factorisé ? Est-ce qu'il est possible de déplacer du code en dehors des sélections ou de créer des fonctions pour avoir moins de code dupliqué ?
- Est-ce que les sélections et conditions sont correctement organisées ? Est-ce qu'il est possible de changer l'ordre des sélections ou des conditions pour diminuer leur nombre ?
- Est-ce que toutes les fonctions sont bien spécifiées avec des préconditions et postconditions claires ?
INGInious