Exercice VB: Tableau à deux dimensions
Rédigé par GC Team, Publié le 01 Janvier 2012, Mise à jour le Jeudi, 15 Décembre 2022 23:08Ecrire le code VB qui permet de :
1- Créer un tableau qui conteint les Informations des Etudients
2- Trier le Tableau
3- Affichage du contenu de tableau
4- Ajouter un nouveau Etudiant au tableau
5- Supprimer un Etudiant existant dans le Tableau
6- La Recherche d’un Etudiant
7- Ajouter une Case au Tableau qui contient la décision selon la Moyenne Générale : si la moyenne >= 10 alors l'étudiant est Admis si non il est Eliminé
8- Un Menu de Choix
Pour vous aider on doit remplire le Tableau comme suit:
La Première case du tableau contient le numéro de l’étudiant
La Deuxième case du tableau contient le nom de l’étudiant
La Troisième case du tableau contient le Prénom de l’étudiant
La Quatrième case du tableau contient la 1er note de l’étudiant
La Cinquième case du tableau contient la 2ème note de l’étudiant
La Sixième case du tableau contient la 3ème note de l’étudiant
La Septième case du tableau contient la Moyenne générale de l’étudiant
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 |
Module Module1 Dim tab(,) As String Dim nb As Integer Public Sub Menu() Console.WriteLine(".*..*..*.APPLICATIONS POUR LES TABLEAUX A 2 DIMENSIONS.*..*..*.") Console.WriteLine(".*.1.Créer le Tableau.*.") Console.WriteLine(".*.2.Trier le Tableau.*.") Console.WriteLine(".*.3.Afficher le Tableau.*.") Console.WriteLine(".*.4.Ajouter dans le Tableau.*.") Console.WriteLine(".*.5.Supprimer du Tableau.*.") Console.WriteLine(".*.6.Rechercher dans le Tableau.*.") Console.WriteLine(".*.7.Classement et Décisions.*.") End Sub Sub Main() Dim rep As String Do Menu() Dim choix As Integer Console.WriteLine("Taper votre choix") choix = Console.ReadLine Select Case choix Case 1 Console.WriteLine("saisir la dimension de votre tableau") nb = Console.ReadLine() ReDim tab(nb, 8) tab = Saisie() Case 2 tab = Tri(tab) Case 3 Affichage(tab) Case 4 tab = Ajout(tab) Case 5 Dim numsupp As Integer Console.WriteLine("saisir le numero de l'etudiant à supprimer") numsupp = Console.ReadLine tab = Suppression(tab, numsupp) Case 6 Dim numRech As Integer Console.WriteLine("saisir le numero de l'etudiant à rechercher") numRech = Console.ReadLine AfficheRecherche(tab, numRech) Case 7 tab = Classement(tab) Case Else Console.WriteLine("ce choix n'est pas traité") End Select Console.WriteLine("Voulez vous continuez O/N ") rep = Console.ReadLine().ToUpper Loop While (rep.Equals("O")) End Sub Public Function Saisie() As String(,) For i As Integer = 0 To tab.GetUpperBound(0) - 1 'on arrête la saisie avant la derniere ligne Console.WriteLine("saisir le numero de l'etudiant " & i + 1) tab(i, 0) = Console.ReadLine Console.WriteLine("saisir le nom de l'etudiant " & i + 1) tab(i, 1) = Console.ReadLine() Console.WriteLine("saisir le prenom de l'etudiant " & i + 1) tab(i, 2) = Console.ReadLine() Console.WriteLine("saisir la note 1 de l'etudiant " & i + 1) tab(i, 3) = Console.ReadLine() Console.WriteLine("saisir la note 2 de l'etudiant " & i + 1) tab(i, 4) = Console.ReadLine() Console.WriteLine("saisir la note 3 de l'etudiant " & i + 1) tab(i, 5) = Console.ReadLine() tab(i, 6) = ((Double.Parse(tab(i, 3)) + Double.Parse(tab(i, 4)) + Double.Parse(tab(i, 5))) / 3).ToString Next Return tab End Function Public Sub Affichage(ByRef t(,) As String) For i As Integer = 0 To t.GetUpperBound(0) - 1 'on n'affiche pas la derniere ligne For j As Integer = 0 To t.GetUpperBound(1) Console.Write(t(i, j) & " ") Next Console.WriteLine("") Console.WriteLine("") Next End Sub Public Function Tri(ByRef t(,) As String) As String(,) For i As Integer = 0 To t.GetUpperBound(0) - 1 For j As Integer = i + 1 To t.GetUpperBound(0) If CType(t(i, 6), Double) < CType(t(j, 6), Double) Then For k As Integer = 0 To t.GetUpperBound(1) t(t.GetUpperBound(0), k) = t(i, k) t(i, k) = t(j, k) t(j, k) = t(t.GetUpperBound(0), k) Next End If Next Next Return t End Function Public Function Ajout(ByRef t(,) As String) As String(,) Dim t1(t.GetUpperBound(0) + 1, 8) As String For i As Integer = 0 To t.GetUpperBound(0) - 1 For j As Integer = 0 To t.GetUpperBound(1) t1(i, j) = t(i, j) Next Next Console.WriteLine("saisir le numero de l'etudiant à ajouter ") t1(t1.GetUpperBound(0) - 1, 0) = Console.ReadLine Console.WriteLine("saisir le nom de l'etudiant à ajouter ") t1(t1.GetUpperBound(0) - 1, 1) = Console.ReadLine() Console.WriteLine("saisir le prenom de l'etudiant à ajouter ") t1(t1.GetUpperBound(0) - 1, 2) = Console.ReadLine() Console.WriteLine("saisir la note 1 de l'etudiant à ajouter ") t1(t1.GetUpperBound(0) - 1, 3) = Console.ReadLine() Console.WriteLine("saisir la note 2 de l'etudiant à ajouter ") t1(t1.GetUpperBound(0) - 1, 4) = Console.ReadLine() Console.WriteLine("saisir la note 3 de l'etudiant à ajouter ") t1(t1.GetUpperBound(0) - 1, 5) = Console.ReadLine() t1(t1.GetUpperBound(0) - 1, 6) = ((Double.Parse(t1(t1.GetUpperBound(0) - 1, 3)) + Double.Parse(t1(t1.GetUpperBound(0) - 1, 4)) + Double.Parse(t1(t1.GetUpperBound(0) - 1, 5))) / 3).ToString Return t1 End Function Public Function Suppression(ByRef t(,) As String, ByVal element As Integer) As String(,) Dim pos As Integer = Recherche(t, element) Dim t1(t.GetUpperBound(0) - 1, 8) As String If pos -1 Then For i As Integer = 0 To t.GetUpperBound(0) - 1 For j As Integer = 0 To t.GetUpperBound(1) If t(i, 0) element Then t1(i, j) = t(i, j) Else : t1(i, j) = t(i + 1, j) End If Next Next End If Return t1 End Function Public Function Recherche(ByRef t(,) As String, ByVal element As Integer) As Integer Dim pos As Integer = -1 For i As Integer = 0 To t.GetUpperBound(0) If t(i, 0) = element Then pos = i End If Next Return pos End Function Public Sub AfficheRecherche(ByRef t(,) As String, ByVal element As Integer) Dim pos As Integer = Recherche(t, element) If pos -1 Then For i As Integer = 0 To t.GetUpperBound(1) Console.Write(t(pos, i) & " ") Next Console.WriteLine() Else Console.WriteLine("l'element recherché n'existe pas") End If End Sub Public Function Classement(ByVal t(,) As String) As String(,) t(0, 7) = CType(1, String) For i As Integer = 1 To t.GetUpperBound(0) - 1 If Double.Parse(t(i - 1, 6)) = Double.Parse(t(i, 6)) Then t(i, 7) = t(i - 1, 7) Else : t(i, 7) = CType(i + 1, String) End If Next For i As Integer = 0 To t.GetUpperBound(0) - 1 If Double.Parse(t(i, 6)) >= 10 Then t(i, 8) = "Admis" Else : t(i, 8) = "Eliminé" End If Next Return t End Function End Module |