|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
GESTION D'UN CONCOURS DE PÊCHE SANS BASE DE DONNÉES
Information sur la source
Description
Le but de ce prigramme est de permettre de gérer des données sans faire appel à un système de gestion de base de données. Cela sera possible grâce aux Assistants et aux contrôles inclus dans Visual-2005. Pour chaque participant, les résultats à enregistrer sont: - la masse totale de poisson - la masse du plus gros poisson - le nombre de poissons Les résultats pourront être classés soit par genre (homme, femme) sois par âge, avec une catégorie junior pour les moins de 17 ans.
Source
- Public Class Form1
- '-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBBBBBBBBBBBBB BBB BBB BBB BBBBBBBBBBBBB BBBB BBBB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBBBBBBBBBBBBB BBB BBB BBB BBB BBB BBBBBBBBBBBBB BBB BB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBB BBB BB BBBBB BB BBBBBBBBB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBB BBB BBB BBBBBBBBBBBB BBB BB BB BBBBBBB B BB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBBBBBBBB BBB BBBBBBBBBBBB BBB BB BB BBBBB B B B -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBBBBBBBB BBB BB BBB BB BB B B BBBBBBB B BBBB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBB BBBBBBBBBBBBBBB BBB BBB BBB BB BB BBB BB BB BBBB B B B B B BB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_- BBB BBBBBBBBBBBBBBB BBB BBB BBB BBBBBBBBBBBBBB BBBBBB BBBBBBBBB BBBB BBBBB B BBB BBBBBBBBBB -_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
- '-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
-
-
- '*************************************** Ajouter un participant avec l'aide de AddingNew
- '*************************************** de ParticipantBindingSource
-
- Private Sub ParticipantBindingSource_AddingNew(ByVal sender As System.Object, ByVal e As System.ComponentModel.AddingNewEventArgs) _
- Handles ParticipantBindingSource.AddingNew
-
- e.NewObject = New Participant(Me.NomTextBox.Text, _
- Me.PrenomTextBox.Text, _
- Me.DateDeNaissanceDateTimePicker.Value, _
- Me.FemininCheckBox.Checked)
-
-
- End Sub
-
-
- '*************************************** Dans chacun de gestionnaire d'événement, on crée un BinaryFormatter qui sera
- '*************************************** chargé de réaliser la sérialisation et la désérialisation.
-
- '*************************************** On utilise les méthodes Serialiser et Deserialiser du BinaryFormatter
- '*************************************** que l'on a créé pour sérialiser et désérialiser la liste de
- '*************************************** participants accessible par la propriété List de l'objet ParticipantBindingSource
-
- Private Sub OuvrirToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OuvrirToolStripButton.Click
-
- '*************************************** On utilise un OpenFileDialog pour
- '*************************************** récupérer le nom du fichier
- Dim Formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
- Dim ofd As New OpenFileDialog
-
- ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
-
-
- If ofd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
- Dim fs As New IO.FileStream(ofd.FileName, IO.FileMode.Open)
-
- Try
- Me.ParticipantBindingSource.DataSource = CType(Formatter.Deserialize(fs), IList(Of Participant))
- Catch ex As Exception
- MessageBox.Show("La récupération a échouée : " + vbCrLf + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
- Finally
- fs.Close()
-
- End Try
- End If
-
- End Sub
-
- Private Sub EnregistrerToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnregistrerToolStripButton.Click
-
- '*************************************** On utilise un SaveFileDialog pour enregistrer
- '*************************************** le nouveau fichier avec les nouvelles données
- Dim Formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
- Dim sfd As New SaveFileDialog
-
- sfd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
-
- If sfd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
- Dim fs As New IO.FileStream(sfd.FileName, IO.FileMode.Create)
-
- Try
- Formatter.Serialize(fs, Me.ParticipantBindingSource.List)
-
- Catch ex As Exception
- MessageBox.Show("La sauvegarde a échouée : " + vbCrLf + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
- Finally
- fs.Close()
- End Try
- End If
-
- End Sub
-
- Private Sub Classement_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optToutes.Click, optNombre.Click, optJunior.Click, optHommes.Click, optGros.Click, optGeneral.Click, optFemmes.Click
-
- Dim ClassementConcours As New List(Of Participant)
-
- If Not optToutes.Checked Then
- Dim participant As Participant
- For Each participant In Me.ParticipantBindingSource.List
- If optJunior.Checked AndAlso participant.Age < 17 Then
- ClassementConcours.Add(participant)
- ElseIf Me.optHommes.Checked AndAlso participant.Feminin = False Then
- ClassementConcours.Add(participant)
- ElseIf Me.optFemmes.Checked AndAlso participant.Feminin Then
- ClassementConcours.Add(participant)
- End If
- Next
- Else
- ClassementConcours.AddRange(Me.ParticipantBindingSource.List)
- End If
-
- If Me.DataGridView1.DataSource IsNot Nothing Then
- Me.DataGridView1.DataSource = Nothing
-
- End If
-
- Select Case True
-
- Case Me.optGeneral.Checked
- ClassementConcours.Sort(New Participant.ComparerParMasseTotalePoisson)
- With Me.DataGridView1
- .DataSource = ClassementConcours
- .Columns("NomComplet").DisplayIndex = 0
- .Columns("MasseTotalePoisson").Visible = True
- .Columns("MasseTotalePoisson").DisplayIndex = 1
- .Columns("MassePlusGrosPoisson").Visible = True
- .Columns("MassePlusGrosPoisson").DisplayIndex = 2
- .Columns("NombrePoissons").Visible = True
- .Columns("NombrePoissons").DisplayIndex = 3
- End With
- Case Me.optGros.Checked
- ClassementConcours.Sort(New Participant.ComparerParMassePlusGrosPoisson)
- With Me.DataGridView1
- .DataSource = ClassementConcours
- .Columns("NomComplet").DisplayIndex = 0
- .Columns("MassePlusGrosPoisson").DisplayIndex = 1
- .Columns("MasseTotalePoisson").Visible = False
- .Columns("NombrePoissons").Visible = False
- End With
- Case Me.optNombre.Checked
- ClassementConcours.Sort(New Participant.ComparerParNombrePoisson)
- With Me.DataGridView1
- .DataSource = ClassementConcours
- .Columns("NomComplet").DisplayIndex = 0
- .Columns("NombrePoissons").DisplayIndex = 1
- .Columns("MasseTotalePoisson").Visible = False
- .Columns("MassePlusGrosPoisson").Visible = False
-
- End With
- End Select
-
- With Me.DataGridView1
- .Columns("Age").Visible = False
- .Columns("DateNaissance").Visible = False
- .Columns("Feminin").Visible = False
- .Columns("Nom").Visible = False
- .Columns("Prenom").Visible = False
-
- End With
-
- End Sub
-
- End Class
-
- '***********************************************************************************************************************
- '************************ Classe Participant
- '******************************************* Tout comme la classe Personne, la classe Participant doit avoir
- '******************************************* l'attribut Serializable pour qu'il soit possible de stocker son état dans un fichier
- '******************************************* par la suite. Même si cette classe n'implémente pas l'interface ICoparable
- '******************************************* ses instances peuvent être comparées entre elles grâce
- '******************************************* à l'implementation de sa classe de base
-
- Inherits Personne
-
- Private m_nbPoissons As Integer
- Private m_masseTotalePoisson As Single
- Private m_massePlusGrosPoisson As Single
-
-
- '******************************************* Ici on crée un constructeur qui permettra d'initialiser les données
- '******************************************* personnelles de chaque participant en appelant le constructeur
- '******************************************* de la classe de base à l'aide de (MyBase.New)
-
- Public Sub New(ByVal nom As String, ByVal prenom As String, ByVal dateNaissance As DateTime, ByVal feminin As Boolean)
- MyBase.New(nom, prenom, dateNaissance, feminin)
- Me.NombrePoissons = 0
- Me.MassePlusGrosPoisson = 0
- Me.MasseTotalePoisson = 0
- End Sub
-
- '******************************************* Ici on doit créer une fois de plus des propriétés accéder aux champs
- '******************************************* de la classe, afin que celle-ci puisse être utilisée comme source
- '******************************************* de données par la suite
- Public Property NombrePoissons() As Integer
- Get
- Return Me.m_nbPoissons
- End Get
- Set(ByVal value As Integer)
- Me.m_nbPoissons = value
- End Set
- End Property
-
- Public Property MasseTotalePoisson() As Integer
- Get
- Return Me.m_masseTotalePoisson
- End Get
- Set(ByVal value As Integer)
- Me.m_nbPoissons = value
- End Set
- End Property
-
- Public Property MassePlusGrosPoisson() As Integer
- Get
- Return Me.m_massePlusGrosPoisson
- End Get
- Set(ByVal value As Integer)
- Me.m_massePlusGrosPoisson = value
- End Set
- End Property
- '*****************************************************************************************************************************************
- '*****************************************************************************************************************************************
- '*****************************************************************************************************************************************
-
- '*************************************** Implémentation des classe auxiliaires dans la classe Participan
- '*************************************** pour permetre la comparaison des résultat des participants
-
- '############################################################################################################################
-
- Public Class ComparerParNombrePoisson
-
- Implements IComparer(Of Participant)
-
-
- Public Function Compare(ByVal x As Participant, ByVal y As Participant) As Integer Implements System.Collections.Generic.IComparer(Of Participant).Compare
-
- Return x.MasseTotalePoisson.CompareTo(y.MasseTotalePoisson)
-
- End Function
- End Class
-
-
-
-
- Public Class ComparerParMassePlusGrosPoisson
- Implements IComparer
-
-
- Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
-
- Return x.MassePlusGrosPoisson.compareto(y.MassePlusGrosPoisson)
-
- End Function
- End Class
-
-
-
-
- Public Class ComparerParMasseTotalePoisson
- Implements IComparer(Of Participant)
-
- Public Function Compare(ByVal x As Participant, ByVal y As Participant) As Integer Implements System.Collections.Generic.IComparer(Of Participant).Compare
-
- Return x.MasseTotalePoisson.CompareTo(y.MasseTotalePoisson)
-
- End Function
- End Class
-
- End Class
- '############################################################################################################################
-
- 'Classe Personne
-
- '******************************************* L'atribut "Serializable", placé au début de la déclaration de la classe,
- ' ****************************************** est nécessaire car on va sérialiser les données des personnes participant
- ' ****************************************** au concours
-
- Implements IComparable(Of Personne)
-
- Public m_nom As String
- Public m_prenom As String
- Public m_dateN As DateTime
- Public m_feminin As Boolean
-
- '********************************************* On ajoute un constructeur à la classe, qui permet d'initialiser tous ses champs
- '********************************************* lors de l'initialisation des objets de type Personne
-
- Public Sub New(ByVal nom As String, ByVal prenom As String, ByVal dateNaissance As DateTime, ByVal feminin As Boolean)
-
- Me.m_nom = nom
- Me.m_prenom = prenom
- Me.m_dateN = dateNaissance
- Me.m_feminin = feminin
-
- End Sub
-
- '********************************************** créer des propriétés pour chacun des champs de la classe
- '********************************************** elles permettront d'utiliser automatiquement les objets
- '********************************************** comme source de données dans Visual Basic 2005 Express
-
- Public Property Nom() As String
- Get
- Return m_nom
- End Get
- Set(ByVal value As String)
- m_nom = value
- End Set
- End Property
-
- Public Property Prenom() As String
- Get
- Return m_prenom
- End Get
- Set(ByVal value As String)
- m_prenom = value
- End Set
- End Property
-
- Public Property DateDeNaissance() As DateTime
- Get
- Return m_dateN
- End Get
- Set(ByVal value As DateTime)
- m_dateN = value
- End Set
- End Property
-
- Public Property Feminin() As Boolean
- Get
- Return m_feminin
- End Get
- Set(ByVal value As Boolean)
- m_feminin = value
- End Set
- End Property
-
- '********************************************** On crée deux propriétés supplementaires en lecture seule : NomComplet et Age
- '********************************************** La première retourne une chaîne de caractères composée du nom de famille en
- '********************************************** majuscule, suivi de son prénom; cette propriété est utile pour l'affichae
- '********************************************** des informations relatives aux participants.
- Public ReadOnly Property NomComplet() As String
- Get
- Return Me.m_nom.ToUpper() + "" + Me.m_prenom
- End Get
- End Property
-
- '********************************************** Cette propriété calcule l'age des individus et est utilisée pour déterminer les
- '********************************************** membres de la catégorie "junior"
-
- Public ReadOnly Property Age() As Integer
- Get
- Return CInt(Today.Subtract(Me.m_dateN).TotalDays / 365.25)
- End Get
- End Property
-
- '********************************************** On implémente une méthode ComapreTo, puisque l'on va implémenter
- '********************************************** l'interface IComparable(Of Personne). Parce que l'on utilise une
- '********************************************** interface générique, on n'a pas à se soucier du type du
- '********************************************** paramètre passé à la méthode : on a défini dès la compilation
- '********************************************** qu'il s'agit d'une Personne. Cette méthode sert à trier par ordre
- '********************************************** alphabétique une liste d'instances de la classe Personne
-
- Public Function CompareTo(ByVal obj As Personne) As Integer Implements System.IComparable(Of Personne).CompareTo
-
- Return Me.NomComplet.CompareTo(obj.NomComplet)
-
- End Function
- End Class
Public Class Form1
'-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBBBBBBBBBBBBB BBB BBB BBB BBBBBBBBBBBBB BBBB BBBB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBBBBBBBBBBBBB BBB BBB BBB BBB BBB BBBBBBBBBBBBB BBB BB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBB BBB BB BBBBB BB BBBBBBBBB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBB BBB BBB BBBBBBBBBBBB BBB BB BB BBBBBBB B BB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBBBBBBBB BBB BBBBBBBBBBBB BBB BB BB BBBBB B B B -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBB BBB BBB BBBBBBBBB BBB BB BBB BB BB B B BBBBBBB B BBBB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBB BBBBBBBBBBBBBBB BBB BBB BBB BB BB BBB BB BB BBBB B B B B B BB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_- BBB BBBBBBBBBBBBBBB BBB BBB BBB BBBBBBBBBBBBBB BBBBBB BBBBBBBBB BBBB BBBBB B BBB BBBBBBBBBB -_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
'-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_-_-_-_-
'*************************************** Ajouter un participant avec l'aide de AddingNew
'*************************************** de ParticipantBindingSource
Private Sub ParticipantBindingSource_AddingNew(ByVal sender As System.Object, ByVal e As System.ComponentModel.AddingNewEventArgs) _
Handles ParticipantBindingSource.AddingNew
e.NewObject = New Participant(Me.NomTextBox.Text, _
Me.PrenomTextBox.Text, _
Me.DateDeNaissanceDateTimePicker.Value, _
Me.FemininCheckBox.Checked)
End Sub
'*************************************** Dans chacun de gestionnaire d'événement, on crée un BinaryFormatter qui sera
'*************************************** chargé de réaliser la sérialisation et la désérialisation.
'*************************************** On utilise les méthodes Serialiser et Deserialiser du BinaryFormatter
'*************************************** que l'on a créé pour sérialiser et désérialiser la liste de
'*************************************** participants accessible par la propriété List de l'objet ParticipantBindingSource
Private Sub OuvrirToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OuvrirToolStripButton.Click
'*************************************** On utilise un OpenFileDialog pour
'*************************************** récupérer le nom du fichier
Dim Formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim ofd As New OpenFileDialog
ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
If ofd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
Dim fs As New IO.FileStream(ofd.FileName, IO.FileMode.Open)
Try
Me.ParticipantBindingSource.DataSource = CType(Formatter.Deserialize(fs), IList(Of Participant))
Catch ex As Exception
MessageBox.Show("La récupération a échouée : " + vbCrLf + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
fs.Close()
End Try
End If
End Sub
Private Sub EnregistrerToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnregistrerToolStripButton.Click
'*************************************** On utilise un SaveFileDialog pour enregistrer
'*************************************** le nouveau fichier avec les nouvelles données
Dim Formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim sfd As New SaveFileDialog
sfd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
If sfd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
Dim fs As New IO.FileStream(sfd.FileName, IO.FileMode.Create)
Try
Formatter.Serialize(fs, Me.ParticipantBindingSource.List)
Catch ex As Exception
MessageBox.Show("La sauvegarde a échouée : " + vbCrLf + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
fs.Close()
End Try
End If
End Sub
Private Sub Classement_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optToutes.Click, optNombre.Click, optJunior.Click, optHommes.Click, optGros.Click, optGeneral.Click, optFemmes.Click
Dim ClassementConcours As New List(Of Participant)
If Not optToutes.Checked Then
Dim participant As Participant
For Each participant In Me.ParticipantBindingSource.List
If optJunior.Checked AndAlso participant.Age < 17 Then
ClassementConcours.Add(participant)
ElseIf Me.optHommes.Checked AndAlso participant.Feminin = False Then
ClassementConcours.Add(participant)
ElseIf Me.optFemmes.Checked AndAlso participant.Feminin Then
ClassementConcours.Add(participant)
End If
Next
Else
ClassementConcours.AddRange(Me.ParticipantBindingSource.List)
End If
If Me.DataGridView1.DataSource IsNot Nothing Then
Me.DataGridView1.DataSource = Nothing
End If
Select Case True
Case Me.optGeneral.Checked
ClassementConcours.Sort(New Participant.ComparerParMasseTotalePoisson)
With Me.DataGridView1
.DataSource = ClassementConcours
.Columns("NomComplet").DisplayIndex = 0
.Columns("MasseTotalePoisson").Visible = True
.Columns("MasseTotalePoisson").DisplayIndex = 1
.Columns("MassePlusGrosPoisson").Visible = True
.Columns("MassePlusGrosPoisson").DisplayIndex = 2
.Columns("NombrePoissons").Visible = True
.Columns("NombrePoissons").DisplayIndex = 3
End With
Case Me.optGros.Checked
ClassementConcours.Sort(New Participant.ComparerParMassePlusGrosPoisson)
With Me.DataGridView1
.DataSource = ClassementConcours
.Columns("NomComplet").DisplayIndex = 0
.Columns("MassePlusGrosPoisson").DisplayIndex = 1
.Columns("MasseTotalePoisson").Visible = False
.Columns("NombrePoissons").Visible = False
End With
Case Me.optNombre.Checked
ClassementConcours.Sort(New Participant.ComparerParNombrePoisson)
With Me.DataGridView1
.DataSource = ClassementConcours
.Columns("NomComplet").DisplayIndex = 0
.Columns("NombrePoissons").DisplayIndex = 1
.Columns("MasseTotalePoisson").Visible = False
.Columns("MassePlusGrosPoisson").Visible = False
End With
End Select
With Me.DataGridView1
.Columns("Age").Visible = False
.Columns("DateNaissance").Visible = False
.Columns("Feminin").Visible = False
.Columns("Nom").Visible = False
.Columns("Prenom").Visible = False
End With
End Sub
End Class
'***********************************************************************************************************************
'************************ Classe Participant
'******************************************* Tout comme la classe Personne, la classe Participant doit avoir
'******************************************* l'attribut Serializable pour qu'il soit possible de stocker son état dans un fichier
'******************************************* par la suite. Même si cette classe n'implémente pas l'interface ICoparable
'******************************************* ses instances peuvent être comparées entre elles grâce
'******************************************* à l'implementation de sa classe de base
Inherits Personne
Private m_nbPoissons As Integer
Private m_masseTotalePoisson As Single
Private m_massePlusGrosPoisson As Single
'******************************************* Ici on crée un constructeur qui permettra d'initialiser les données
'******************************************* personnelles de chaque participant en appelant le constructeur
'******************************************* de la classe de base à l'aide de (MyBase.New)
Public Sub New(ByVal nom As String, ByVal prenom As String, ByVal dateNaissance As DateTime, ByVal feminin As Boolean)
MyBase.New(nom, prenom, dateNaissance, feminin)
Me.NombrePoissons = 0
Me.MassePlusGrosPoisson = 0
Me.MasseTotalePoisson = 0
End Sub
'******************************************* Ici on doit créer une fois de plus des propriétés accéder aux champs
'******************************************* de la classe, afin que celle-ci puisse être utilisée comme source
'******************************************* de données par la suite
Public Property NombrePoissons() As Integer
Get
Return Me.m_nbPoissons
End Get
Set(ByVal value As Integer)
Me.m_nbPoissons = value
End Set
End Property
Public Property MasseTotalePoisson() As Integer
Get
Return Me.m_masseTotalePoisson
End Get
Set(ByVal value As Integer)
Me.m_nbPoissons = value
End Set
End Property
Public Property MassePlusGrosPoisson() As Integer
Get
Return Me.m_massePlusGrosPoisson
End Get
Set(ByVal value As Integer)
Me.m_massePlusGrosPoisson = value
End Set
End Property
'*****************************************************************************************************************************************
'*****************************************************************************************************************************************
'*****************************************************************************************************************************************
'*************************************** Implémentation des classe auxiliaires dans la classe Participan
'*************************************** pour permetre la comparaison des résultat des participants
'############################################################################################################################
Public Class ComparerParNombrePoisson
Implements IComparer(Of Participant)
Public Function Compare(ByVal x As Participant, ByVal y As Participant) As Integer Implements System.Collections.Generic.IComparer(Of Participant).Compare
Return x.MasseTotalePoisson.CompareTo(y.MasseTotalePoisson)
End Function
End Class
Public Class ComparerParMassePlusGrosPoisson
Implements IComparer
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Return x.MassePlusGrosPoisson.compareto(y.MassePlusGrosPoisson)
End Function
End Class
Public Class ComparerParMasseTotalePoisson
Implements IComparer(Of Participant)
Public Function Compare(ByVal x As Participant, ByVal y As Participant) As Integer Implements System.Collections.Generic.IComparer(Of Participant).Compare
Return x.MasseTotalePoisson.CompareTo(y.MasseTotalePoisson)
End Function
End Class
End Class
'############################################################################################################################
'Classe Personne
'******************************************* L'atribut "Serializable", placé au début de la déclaration de la classe,
' ****************************************** est nécessaire car on va sérialiser les données des personnes participant
' ****************************************** au concours
Implements IComparable(Of Personne)
Public m_nom As String
Public m_prenom As String
Public m_dateN As DateTime
Public m_feminin As Boolean
'********************************************* On ajoute un constructeur à la classe, qui permet d'initialiser tous ses champs
'********************************************* lors de l'initialisation des objets de type Personne
Public Sub New(ByVal nom As String, ByVal prenom As String, ByVal dateNaissance As DateTime, ByVal feminin As Boolean)
Me.m_nom = nom
Me.m_prenom = prenom
Me.m_dateN = dateNaissance
Me.m_feminin = feminin
End Sub
'********************************************** créer des propriétés pour chacun des champs de la classe
'********************************************** elles permettront d'utiliser automatiquement les objets
'********************************************** comme source de données dans Visual Basic 2005 Express
Public Property Nom() As String
Get
Return m_nom
End Get
Set(ByVal value As String)
m_nom = value
End Set
End Property
Public Property Prenom() As String
Get
Return m_prenom
End Get
Set(ByVal value As String)
m_prenom = value
End Set
End Property
Public Property DateDeNaissance() As DateTime
Get
Return m_dateN
End Get
Set(ByVal value As DateTime)
m_dateN = value
End Set
End Property
Public Property Feminin() As Boolean
Get
Return m_feminin
End Get
Set(ByVal value As Boolean)
m_feminin = value
End Set
End Property
'********************************************** On crée deux propriétés supplementaires en lecture seule : NomComplet et Age
'********************************************** La première retourne une chaîne de caractères composée du nom de famille en
'********************************************** majuscule, suivi de son prénom; cette propriété est utile pour l'affichae
'********************************************** des informations relatives aux participants.
Public ReadOnly Property NomComplet() As String
Get
Return Me.m_nom.ToUpper() + "" + Me.m_prenom
End Get
End Property
'********************************************** Cette propriété calcule l'age des individus et est utilisée pour déterminer les
'********************************************** membres de la catégorie "junior"
Public ReadOnly Property Age() As Integer
Get
Return CInt(Today.Subtract(Me.m_dateN).TotalDays / 365.25)
End Get
End Property
'********************************************** On implémente une méthode ComapreTo, puisque l'on va implémenter
'********************************************** l'interface IComparable(Of Personne). Parce que l'on utilise une
'********************************************** interface générique, on n'a pas à se soucier du type du
'********************************************** paramètre passé à la méthode : on a défini dès la compilation
'********************************************** qu'il s'agit d'une Personne. Cette méthode sert à trier par ordre
'********************************************** alphabétique une liste d'instances de la classe Personne
Public Function CompareTo(ByVal obj As Personne) As Integer Implements System.IComparable(Of Personne).CompareTo
Return Me.NomComplet.CompareTo(obj.NomComplet)
End Function
End Class
Conclusion
Il marche très bien. Testé Voilà le lien pour le zip http://www.tuxien.org/Downloads/GestionConcours.rar Car le site ne me laisse pas le mettre je sais pas pk. Mais voilà je le mets sur mon site. By Boogy Man
Historique
- 05 novembre 2007 15:29:28 :
- Voilà le zip
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Base de données pour la gestion des E-mail [ par imad8 ]
Je vous demande cheres DBA de m'envoyer la structure classique d'une base de données capable de gérer les boites au lettres d'un grand nombre d'utilis
BASE DE DONNEES ACCESS [ par reyman ]
J'utilise actuellement dans mon application une base de données ACCESS protégé par un mot de passe.Je manipule donc les données par l'intermédiare d'u
Gestion de base de données Access [ par Boris88 ]
Je suis débutant et je réalise un jeu en VB. Je doit lire, des données dans une table. Celles-ci sont susceptibles d'être modifiées et doivent ecraser
Base de données [ par simofid ]
Le probleme que j ai, c est de manipuler une base de donnees avec des photos: enregitrer des photos dans un champs de base de donnees, supprimer..
Base de données avec access [ par xeresakrom ]
Bonjour,Je suis étudiant et l'on me demande de faire un programme de gestion de vidéo club. Le problème est que je n'ai rien compris dans la gestion d
securite des donnees [ par hourrane ]
hourraneEn faite je viens d'achever une application ( en VB) de traitement de la paie. La base de données est sous forme Access, les etats ont été réa
Gestion plantage [ par kat40 ]
Bonjour à tous,J'ai une application VB avec une base de données ACCESS. Lorsque quelqu'un ouvra l'application un 1 va s'inscrire dans la base de donn
gestion d'un base de données [ par hasen ]
Bonjour,Je vais beintot mettre en place une base de données Access qui sera utilisé par plusieurs personnes. Je voudrais savoir s'il est nécessaire de
base de données gestion de stock [ par romeo77 ]
je souhaite mettre en place une bonne de donnée de gestion de stock.si quelqu'un à un bon point de départ à me proposer.
Base de données ciel gestion (devis factures) [ par latchoumanin ]
Bonjour à tous,Voila mon problème:A l'heure actuel j'ai développé une application qui attaque un fichier client et article d'une logiciel de gestion a
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|