begin process at 2012 02 17 03:51:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > GESTION D'UN CONCOURS DE PÊCHE SANS BASE DE DONNÉES

GESTION D'UN CONCOURS DE PÊCHE SANS BASE DE DONNÉES


 Information sur la source

Note :
Aucune note
Catégorie :Base de Donnees Source .NET ( DotNet ) Classé sous :Base données, base, données, donnees, gestion Niveau :Initié Date de création :02/11/2007 Date de mise à jour :13/11/2007 17:21:13 Vu / téléchargé :8 220 / 686

Auteur : theboogymaster

Ecrire un message privé
Site perso
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 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.ra r

Car le site ne me laisse pas le mettre je sais pas pk.
Mais voilà je le mets sur mon site.



By Boogy Man

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 novembre 2007 15:29:28 :
Voilà le zip

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DE BASE DE DONNÉE ACCESS COMPLÈTE AVEC ORIENTÉ OBJET par ThoT49
Source avec Zip Source avec une capture QUICK_EXP : BASE DE DONNÉES par Exploreur
Source avec Zip Source .NET (Dotnet) GÉRER SA BASE DE DONNÉES ACCESS EN TOUTE SIMPLICITÉ QUELQUE ... par fdiedler2000
Source avec Zip BASE DE DONNÉES EN ADO POUR DÉBUTANT par Exploreur
Source avec Zip Source avec une capture PROGRAMME COMPLET DE GESTION DE BASE DE DONNÉE EXCEL par XGuarden

Commentaires et avis

Commentaire de Willi le 02/11/2007 18:56:56 administrateur CS

Et comment pouvons nous la tester sans zip ni explication pour faire tourner le code fourni ?

Commentaire de yvesyves le 02/11/2007 21:50:20

Gestion d'un concours de pêche? Des fois en quand je regarde les sources des autres je me demande où ils pêchent leurs idées!!
En tout cas le code à l'air bien commenté, dommage qu'on ne puisse pas le testé rapidement.

Commentaire de pluplu le 04/11/2007 09:45:33

J'aurais attendu le 1er avril pour sortir une source comme celle-ci

Commentaire de ManuAntibes le 05/11/2007 08:19:41

Bien jouer ou bonne lecture

Je me disais que j'avais déja vu cette appli avec les poissons par poids et grosseurs.
Peux tu nous donnée la ref du book ou tu as peché ça.

Merci

Commentaire de yvesyves le 05/11/2007 10:51:34

Si les codes déposés sont tirés d'un livre, ca serait bien d'en faire une référence pour le respect de l'auteur. Même chose lorsqu'il sagit d'un programme developpé par une autre personne.

Commentaire de theboogymaster le 05/11/2007 15:22:15

Le livre s'appelle Visual Basic 2005. Le guide du codeur.

j'ai pas pu mettre le zip car le site dit qu'il est trop grans.
mais je vais essayer encore une fois.

et puis pour le auteur de livre sans être mechant, j'ai acheter le livre alors si je veux je lui fais le pup sinon non.c pas pour rien qu'on paye le livre non?

Commentaire de theboogymaster le 05/11/2007 15:34:40

et quand j'ai mit le code j'ai oublié de mentioné.

mais comme c'est moi qui l'ai écrit... ben voilà je vous ai donné aussi le nom du livre.

Vous pouvez mnt le tester en le téléchargant à l'adresse que j'ai mit plus haut sur mon site.

LA VOILA ENCORE UNE FOIS

http://www.tuxien.org/Downloads/GestionConcours.rar

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

base de données gestion parc automobile [ par sadokb ] bonjour , je suis en train de faire une application gestion parc automobile , est ce que je peux trouver un exemple base des données sous oracle ou so Selectionner la source des donnees [ par chefinf ] Bonjour, Je suis entrain de développer une application vb6 Access. J&#8217;ai déclaré la base des données dans mon code, mais lors de l&#8217;exécutio 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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,964 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales