Programar una máquina expendedora de café automática en Java
outhman
Mensajes publicados
1
Estado
Miembro
-
walidovich_85 Mensajes publicados 698 Estado Miembro -
walidovich_85 Mensajes publicados 698 Estado Miembro -
bonjour.
Quelles suggestions de cahier des charges pour un projet de distributeur de café automatique puis-je proposer afin de démarrer la programmation en Java ? merci d'avance
Quelles suggestions de cahier des charges pour un projet de distributeur de café automatique puis-je proposer afin de démarrer la programmation en Java ? merci d'avance
1 respuesta
-
Bonjour,
Voici une proposition de cahier des charges pour simuler un distributeur de café, en respectant le flux et les éléments que vous avez décrits. J’ai structuré le document en sections claires et ajoutant quelques détails pour faciliter le développement (fonctionnalités, données, interfaces, tests).
1) Objectif
Simuler un distributeur de café réaliste et interactive qui :
- accepte et détecte les pièces insérées.
- affiche les boissons disponibles avec leurs prix.
- calcule la différence entre le montant inséré et le prix.
- rend la monnaie au client.
- propose selon la boisson un menu optionnel (sucre, lait, etc.).
- simule la préparation avec une pause.
- délivre la boisson et affiche un message de remerciement.
- gère une base de données locale pour les stocks et les statistiques.
2) Environnement et technologies (suggestions)
- Langage: Python, JavaScript (Node.js) ou tout autre langage orienté objet.
- Interface: console (pour prototype) puis interface graphique simple ou web.
- Base de données: SQLite ou JSON local pour stocker les stocks et les statistiques.
- Modules essentiels: gestion des états (State Machine), minuterie/pause, formatage monétaire, logs.
3) Fonctionnalités principales (MVP)
3.1 Menu principal
- Afficher Menu 1:
- Help: afficher l’aide d’utilisation.
- Miser: démarrer le processus d’insertion et de détection des pièces.
- Validation des entrées utilisateur (sécurité et robustesse).
3.2 Menu après mise (Menu 2)
- Menu boissons: afficher liste des boissons disponibles et leurs prix (ex: Espresso, Cappuccino, Latte, Thé, Chocolat).
- Calculer la différence: comparer le montant inséré avec le prix de la boisson choisie.
- Rendre la monnaie: afficher et simuler le rendu de la monnaie.
- Menu spécial: suggestions selon la boisson choisie (ex: ajouter option lait, sucre, vanille, etc.).
- Déterminer le nombre de cuillères de sucre: option paramétrable (0-3).
- Simuler la préparation: pause artificielle (ex: 2-5 secondes) avec indicateur visuel.
- Donner la boisson au client: afficher le message de délivrance et le remerciement.
- Option d’inspection: si montant insuffisant, informer et proposer d’ajouter des pièces.
4) Données et état (base de données simulée)
4.1 Stock des matières premières
- Café en grains/ poudre
- Lait (entier, demi-écrémé, lait végétal)
- Sucre
- Evaporateurs/ gobelets, eau, chocolat (optionnel)
- Quantités initiales et seuils de réapprovisionnement
- Mécanismes de déduction lors de chaque boisson
4.2 Prix et recettes (par boisson)
- Définir prix et recette en termes de quantités consommées:
- Espresso: café 7g, eau 30ml, sucre 0
- Cappuccino: café 7g, lait 60ml, mousse 30ml, sucre 0-1
- Latte: café 7g, lait 180ml, sucre 0-2
- Thé: sachet thé 1, eau 200ml, sucre 0-2
- Chocolat: cacao 15g, lait 150ml, sucre 2
- Prix (exemples): Espresso 1.50, Cappuccino 2.00, Latte 2.20, Thé 1.80, Chocolat 2.50
4.3 Statistiques
- Nombre total de commandes
- Boisson la plus commandée
- Montant total encaissé
- Historique des transactions (date/boisson/montant)
5) Flux utilisateur (diagramme textuel)
- Démarrer -> Menu 1
- Choix: Help ou Miser
- Si Miser:
- Afficher Menu 2 (boissons et prix)
- Sélection de la boisson
- Insérer des pièces (valide les pièces)
- Calculer et afficher la différence
- Rendre la monnaie si nécessaire
- Proposer options supplémentaires (sucre, lait, etc.)
- Déduire les stocks selon la recette
- Pause préparation
- Délivrance et remerciement
- Mise à jour des statistiques
- Fin
6) Gestion des pièces et monnaie
- Définir un cadre de pièces acceptées: 0.10, 0.20, 0.50, 1, 2, 2.50 (ou équivalents locaux).
- Calculer et afficher le solde inséré.
- Rendre la monnaie avec l’algorithme simple: privilégier les pièces de plus grande valeur possibles.
- Gestion d’erreur si exact ou insuffisant.
7) Sécurité et robustesse
- Validation d’entrées utilisateurs.
- Gestion des stocks: si une boisson n’est pas disponible, notifier et proposer une autre boisson.
- Vérification des dépassements et des négatifs.
8) Extensions possibles (optionnelles)
- Base de données complète pour historiques, réapprovisionnement automatique.
- Interface web avec React/Vue simple.
- Session multi-client (simuler 1 machine par instance).
- Analyse des données et rapports (jour/semaine/mois).
9) Tests et critères d’acceptation
- Flux de base fonctionne: insertion de pièces, choix boisson, livraison, message de remerciement.
- Calcul correct de la monnaie et actualisation des stocks.
- Messages d’aide et gestion des erreurs clairs.
- Consistance des stocks après plusieurs commandes.
- Journalisation des transactions.
10) Livraison
- Documentation utilisateur et README avec instructions de démarrage.
- Code source organisé (modules: core, stock, ui, db, utils).
- Fichier de configuration pour prix et recettes.
Si vous le souhaitez, je peux vous fournir une version prête à exécuter en Python (console) ou en JavaScript (Node.js) qui implémente ce cahier des charges MVP, avec un fichier de configuration et un petit jeu de données initial. Dites-moi votre préférence de langage et le niveau de fidélité souhaité (prototype rapide ou solution légèrement plus robuste avec base de données légère).