Exercice : ajouter des données relatives aux dons suggérés
Dans cette étape du processus de développement, vous mettez à jour le code fourni dans le dossier de projet de démarrage, en ajoutant des fonctionnalités pour le « don suggéré » à l’application. Le fichier project.cs de démarrage doit être ouvert dans Visual Studio Code. Revenez à l’unité de préparation précédente si vous avez besoin d’instructions pour commencer.
Créer les fonctionnalités « Don suggéré »
Les fonctionnalités de don ajoutées vous obligent à créer une variable suggestedDonation et à développer le tableau ourAnimals pour prendre en charge les nouvelles données de don. En outre, vous devez ajouter les montants de don suggéré pour chaque animal et implémenter un montant par défaut quand il manque des informations sur les dons suggérés.
Ajouter la prise en charge des données de don suggéré
Vous devez créer une variable destinée à contenir les dons suggérés et développer le tableau ourAnimals pour y stocker les nouvelles données.
Notez le code sous le commentaire n° 1 qui déclare les variables utilisées pour remplir le tableau
ourAnimalspour chaque animal.Vous devez en déclarer une autre variable
stringpour les données de don suggérés.// #1 the ourAnimals array will store the following: string animalSpecies = ""; string animalID = ""; string animalAge = ""; string animalPhysicalDescription = ""; string animalPersonalityDescription = ""; string animalNickname = "";Créez la variable
suggestedDonationsous la déclaration pouranimalNickname.La déclaration pour les
suggestedDonationest ajoutée avec le code suivant :string suggestedDonation = "";Recherchez le code pour créer le tableau
ourAnimalsaprès le commentaire n° 3.La ligne de code suivante crée le tableau :
string[,] ourAnimals = new string[maxPets,6];Les tailles définissant les deux dimensions du tableau sont le nombre maximal d’animaux domestiques
maxPetset le nombre6des six chaînes définies à l’origine, mais sans espace pour les nouvelles donnéessuggestedDonation.Mettez à jour le tableau
ourAnimalspour qu’il contiennent7« colonnes » de données pour chaque animal au lieu de6.La ligne suivante montre le code mis à jour :
string[,] ourAnimals = new string[maxPets,7];Vous avez étendu le
ourAnimalstableau pour prendre en charge lessuggestedDonationdonnées ajoutées.
Ajouter les montants suggestedDonation à l’échantillon de données
Prenez une minute pour passer en revue la section
case 0:dans l’instruction switch après le commentaire n° 4.Le code suivant définit l’échantillon de données pour le premier animal avant la création des données
suggestedDonation. Ces dernières iraient très bien en dessous de la ligneanimalNickname!case 0: animalSpecies = "dog"; animalID = "d1"; animalAge = "2"; animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken."; animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses."; animalNickname = "lola"; break;Insérez une valeur
suggestedDonationau-dessus de l’instructionbreakpourcase 0;jusqu’àdefault:avec les valeurs suivantes :- Cas 0 :
suggestedDonation = "85.00"; - Cas 1 :
suggestedDonation = "49.99"; - Cas 2 :
suggestedDonation = "40.00"; - Cas 3 :
suggestedDonation = ""; - par défaut :
suggestedDonation = "";
Le code suivant montre le code
case 0:avec l’ajout de « suggestedDonation » :case 0: animalSpecies = "dog"; animalID = "d1"; animalAge = "2"; animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken."; animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses."; animalNickname = "lola"; suggestedDonation = "85.00"; break;- Cas 0 :
Dans votre fichier project.cs, recherchez le tableau suivant rempli avec les données d’animaux de compagnie provenant des instructions case (juste avant le commentaire n° 5) :
ourAnimals[i, 0] = "ID #: " + animalID; ourAnimals[i, 1] = "Species: " + animalSpecies; ourAnimals[i, 2] = "Age: " + animalAge; ourAnimals[i, 3] = "Nickname: " + animalNickname; ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription; ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription;Notez que les données
suggestedDonationne sont pas incluses dans le cadre du code de démarrage de l’échantillon de données pour le remplissage du tableau.Il est logique de remplir le tableau avec une instruction telle que :
ourAnimals[i, 6] = "Suggested Donation: " + suggestedDonation;Mais vous n’ajoutez pas ce code. Dans la section suivante, vous allez utiliser une autre approche.
Validation des données avec TryParse()
La variable suggestedDonation est destinée à être une valeur numérique, mais elle est collectée et stockée en tant que string. Considérez les cas futurs où vous devez valider que suggestedDonation représente une décimale et que vous pouvez le convertir en une décimale de manière à ce qu’il soit disponible pour les calculs de facturation. Pour éviter les erreurs lorsque les utilisateurs entrent des nombres au format texte, vous devez utiliser la validation twenty, par exemple TryParse.
Remarque
Les exemples de code de cet exercice sont conçus en fonction des paramètres culturels américains et l’utilisation du point (.) sert de séparateur décimal. La création et l’exécution du code avec un paramètre de culture qui utilise un séparateur décimal différent (par exemple, une virgule ,) donne fréquemment des résultats ou des erreurs inattendus. Pour résoudre ce problème, remplacez les points séparateurs de décimale dans les exemples de code par votre séparateur décimal local (, par exemple).
Vous pouvez également exécuter un programme à l’aide du paramètre de culture en-US, ajouter : using System.Globalization;en haut de votre programme. Et après toute autre using instruction, ajoutez CultureInfo.CurrentCulture = new CultureInfo("en-US");.
Avant de commenter n° 5, à la fin du bloc de code, ajoutez le code permettant de valider que
suggestedDonationpeut être casté en décimale.Vous ajoutez le code suivant :
if (!decimal.TryParse(suggestedDonation, out decimalDonation)){ decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00 }Si la
suggestedDonationvariable ne peut pas être castée en tant quedecimal, le code affecte une valeurdecimalDonation = 45.00m;par défaut. Si le cast réussit,TryParseremplitdecimalDonation. Dans les deux cas,decimalDonationreprésente une décimale appropriée.Assurez-vous que votre code de validation est au bon endroit !
Les deux lignes que vous avez ajoutées doivent apparaître dans le code comme les deux premières lignes du code suivant :
if (!decimal.TryParse(suggestedDonation, out decimalDonation)){ decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00 } } // #5 display the top-level menu optionsNotez que la validation ne fonctionne toujours pas. Gardez à l’esprit qu’il faut déclarer
decimalDonationpour l’utiliser dans le code.Après le commentaire n° 2, déclarez
decimalDonation, aprèsstring menuSelection = "";:decimal decimalDonation = 0.00m;Enfin, vous êtes prêt à remplir les données
suggestedDonationpour chaque animal.Précisément avant le commentaire n° 5, immédiatement après la fin du crochet fermant
TryParse}, insérez le code suivant :ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}";Vous avez utilisé la version
decimalDonationdes données de don suggéré. Vous avez également utilisé l’interpolation de chaîne et la mise en forme monétaire dans la sortie.Prenez une minute pour passer en revue la façon dont les données de don suggérée sont finalement intégrées au tableau
ourAnimals.Le code suivant remplit le tableau
ourAnimalsdans le contexte deTryParse():if (!decimal.TryParse(suggestedDonation, out decimalDonation)){ decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00 } ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}"; } // #5 display the top-level menu optionsNotez que, à l’aide du code
{decimalDonation:C2}, le don suggéré, à partir dedecimalDonation, s’affiche avec le symbole monétaire local et deux décimales, comme indiqué par la mise en forme monétaire:C2.
Passer en revue et mettre à jour l’emplacement où le tableau ourAnimals doit être utilisé
L’ajout des données suggestedDonation créées nécessite d’autres mises à jour. L’option de menu "1. List all of our current pet information" ne contient pas les données ajoutées.
Notez le code sous le commentaire n° 5, pour la boucle de menu dans
case 1.La boucle interne «
for (int j = 0; j <6; j++)» qui affiche les attributs des animaux doit prendre en compte les donnéessuggestedDonationajoutées.Mettez à jour la condition de sortie du code de boucle interne. Augmentation de la condition de sortie par « 1 », de sorte qu’elle devient
j <7. Vérifiez que votre code correspond au code suivant :case "1": // list all pet info for (int i = 0; i < maxPets; i++) { if (ourAnimals[i, 0] != "ID #: ") { Console.WriteLine(); for (int j = 0; j < 7; j++) // increased exit condition { Console.WriteLine(ourAnimals[i, j]); } } }
Vue d’ensemble du test
Après avoir procédé à plusieurs ajouts de code, vous devez vérifier que votre code fonctionne comme prévu. Les deux principaux domaines de test sont les suivants :
Le code se compile sans erreurs.
Quand l’option de menu 1 est sélectionnée, toutes les informations sur les animaux de compagnie s’affichent :
- La sortie inclut toutes les informations sur les échantillons d’animaux de compagnie, notamment : ID, espèce, âge, nom, description physique et description de la personnalité.
- Pour chaque animal de compagnie, le don suggéré s’affiche avec un symbole monétaire et deux décimales de précision.
Vérifier votre travail
Générez le code et exécutez-le afin de le tester. Utilisez ces étapes chaque fois que vous devez tester votre code.
Dans le menu Fichier de Visual Studio Code, sélectionnez Enregistrer.
Dans la vue EXPLORATEUR, cliquez avec le bouton droit sur Starter, puis sélectionnez Ouvrir dans le terminal intégré.
Un panneau TERMINAL doit s’ouvrir sous la zone de l’éditeur de code.
Il existe plusieurs façons d’ouvrir le terminal intégré de Visual Studio Code. Par exemple, le menu du haut permet d’accéder au panneau TERMINAL à la fois depuis le menu Affichage et depuis le menu Terminal. En outre, les raccourcis clavier qui ouvrent le panneau TERMINAL constituent une option précieuse pour augmenter votre efficacité de codage. Chaque méthode est acceptable.
Notez que le panneau TERMINAL inclut une invite de ligne de commande et que cette invite montre le chemin du dossier actif. Par exemple :
C:\Users\someuser\Desktop\GuidedProject\Starter>Vous pouvez utiliser le panneau TERMINAL pour exécuter des commandes d’interface de ligne de commande (CLI), comme
dotnet buildetdotnet run. La commandedotnet buildcompile votre code et affiche les messages d’erreur et d’avertissement relatifs à la syntaxe de votre code.Important
Vous devez vérifier que l’invite de commandes du terminal est ouverte à la racine de l’espace de travail de votre projet. Dans le cas présent, la racine de l’espace de travail du projet est le dossier Starter, où se trouvent les fichiers Starter.csproj et Program.cs. Lorsque vous exécutez des commandes dans le terminal, les commandes essaient d’effectuer des actions à l’aide de l’emplacement du dossier actuel. Si vous essayez d’exécuter les
dotnet buildcommandes àdotnet runpartir d’un emplacement de dossier qui ne contient pas les fichiers, les commandes génèrent des messages d’erreur.À l’invite de commandes du TERMINAL, pour générer le code de votre projet, entrez la commande suivante :
dotnet buildAprès quelques secondes, vous devriez voir un message vous indiquant que votre build a réussi, et que vous avez
0 Warnings and 0 Errors.Determining projects to restore... All projects are up-to-date for restore. Starter -> C:\Users\someuser\Desktop\GuidedProject\Starter\bin\Debug\net10.0\Starter.dll Build succeeded. 0 Warning(s) 0 Error(s)Remarque
Utilisez les étapes
dotnet buildetdotnet runchaque fois que vous devez tester votre code dans les exercices qui suivent ce module.Si vous voyez des messages d’erreur ou d’avertissement, vous devez les corriger avant de continuer.
Les messages d’erreur et d’avertissement indiquent la ligne de code où le problème est trouvé. Le message suivant est un exemple de message d’erreur
Build FAILED:C:\Users\someuser\Desktop\GuidedProject\Starter\Program.cs(53,18): error CS1002: ; expected [C:\Users\someuser\Desktop\GuidedProject\Starter\Starter.csproj]Ce message vous indique le type d’erreur détecté et où le trouver. Dans le cas présent, le message vous indique que le fichier Program.cs contient une erreur :
error CS1002: ; expected. Le; expectedsuggère que vous avez oublié d’inclure un;à la fin d’une instruction. La partieProgram.cs(53,18)du message indique l’emplacement de l’erreur, en l’occurrence sur la ligne de code 53, à 18 caractères à partir de la gauche.Une erreur de syntaxe comme celle-ci empêche la réussite de la build (ÉCHEC de la build). Certains messages de génération fournissent un « avertissement » au lieu d’une « erreur », ce qui signifie qu’il y a quelque chose à craindre, mais vous pouvez essayer d’exécuter le programme de toute façon (Générer réussi).
Une fois que vous avez résolu les problèmes et enregistré vos mises à jour, vous pouvez réexécuter la
dotnet buildcommande. Continuez jusqu’à ce que vous ayez0 Warning(s) and 0 Error(s).Si vous rencontrez des difficultés à résoudre un problème par vous-même, examinez le code Program.cs dans le dossier Final inclus dans le téléchargement terminé pendant l’installation. Le code Program.cs dans le dossier Final représente la conclusion de tous les exercices de ce module. Il inclut donc le code que vous n’avez pas encore créé.
Le code de solution semble souvent différent du code Program.cs que vous avez développé à ce stade dans le projet guidé. Toutefois, vous pouvez examiner le code Program.cs final pour vous aider à isoler et résoudre un problème dans votre code.
Évitez de vous appuyer sur le code de la solution lors du développement de votre propre solution. Rappelez-vous que vous apprenez de vos erreurs et que chaque développeur passe du temps à rechercher et à corriger des erreurs.
Testez l’application console mise à jour. À l’invite de commandes du TERMINAL, générez et exécutez votre code de projet avec une seule commande en entrant :
dotnet run. Quand le code s’exécute, deux éléments de menu s’affichent.- Entrez «
1» pour tester la sortie de l’affichage de tous les animaux domestiques. - Entrez «
2» pour tester le message d’espace réservé « En cours de construction »
La sortie associée à l’élément de menu n° 1 doit être très proche de l’exemple suivant :
ID #: d1 Species: dog Age: 2 Nickname: lola Physical description: medium sized cream colored female golden retriever weighing about 45 pounds. housebroken. Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses. Suggested Donation: $85.00 ID #: d2 Species: dog Age: 9 Nickname: gus Physical description: large reddish-brown male golden retriever weighing about 85 pounds. housebroken. Personality: loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs. Suggested Donation: $49.99 ID #: c3 Species: cat Age: 1 Nickname: snow Physical description: small white female weighing about 8 pounds. litter box trained. Personality: friendly Suggested Donation: $40.00 ID #: c4 Species: cat Age: Nickname: lion Physical description: Personality: Suggested Donation: $45.00Si tout a fonctionné comme prévu, félicitations ! Sinon, recherchez l’erreur en consultant les étapes d’instruction de code impliquées. Si nécessaire, recommencez avec un nouveau fichier Project.cs de démarrage et si vous rencontrez toujours des problèmes, consultez le code du dossier de solution pour cet exercice.
- Entrez «
Tapez
exit, dans le menu de l’application, pour mettre fin au programme, puis fermez le panneau du terminal.