Problème avec le windows form (visual studio basic)

kingston2 Messages postés 145 Statut Membre -  
 Utilisateur anonyme -
Bonjour, je dois faire l'exercice suivant :

Une entreprise de distribution a décidé de donner des primes à chacun de ses employés selon le chiffre d'affaire qu'il a réalisé. Ces primes sont distribuées selon les critères suivants:

Si ventes < 2000$ prime=0%

Si 2000$<=ventes <5000$ prime=2.5 %

Si 5000$ <= ventes < 8000$ prime = 4.5 %

Si ventes >= 8000$ prime=6.2 %

Écrivez une application Windows qui nous permet de calculer ces primes.

Le problème est que je n'ai pas d'idée comment faire . Je maîtrise la console , mais pas du tout la windows form.. Pouvez-vous m'aider , c'est plutôt urgent

Merci beaucoup

7 réponses

  1. Utilisateur anonyme
     
    Bonjour, et bien c'est simple.

    Tu démarres un projet windows form.
    Sur le formulaire tu déposes:
    -un contrôle qui permettra la saisie du chiffre (textbox par exemple)
    -un contrôle qui permettra l'affichage du résultat (label par exemple)
    -et un bouton pour lancer le calcul.

    Tu double cliques sur le bouton, VS va basculer du côté code du formulaire, dans la méthode associée à l'événement par défaut du bouton, soit le simple click.
    Là tu tapes presque le même code que tu aurais écris en console. La différence est qu'à la place de readline, il faut récupérer le contenu du contrôle de saisie (propriété Text) et qu'à la place de writeline il faut affecter le contenu du contrôle d'affichage.
    0
  2. kingston2 Messages postés 145 Statut Membre
     
    salut, je n'ai pas compris ce qu'est le contenu du controle d 'affichage .
    0
    1. Utilisateur anonyme
       
      Par exemple avec un label
      double monResultat = 27.3;
      MonLabel.Text = monResulat.ToString();
      

      0
  3. kingston2 Messages postés 145 Statut Membre
     
    je voudrais savoir où je dois poser mes conditions
    0
    1. Utilisateur anonyme
       
      Comme je l'ai de j'ai écrite

      Tu double cliques sur le bouton, VS va basculer du côté code du formulaire, dans la méthode associée à l'événement par défaut du bouton, soit le simple click.
      Là tu tapes presque le même code que tu aurais écris en console. La différence est qu'à la place de readline, il faut récupérer le contenu du contrôle de saisie (propriété Text) et qu'à la place de writeline il faut affecter le contenu du contrôle d'affichage.
      0
    2. kingston2 Messages postés 145 Statut Membre
       
      je suis complétement paumé . voici ce que j'ai fait

      Public Class Form1

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      Dim dblventes As Double
      Dim dblresultat As Double
      Dim dblprime As Double
      dblventes = txtventes.Text
      End Sub


      Private Sub txtresultat_Click(sender As Object, e As EventArgs) Handles txtresultat.Click

      MessageBox.Show("votre prime est de :" & txtresultat.Text)
      End Sub<code basic>
      </code>
      0
  4. Utilisateur anonyme
     
    Ha donc c'est du VB.net....

    Puisque tu maitrise le mode console, je ne reviens pas sur les événements.

    L'événement load se produit au moment du chargement du formulaire, il n'est pas encore affiché.
    C'est à ce moment la que l'on peux initialiser l'application (connexion à la base de données, valeurs par défaut des contrôles etc...)
    Ce n'est donc pas là que tu dois mettre tes calculs.

    Tu as mis ton messagebox dans la méthode associée à l'événement click du textbox, cliquer sur un textbox pour voir afficher un message n'est pas très naturel.

    Je t'ai dit de poser un bouton sur le formulaire et d'y faire tous tes calculs (pour une première appli ça suffit).
    0
    1. kingston2 Messages postés 145 Statut Membre
       
      ah d'accord ! je fais tout sur le bouton ? même les declarations de variables ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Oui, on va dire que ton utilisateur est assez bien câblé pour remplir les données avant de lancer les calculs, en cliquant sur le bouton.

    0
  7. kingston2 Messages postés 145 Statut Membre
     
    Public Class Form1

    Private Sub btprime_Click(sender As Object, e As EventArgs) Handles btprime.Click
    Dim dblventes As Double
    Dim dblprime As Double
    dblventes = txtventes.Text
    Select Case dblventes
    Case Is < 2000
    dblprime = 0
    Case Is >= 2000
    dblprime = 0.025
    Case Is >= 5000
    dblprime = 0.045
    Case Is >= 8000
    dblprime = 0.062

    End Select
    MessageBox.Show("votre prime est de :" & dblventes * dblprime)
    End Sub
    End Class


    voici ce que j ai trouvé . ca marche mais je voudrais savoir si j'ai bien écrit

    EDIT : voici mon code finale après réflexion:

    Public Class Form1

    Private Sub btprime_Click(sender As Object, e As EventArgs) Handles btprime.Click
    Dim dblventes As Double
    Dim dblprime As Double
    dblventes = txtventes.Text

    If dblventes < 2000 Then
    dblprime = dblventes * 0
    ElseIf dblventes >= 2000 And dblventes < 5000 Then
    dblprime = dblventes * 0.025
    ElseIf dblventes >= 5000 And dblventes < 8000 Then
    dblprime = dblventes * 0.045
    Else
    dblprime = dblventes * 0.062

    End If

    MessageBox.Show("votre montant prime ajoutée est de :" & dblprime + dblventes)
    End Sub
    End Class
    0
    1. Utilisateur anonyme
       
      C'est pas mal, il y a un petit problème.

      Mets un points d'arrêt au début, lance le programme et saisit 5500, ensuite exécute pas à pas.

      En observant l'ordre d'exécution des instructions tu devrais voir le problème et la solution.


      --
      0
    2. kingston2 Messages postés 145 Statut Membre
       
      est ce que mon nouveau code est approprié ?
      0
    3. Utilisateur anonyme
       
      Non le select case est mieux, dans le sens ou c'est plus lisible et plus facile à maintenir.

      Il faut juste faire attention à l'ordre dans lequel sont écrit les "case", le programme les exécute dans cet ordre, donc si ta valeur est 5500 et que >2000 est écrit avant >5000, alors il choisira > 2000.

      Dans cet ordre, plus de problèmes:
              Select Case dblventes
                  Case Is >= 8000
                      dblprime = 0.062
                  Case Is >= 5000
                      dblprime = 0.045
                  Case Is >= 2000
                      dblprime = 0.025
                  Case Is < 2000
                      dblprime = 0
      
              End Select
      
      0
    4. kingston2 Messages postés 145 Statut Membre
       
      d'accord je vois , merci beaucoup de votre patience !
      0
  8. Utilisateur anonyme
     
    De rien, je suis patient si en face la personne essaye et c'est ton cas.

    Si ta question est résolue, merci de la signaler comme telle avec le lien sous le titre de la discussion.

    --
    0