Ajout d'articles au panier
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 34 sur 65.
Défi
FacileCréez un programme qui implémente la fonctionnalité d'ajout d'articles à un panier d'achat. Votre programme doit utiliser une Map de catalogue de produits codée en dur et une List de panier d'achat vide, puis traiter les entrées d'articles de l'utilisateur.
Définissez le catalogue de produits suivant directement dans votre code :
Map<String, double> productCatalog = {
'Apple': 1.50,
'Banana': 0.80,
'Orange': 2.00,
'Milk': 3.25,
'Laptop': 999.99,
'Mouse': 25.50,
'Keyboard': 75.00,
'Novel': 12.99,
'Magazine': 4.50,
'Textbook': 89.00
};Votre programme doit :
- Utiliser la Map de catalogue de produits définie ci-dessus et une List de panier d'achat vide
- Lire plusieurs entrées de chaînes de caractères représentant les articles que les clients souhaitent ajouter à leur panier (l'entrée se terminera lorsque vous recevrez
"cart_done") - Pour chaque article, vérifier s'il existe dans le catalogue de produits en utilisant
containsKey() - Si l'article existe, l'ajouter à la List du panier d'achat en utilisant la méthode
add() - Si l'article n'existe pas, l'ignorer et continuer le traitement
- Suivre les ajouts réussis et les tentatives échouées
- Afficher le rapport de gestion du panier dans le format exact indiqué ci-dessous
Par exemple, si les clients souhaitent ajouter "Apple", "Bread", "Banana", "Apple", "Juice", votre programme doit afficher :
Shopping Cart Operations:
Adding 'Apple': Item added to cart successfully
Adding 'Bread': Item not available in store
Adding 'Banana': Item added to cart successfully
Adding 'Apple': Item added to cart successfully
Adding 'Juice': Item not available in store
Cart Contents: [Apple, Banana, Apple]
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 2
Cart Status: Ready for checkoutSi les clients souhaitent ajouter "Mouse", "Monitor", "Keyboard", "Mouse", votre programme doit afficher :
Shopping Cart Operations:
Adding 'Mouse': Item added to cart successfully
Adding 'Monitor': Item not available in store
Adding 'Keyboard': Item added to cart successfully
Adding 'Mouse': Item added to cart successfully
Cart Contents: [Mouse, Keyboard, Mouse]
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 1
Cart Status: Ready for checkoutSi les clients souhaitent ajouter "Novel", "Dictionary", "Magazine", "Novel", "Comic", "Textbook", votre programme doit afficher :
Shopping Cart Operations:
Adding 'Novel': Item added to cart successfully
Adding 'Dictionary': Item not available in store
Adding 'Magazine': Item added to cart successfully
Adding 'Novel': Item added to cart successfully
Adding 'Comic': Item not available in store
Adding 'Textbook': Item added to cart successfully
Cart Contents: [Novel, Magazine, Novel, Textbook]
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 2
Cart Status: Ready for checkoutVotre programme doit utiliser containsKey() pour vérifier que chaque article existe dans le catalogue de produits avant de l'ajouter au panier. Utilisez la méthode add() pour ajouter les articles valides à la List du panier d'achat. Comptez le nombre total d'articles dans le panier à l'aide de la propriété length, et déterminez les produits uniques en convertissant le panier en un Set et en vérifiant sa taille. Suivez à la fois les ajouts réussis et les articles qui n'ont pas été trouvés dans le catalogue. Le format d'entrée sera : les noms des articles à ajouter au panier, se terminant par "cart_done".
Essayez vous-même
import 'dart:io';
void main() {
// Read store name
String? storeName = stdin.readLineSync();
// Initialize data structures
Map<String, double> products = {};
List<String> shoppingCart = [];
// Read products until "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!);
// Add product to map
products[productName] = price;
}
// Calculate statistics
double totalPrice = 0;
double maxPrice = 0;
double minPrice = double.infinity;
String mostExpensiveItem = '';
String cheapestItem = '';
for (String productName in products.keys) {
double price = products[productName]!;
totalPrice += price;
if (price > maxPrice) {
maxPrice = price;
mostExpensiveItem = productName;
}
if (price < minPrice) {
minPrice = price;
cheapestItem = productName;
}
}
double averagePrice = totalPrice / products.length;
// Print the store setup report
print('Store: $storeName');
print('Product Catalog Setup:');
print('Available Products: $products');
print('Shopping Cart Initialized: $shoppingCart');
print('System Status:');
print('Total products available: ${products.length}');
print('Cart status: Empty');
print('Most expensive item: $mostExpensiveItem (\$${maxPrice.toStringAsFixed(2)})');
print('Cheapest item: $cheapestItem (\$${minPrice.toStringAsFixed(2)})');
print('Average product price: \$${averagePrice.toStringAsFixed(2)}');
print('Setup Status: Shopping cart system ready for customers');
}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