Exercice Visual Basic : Examen Passage 2007 TSDI Variante 4 POO
Rédigé par GC Team, Publié le 04 Janvier 2012, Mise à jour le Samedi, 17 Décembre 2022 15:45Un Individu est décrit par ses données membres privées :
- un numéro de CIN
- Un nom
- Un prénom
- Une adresse
1. Définir une classe Individu avec ses données membres et une méthode Affichage () qui affiche les informations de chaque objet créer a partir de cette classe. (2 points)
2. Créer une classe de test pour dérouler un scénario activant des objets particuliers de cette classe : créer deux individus et afficher leurs informations. (2 points)
Exemple
Objet 1 : Objet 2 :
CIN : BH14501 CIN : FG 254170
Nom : Maraji Nom : Alaoui
Prénom : Ahmed Prénom : Ilham
Adresse : 59 rue tata Agadir Adresse : 103 Place la gironde Casablanca
3. Créer un package pour faciliter l'accessibilité des classes. (1 point)
On dérive la classe Individu déjà vue par une classe Formateur
En plus des données membres Individu, la classe Formateur a comme données membres privées :
Masse horaire effective
Heure supplémentaire
Taux horaire effectif
Taux horaire supplémentaire
La méthode CalculSalaire () intègre un mode de calcul comme suit :
CalculSalaire = (Masse horaire effectif* taux horaire effectif) + (Heure supplémentaire* taux horaire supplémentaire)
4. Construire la classe Formateur qui hérite de la classe Individu (2 points)
5. Au niveau de la Classe de Test : (3 points)
- Prévoir deux Formateurs et les instancier avec les constructeurs adéquats.
- Les afficher notamment CalculSalaire ( ).
On dérive la classe Individu déjà vue par une classe Stagiaire
En plus des données membres Individu, la classe Stagiaire a comme données membres privées:
Filière
Moyenne générale
6. Construire la classe Stagiaire qui hérite de la classe Individu (1.5 point)
7. Au niveau de la Classe de Test : (2 points)
Prévoir deux Stagiaires et les instancier avec les constructeurs adéquats.
8. On souhaite Enregistrer des objets Stagiaires dans un fichier. (1.5 point)
9. Ecrire des procédures de mise a jour de ce fichier :
3.1 Ajout (1 point)
3.2 Modification (1 point)
3.3 Suppression(1 point)
10. Prévoir une procédure qui permet de recopier les enregistrements du fichier vers un Vecteur. (2.5 points)
11. afficher à partir du vecteur les Stagiaires ayant une moyenne >=10. (2.5 points)
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
Public Class Formateur Inherits Individu Private MassH As Double Private Heur_Sup As Double Private Taux_H_Effec As Double Private taux_H_Sup As Double Property _MassH() As Double Get Return MassH End Get Set(ByVal value As Double) MassH = value End Set End Property Property _Heur_Sup() As Double Get Return Heur_Sup End Get Set(ByVal value As Double) Heur_Sup = value End Set End Property Property _Taux_h_effec() As Double Get Return Taux_H_Effec End Get Set(ByVal value As Double) Taux_H_Effec = value End Set End Property Property _taux_H_Sup() As Double Get Return taux_H_Sup End Get Set(ByVal value As Double) taux_H_Sup = value End Set End Property Sub New() End Sub Public Sub New(ByVal N As String, ByVal No As String, ByVal P As String, ByVal A As String, ByVal M As Double, ByVal HS As Double, ByVal THE As Double, ByVal THS As Double) MyBase.New(N, No, P, A) _MassH = M _Heur_Sup = HS _Taux_h_effec = THE _taux_H_Sup = THS End Sub Public Sub New(ByVal M As Double, ByVal HS As Double, ByVal THE As Double, ByVal THS As Double) _MassH = M _Heur_Sup = HS _Taux_h_effec = THE _taux_H_Sup = THS End Sub Sub CalculSalaire() Console.WriteLine((MassH * Taux_H_Effec) + (Heur_Sup / taux_H_Sup)) End Sub Public Overrides Sub afficher() MyBase.afficher() Console.WriteLine(MassH & vbTab & Heur_Sup & vbTab & Taux_H_Effec & vbTab & taux_H_Sup) End Sub End Class ------------------------------------------------------------------------------------------------- Public Class Individu Private NumCin As String Private nom As String Private Prénom As String Private adresse As String Property _NumCin() As String Get Return NumCin End Get Set(ByVal value As String) NumCin = value End Set End Property Property _nom() As String Get Return nom End Get Set(ByVal value As String) nom = value End Set End Property Property _prénom() As String Get Return Prénom End Get Set(ByVal value As String) Prénom = value End Set End Property Property _Adresse() As String Get Return adresse End Get Set(ByVal value As String) adresse = value End Set End Property Sub New() End Sub Sub New(ByVal Nu As String, ByVal No As String, ByVal P As String, ByVal A As String) _NumCin = Nu _nom = No _prénom = P _Adresse = A End Sub Public Overridable Sub afficher() Console.WriteLine(_NumCin & vbTab & _nom & vbTab & _prénom & vbTab & _Adresse) End Sub End Class ------------------------------------------------------------------------------------------------------- Module Module1 Dim st As New ArrayList Sub Main() Dim x As New test Dim k = New Stagiaire("AA123", "Alami", "Fadwa", "hay nahda", "TDI", 19) st.Add(k) FileOpen(1, "naziha.txt", OpenMode.Output) Dim i As Integer For i = 0 To st.Count - 1 PrintLine(1, k._NumCin & "/" & k._nom & "/" & k._prénom & "/" & k._Adresse & "/" & k._Filière & "/" & k._Moy_G) Next FileClose() Dim num, nom, prénom, adresse, filière As String Dim moye As Double Console.WriteLine("saisire le numCin du stagiairz") num = Console.ReadLine Console.WriteLine("saisire le nom du stagiaire") nom = Console.ReadLine Console.WriteLine("saisire le prénom du stagiaire") prénom = Console.ReadLine Console.WriteLine("saisire l'adresse du stagiaire") adresse = Console.ReadLine Console.WriteLine("saisire le filière du stagiaire") filière = Console.ReadLine Console.WriteLine("saisire la moyenne du stagiaire") moye = Console.ReadLine ajout(num, nom, prénom, adresse, filière, moye) copier() End Sub Sub ajout(ByVal num As String, ByVal nom As String, ByVal prénom As String, ByVal adresse As String, ByVal filière As String, ByVal moye As Double) Dim stag = New Stagiaire(num, nom, prénom, adresse, filière, moye) st.Add(stag) FileOpen(1, "naziha.txt", OpenMode.Append) Dim i As Integer For i = 0 To st.Count - 2 PrintLine(1, stag._NumCin & "/" & stag._nom & "/" & stag._prénom & "/" & stag._Adresse & "/" & stag._Filière & "/" & stag._Moy_G) Next FileClose() End Sub Sub copier() Dim R(), lin As String FileOpen(1, "naziha.txt", OpenMode.Input) While Not EOF(1) lin = LineInput(1) R = Split(lin, "/") FileClose(1) End While For i = 0 To R.GetUpperBound(0) Console.WriteLine(R(i) & vbTab) Next End Sub End Module ----------------------------------------------------------------------------- Public Class Stagiaire Inherits Individu Private Filière As String Private Moy_G As Double Property _Filière() As String Get Return Filière End Get Set(ByVal value As String) Filière = value End Set End Property Property _Moy_G() As Double Get Return Moy_G End Get Set(ByVal value As Double) Moy_G = value End Set End Property Public Sub New() End Sub Public Sub New(ByVal C As String, ByVal n As String, ByVal P As String, ByVal A As String, ByVal F As String, ByVal MG As Double) MyBase.New(C, n, P, A) _Filière = F _Moy_G = MG End Sub Public Overrides Sub afficher() MyBase.afficher() Console.WriteLine(_Filière & vbTab & _Moy_G) End Sub End Class ----------------------------------------------------------------------------- Public Class test Public Sub New() Console.WriteLine("********************* [Programme de teste] *********************") Console.WriteLine() Console.WriteLine("----------------------------------------------------------------") Console.WriteLine(" ---INDIVIDU---") Console.WriteLine() Dim individu1 As New Individu("AA192", "plplpl", "pppp", "adadadadad") Dim individu2 As New Individu("AA111", "aaaaa", "kkkkk", "rabat") individu1.afficher() Console.WriteLine() individu2.afficher() Console.WriteLine() Console.WriteLine() Console.WriteLine("----------------------------------------------------------------") Console.WriteLine("") Console.WriteLine(" ----FORMATEURS---") Console.WriteLine() Dim formateur1 As New Formateur(20, 40, 70, 33) Dim formateur2 As New Formateur(70, 22, 80, 65) Console.WriteLine("Salaire du premier formatteur" & vbTab & vbTab) formateur1.CalculSalaire() Console.WriteLine("Salaire du deuxième formatteur" & vbTab & vbTab) formateur2.CalculSalaire() Console.WriteLine() Console.WriteLine() Console.WriteLine("----------------------------------------------------------------") Console.WriteLine() Console.WriteLine(" ----STAGIAIRE----") Console.WriteLine() Dim stagiaire1 As New Stagiaire("AA190", "okokok", "mmmmm", "kkkkkkkkkk", "TDI", 15.75) Dim stagiaire2 As New Stagiaire("BB198", "kkki", "nnnnn", "llllllllllllll", "TDI", 19) stagiaire1.afficher() Console.WriteLine() stagiaire2.afficher() Console.WriteLine() Console.WriteLine() Console.WriteLine("------------------------------------------------------------------") Console.ReadLine() End Sub End Class |