Configuration du projet
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 33 sur 65.
Défi
FacileVous allez construire un simple calculateur de panier d'achat qui démontre comment différentes structures de données fonctionnent ensemble dans une application réelle.
Créez un programme qui établit les bases d'un système de calcul de panier d'achat en initialisant les structures de données essentielles nécessaires à une application de commerce électronique. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le nom du magasin
- Lire plusieurs paires d'entrées représentant les noms des produits et leurs prix (l'entrée se terminera lorsque vous recevrez
"products_done") - Créer une Map pour stocker les produits disponibles avec leurs noms comme clés et les prix comme valeurs
- Créer une List vide pour représenter le panier d'achat
- Afficher les informations de configuration initiale et vérifier que les structures de données sont correctement initialisées
- Imprimer le rapport de configuration du magasin exactement au format indiqué ci-dessous
Par exemple, si le nom du magasin est "Fresh Market" et que les produits incluent "Apple" avec le prix 1.50, "Banana" avec le prix 0.80, "Orange" avec le prix 2.00, "Milk" avec le prix 3.25, votre programme doit afficher :
Store: Fresh Market
Product Catalog Setup:
Available Products: {Apple: 1.5, Banana: 0.8, Orange: 2.0, Milk: 3.25}
Shopping Cart Initialized: []
System Status:
Total products available: 4
Cart status: Empty
Most expensive item: Milk ($3.25)
Cheapest item: Banana ($0.80)
Average product price: $1.84
Setup Status: Shopping cart system ready for customersSi le nom du magasin est "Tech Store" et que les produits incluent "Laptop" avec le prix 999.99, "Mouse" avec le prix 25.50, "Keyboard" avec le prix 75.00, votre programme doit afficher :
Store: Tech Store
Product Catalog Setup:
Available Products: {Laptop: 999.99, Mouse: 25.5, Keyboard: 75.0}
Shopping Cart Initialized: []
System Status:
Total products available: 3
Cart status: Empty
Most expensive item: Laptop ($999.99)
Cheapest item: Mouse ($25.50)
Average product price: $366.83
Setup Status: Shopping cart system ready for customersSi le nom du magasin est "Book Corner" et que les produits incluent "Novel" avec le prix 12.99, "Magazine" avec le prix 4.50, "Textbook" avec le prix 89.00, "Comic" avec le prix 3.99, "Journal" avec le prix 15.75, votre programme doit afficher :
Store: Book Corner
Product Catalog Setup:
Available Products: {Novel: 12.99, Magazine: 4.5, Textbook: 89.0, Comic: 3.99, Journal: 15.75}
Shopping Cart Initialized: []
System Status:
Total products available: 5
Cart status: Empty
Most expensive item: Textbook ($89.00)
Cheapest item: Comic ($3.99)
Average product price: $25.25
Setup Status: Shopping cart system ready for customersVotre programme doit créer une Map avec des clés de type String (noms des produits) et des valeurs de type double (prix), ainsi qu'une List de Strings vide pour le panier d'achat. Trouvez les articles les plus chers et les moins chers en comparant tous les prix dans la map des produits. Calculez le prix moyen en divisant la somme de tous les prix par le nombre de produits. Arrondissez la moyenne à 2 décimales pour l'affichage. Le format d'entrée sera : le nom du magasin, puis alternativement les noms des produits et les prix (sous forme de chaînes de caractères qui doivent être converties en doubles), se terminant par "products_done".
Essayez vous-même
import 'dart:io';
void main() {
// Lire le nom du magasin
String? storeName = stdin.readLineSync();
// Initialiser les structures de données
Map<String, double> products = {};
List<String> shoppingCart = [];
// Lire les produits jusqu'à "products_done"
while (true) {
String? input = stdin.readLineSync();
if (input == "products_done") {
break;
}
String productName = input!;
String? priceInput = stdin.readLineSync();
double price = double.parse(priceInput!);
// Ajouter le produit à la map
products[productName] = price;
}
// TODO : Écrivez votre code ci-dessous pour calculer les statistiques et générer le rapport
// Imprimer le rapport de configuration du magasin
// Votre sortie doit correspondre exactement au format indiqué dans les exemples
}Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données5Projet : Calcul du panier
Configuration du projetAjout d'articles au panier3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques