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 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Public 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 Property
End 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 Sub
End 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 Sub
End Class
ABONNEZ-VOUS À LA NEWSLETTER !

Télécharger votre Calendrier 2022

X