Exercice Visual Basic : Mini application de gestion de petit commerce

On désire programmer une mini application de gestion de petit commerce.

Pour cela, on va écrire une classe Produit et une classe Magasin. Dans notre commerce, chaque produit est caractérisé par son N° de référence, son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description.

A la création du produit, on fixe son nom, son prix d'achat et son prix de vente, c'est à dire que ces données son fournies en argument au constructeur de la classe.

Par défaut, la description du produit est \Pas de description", et la quantité de produits en stock est nulle.

La classe Produit dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du produit, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs.

1: Ecrivez la classe Produit(2pts)

Un magasin se caractérise par son solde et par son stock de produits. Le stock de produit est représenté par un tableau d'objets \Produit".

Avant de pouvoir acheter ou vendre un produit, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin dispose d'une méthode:

public void ajouterProduit(String nom, float prixAchat, float prixVente)

L'indice de la case du tableau dans laquelle on a stocké le produit devient alors la référence de ce produit. Pour acheter ou vendre ce produit, on utilise alors la référence comme argument des méthodes:

public void acheterProduit(int referenceProduit,int nombreExemplaires)

public void vendreProduit(int referenceProduit,int nombreExemplaires)

La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin.

2: Ecrivez la classe Magasin. Testez-la. 

Jusque là, les produits disposent d'une description qui est une simple chaîne de caractère. Cela Peut être insuffisant dans certains cas.

Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Produit, mais qui dispose d'un attribut auteur et d'un attribut éditeur.

3: Ecrivez la classe Livre qui hérite de la classe Produit. Certaines méthodes doivent être surchargée (c'est-à-dire récrites) 

De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes.

4: Ecrivez la classe Cd qui hérite de la classe Produit. 

Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous-classe de Produit, les objets de type Livre sont également de type Produit, donc le tableau de produits peut également contenir des livres ou des CDs.

C'est à la création des objets que les choses changent. En plus de la méthode ajouterProduit, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd.

5: Modifier la classe Magasin pour tenir compte des nouveaux objets. 

Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin d'une méthode d'interaction permettant de proposer à  l'utilisateur d'ajouter un livre, un cd ou un produit standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un produit déjà existant, d'afficher un bilan général.

Exemple d’interaction :

Que voulez-vous faire?

1) Acheter un produit

2) Vendre un produit

3) Ajouter un produit

4) Décrire un produit

5) Voir la description d'un produit

6) Afficher un bilan

7) Modifier le prix de vente d’un produit

8) Ttrier les produits par prix de vente

9) Afficher le montant global des prix d’achat des livres et CDs

Programmer ces fonctionalités?

6: Faire un programme permettant sauvegarder les produits par catégorie (Livre, CDs …) dans un fichier nomme Produit.dat 

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136Public Class Livre Inherits Produit Private Auteur, Editeur As String Property _Auteur() Get Return Auteur End Get Set(ByVal Value) Auteur = Value End Set End Property Property _Editeur() Get Return Editeur End Get Set(ByVal Value) Editeur = Value End Set End PropertyEnd Class ----------------------------------------------------------------------------- Public Class Magasin Private solde As Double Const x As Integer = 100 Private stock(x) As Produit Public i As Integer Property _solde() Get Return solde End Get Set(ByVal Value) solde = Value End Set End Property Public Sub ajouterProduit(ByVal nom As String, ByVal prixAchat As Double, ByVal prixVente As Double) Dim a As New Produit(nom, prixAchat, prixVente) a._N_produit = i stock(i) = a i += 1 End Sub Public Sub acheterProduit(ByVal referenceProduit As Integer, ByVal nombreExemplaires As Integer) stock(referenceProduit).augmenter(nombreExemplaires) End Sub Public Sub vendreProduit(ByVal referenceProduit As Integer, ByVal nombreExemplaires As Integer) stock(referenceProduit).diminuer(nombreExemplaires) End Sub Public Sub New() End Sub Public Sub New(ByVal S As Double) _solde = S End Sub Public Sub bilan() For i = 0 To stock.GetUpperBound(0) - 1 stock(i).afficher() Next End SubEnd Class ----------------------------------------------------------------------------- Public Class Produit Private N_produit As Integer Private NB_exemplaire As Integer = 0 Private Nom As String Private Prix_achat, Prix_vente As Double Private Description As String = "Pas de description" Property _N_produit() Get Return N_produit End Get Set(ByVal Value) N_produit = Value End Set End Property Property _NB_exemplaire() Get Return NB_exemplaire End Get Set(ByVal Value) NB_exemplaire = Value End Set End Property Property _Nom() Get Return Nom End Get Set(ByVal Value) Nom = Value End Set End Property Property _Description() Get Return Description End Get Set(ByVal Value) Description = Value End Set End Property Property _Prix_achat() Get Return Prix_achat End Get Set(ByVal Value) Prix_achat = Value End Set End Property Property _Prix_vente() Get Return Prix_vente End Get Set(ByVal Value) Prix_vente = Value End Set End Property Public Sub New() End Sub Public Sub New(ByVal N As String, ByVal PA As Double, ByVal PV As Double) _Nom = N _Prix_achat = PA _Prix_vente = PV End Sub Public Sub afficher() Console.WriteLine(_N_produit & vbTab & _Nom & vbTab & _Prix_achat & vbTab & _Prix_vente & vbTab & _NB_exemplaire & vbTab & Description) End Sub Public Sub description_produit() Console.WriteLine(_Description) End Sub Public Sub augmenter(ByVal a As Integer) NB_exemplaire += a End Sub Public Sub diminuer(ByVal a As Integer) NB_exemplaire -= a End SubEnd Class
Article publié le 06 Janvier 2012