La classe Product représente un produit avec un nom, prix et quantité. La classe Invoice représente une facture avec une liste de produits. La classe Invoice inclut des méthodes pour ajouter des produits, calculer le total et afficher la facture. Une autre tâche consiste à écrire une fonction vérifiant l'équilibre des parenthèses dans une expression mathématique.
0 évaluation0% ont trouvé ce document utile (0 vote)
10 vues2 pages
La classe Product représente un produit avec un nom, prix et quantité. La classe Invoice représente une facture avec une liste de produits. La classe Invoice inclut des méthodes pour ajouter des produits, calculer le total et afficher la facture. Une autre tâche consiste à écrire une fonction vérifiant l'équilibre des parenthèses dans une expression mathématique.
La classe Product représente un produit avec un nom, prix et quantité. La classe Invoice représente une facture avec une liste de produits. La classe Invoice inclut des méthodes pour ajouter des produits, calculer le total et afficher la facture. Une autre tâche consiste à écrire une fonction vérifiant l'équilibre des parenthèses dans une expression mathématique.
La classe Product représente un produit avec un nom, prix et quantité. La classe Invoice représente une facture avec une liste de produits. La classe Invoice inclut des méthodes pour ajouter des produits, calculer le total et afficher la facture. Une autre tâche consiste à écrire une fonction vérifiant l'équilibre des parenthèses dans une expression mathématique.
Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2
Série d’exercices N 2 C++
Exercice 1 : Gestion de facture
Vous devez créer deux classes en C++ pour gérer une facture. La première classe s'appelle Product et représente un produit. La deuxième classe s'appelle Invoice et représente une facture. La classe Product La classe Product doit contenir les attributs suivants : • name : le nom du produit (une chaîne de caractères) • price : le prix du produit (un nombre décimal) • quantity : la quantité de produits (un nombre entier) La classe Product doit également avoir une méthode appelée getSubtotal() qui retourne le sous-total du produit en multipliant le prix par la quantité. La classe Invoice La classe Invoice doit contenir les attributs suivants : • productList : une liste de produits (une liste de Product) La classe Invoice doit avoir les méthodes suivantes : • addProduct() : prend en paramètre un produit (Product) et ajoute ce produit à la liste de produits de la facture (productList). • getTotal() : retourne le total de la facture en appelant la méthode getSubtotal() pour chaque produit dans productList. • printInvoice() : affiche la facture avec le nom du produit, le prix, la quantité et le sous-total de chaque produit, ainsi que le total de la facture. Instructions • Créez la classe Product avec les attributs et la méthode décrits ci-dessus. • Créez la classe Invoice avec la liste de produits et les méthodes décrits ci- dessus. • Écrivez une fonction main() qui crée une facture, ajoute plusieurs produits à la facture, puis affiche la facture avec la méthode printInvoice(). • Testez votre programme avec différents produits et quantités pour vous assurer qu'il fonctionne correctement. Contraintes • Vous devez utiliser les classes Product et Invoice pour gérer la facture. • Vous devez utiliser une liste (list) de produits pour stocker les produits de la facture. • Les prix et quantités de produits doivent être des nombres décimaux et entiers, respectivement. • Le total de la facture et les sous-totaux de chaque produit doivent être calculés en utilisant des nombres décimaux. Exercice 2: parentheses_equilibrated Écrire une fonction en C++ qui prend en entrée une expression mathématique sous forme de chaîne de caractères et provisoirement si les parenthèses de l'expression sont bien équilibrées. Autrement dit, pour chaque parenthèse ouvrante dans l'expression, il doit y avoir une parenthèse fermante correspondante plus tard dans l'expression, et dans le bon ordre. La fonction doit renvoyer true si les parenthèses de l'expression sont bien équilibrées et false sinon. Par exemple, l'expression ((2+3)*4)/(1-5) est bien parenthésée, tandis que l'expression ((2+3)*4)/(1-5 ne l'est pas, car il manque une parenthèse fermée. Vous pouvez supposer que l'expression ne contient que :{,(,[, ),],}, des chiffres et des opérateurs arithmétiques (+, -, *, /). Voici un exemple de signature de fonction pour cette tâche bool parentheses_equilibrated(const string& expr); La fonction prend en paramètre une chaîne de caractères contenant l'expression mathématique à évaluer et renvoyer true si les parenthèses de l'expression sont bien équilibrées et false sinon.