---------------------- class developpeur --------------------------------------
Public Class developpeur
Private _matricule As Integer
Private _nom As String
Private _mail As String
Private _salaire As Double = 0
Private _taux As Integer = 0
Private _nbr_heurs As Integer = 0
Public Sub New()
End Sub
Public Sub New(ByVal _matricule As Integer, ByVal _nom As String, ByVal _mail As String)
Me._matricule = _matricule
Me._nom = _nom
Me._mail = _mail
End Sub
Public Property i_matricule()
Get
Return Me._matricule
End Get
Set(ByVal value)
Me._matricule = value
End Set
End Property
Public Property s_nom()
Get
Return Me._nom
End Get
Set(ByVal value)
Me._nom = value
End Set
End Property
Public Property s_mail()
Get
Return Me._mail
End Get
Set(ByVal value)
Me._mail = value
End Set
End Property
Public Property i_salaire()
Get
Return Me._salaire
End Get
Set(ByVal value)
Me._salaire = value
End Set
End Property
Public Property i_taux()
Get
Return Me._taux
End Get
Set(ByVal value)
Me._taux = value
End Set
End Property
Public Overridable Sub calcul_salaire(ByVal nbr_heur As Integer)
Me._nbr_heurs = nbr_heur
Me._salaire = Me._nbr_heurs * Me._taux
End Sub
Public Overrides Function ToString() As String
Return "le matricule : " & Me._matricule & vbCrLf & "le nom : " & Me._nom & vbCrLf & "E-mail : " & Me._mail & vbCrLf & "Salaire : " & Me._salaire & vbCrLf & "Taux : " & Me._taux & vbCrLf & "nembre d'heurs : " & Me._nbr_heurs
End Function
End Class
-------------------- class developpeur interne -----------------------------------------
Public Class developpeurinterne
Inherits developpeur
Private _categorie As Char
Sub New()
End Sub
Sub New(ByVal _matricule As Integer, ByVal _nom As String, ByVal _mail As String, ByVal _categorie As Char)
MyBase.New(_matricule, _nom, _mail)
Me._categorie = _categorie
End Sub
Public Property s_ctaegorie
Get
Return Me._categorie
End Get
Set(ByVal value)
Me._categorie = value
End Set
End Property
Public Overrides Sub calcul_salaire(ByVal nbr_heur As Integer)
If Me._categorie = "s" Then
i_taux = 200
MyBase.calcul_salaire(nbr_heur)
i_salaire = i_salaire + 8000
Else
i_taux = 150
MyBase.calcul_salaire(nbr_heur)
i_salaire = i_salaire + 5000
End If
End Sub
Public Overrides Function ToString() As String
Return MyBase.ToString() & vbCrLf & "Categorie : " & Me._categorie
End Function
End Class
----------------------- class developpeur externe --------------------------------
Public Class developpeurexterne
Inherits developpeur
Sub New()
End Sub
Sub New(ByVal _matricule As Integer, ByVal _nom As String, ByVal _mail As String)
MyBase.New(_matricule, _nom, _mail)
End Sub
Public Overloads Sub calcul_salaire(ByVal nbr_heur As Integer)
i_taux = 150
MyBase.calcul_salaire(nbr_heur)
End Sub
End Class
------------------- class projet ----------------------------------
Public Class projet
Inherits developpeur
Private _identifiant As Integer
Private _intitul� As String
Private list As List(Of developpeur)
Public Sub New()
End Sub
Public Sub New(ByVal _identifiant As Integer, ByVal _intitul� As String)
Me._identifiant = _identifiant
Me._intitul� = _intitul�
Me.list = New List(Of developpeur)
End Sub
Public Sub New(ByVal projet1 As projet)
Me._identifiant = projet1._identifiant
Me._intitul� = projet1._intitul�
Me.list = projet1.list
End Sub
Public Sub ajouParticipant(ByVal dev As developpeur)
Me.list.Add(dev)
End Sub
Public Overloads Sub calcul_salaire(ByVal projet1 As projet)
Dim sum As Double = 0
For Each li As developpeur In projet1.list
sum = sum + li.i_salaire
Next
Console.WriteLine("la somme des salaire est : " & sum)
End Sub
End Class
-------------------------- sub main -------------------------------
Sub Main()
Dim dev As New developpeurinterne(1, "lahcen", "lahcen_ayt@hotmail.com", "j")
dev.calcul_salaire(12)
Console.WriteLine(dev.ToString)
Console.WriteLine("------------------------------------")
Dim dev1 As New developpeurinterne(1, "lahcen", "lahcen_ayt@hotmail.com", "s")
dev1.calcul_salaire(12)
Console.WriteLine(dev1.ToString)
Console.WriteLine("------------------------------------")
Dim devex As New developpeurexterne(2, "lahcen", "lahcen_ayt@hotmail.com")
devex.calcul_salaire(12)
Console.WriteLine(devex.ToString)
Console.WriteLine("------------------------------------")
Dim pro As New projet(12, "lahcen")
pro.ajouParticipant(dev)
pro.ajouParticipant(dev1)
pro.calcul_salaire(pro)
Console.ReadKey()
End Sub