Auteur Auteur

EXERCICES RESOLUS EN VISUAL BASIC

EXERCICES RESOLUS EN VISUAL BASIC

EXERCICE 35

EXERCICE 35

Le calcul du montant à payer par un malade pour une intervention chirurgicale dans une clinique spécialisée tient compte du cout d’intervention, du cout du matériel, des frais d’anesthésie, de la catégorie du malade et des frais d’hospitalisation. Le cout d’intervention est fonction du type de chirurgie et s’évalue suivant le tableau ci-après :

Type de chirurgies Coût d’intervention (en $)
Chirurgie classique 200
Chirurgie plastique 600
Greffe de tissu 650
Microchirurgie 800
Transplantation d’organe 1000/Organe

Le cout d’intervention pour transplantation tient par ailleurs compte du nombre d’organes.

Une réduction sur le cout d’intervention sur le cout d’intervention est accordée uniquement aux malades des catégories déterminées dans le tableau ci-après.

Catégorie de malades Réduction (en %)
Ayant droit 50
Chômeur 40

Les frais d’hospitalisation dépendent de nombre de jours et se calculent comme suit : de 0 à 14 jours, les frais journaliers d’hospitalisation sont fixés à 2$ et à partir du 15e jour, ces frais journaliers passent à 1.5$.

Proposez un programme en Visual basic.Net (Interface et codes) qui permette de calculer et d’afficher le montant à payer pour un malade quelconque.

Attention : L’utilisateur sélectionnera dans des ListBox la catégorie et le type de chirurgie. Après sélection du type de chirurgie, le cout d’intervention correspondant apparaitra automatiquement dans la zone de texte associée qui est en lecture seule. Si le type de chirurgie est la transplantation d’organes, l’étiquette nombre d’organes sera activée ainsi que sa zone de texte pour autoriser la lecture d’une valeur. Le cout matériel et le nombre de jours d’hospitalisation peuvent être saisis ou sélectionnés à travers des ComboBox correspondants.

Après un clic sur le bouton « Calcul », le programme calculera et affichera le montant à payer ainsi que les autres montants (réduction, frais d’hospitalisation).

Solution

Solution

exercices résolus en VB


Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ListBox1.Items.Add("Chirurgie classique")
        ListBox1.Items.Add("Chirurgie plastique")
        ListBox1.Items.Add("Greffe de tissu")
        ListBox1.Items.Add("Microchirurgie")
        ListBox1.Items.Add("Transplantation d'organe")
        ListBox2.Items.Add("Ayant droit")
        ListBox2.Items.Add("Chomeur")
        ListBox2.Items.Add("Autres")
        TxtCoutInter.ReadOnly = True
        Label_nbreOrgane.Enabled = False
        TxtnbreOrgane.Enabled = False
        TxtNP.ReadOnly = True
        TxtReduction.ReadOnly = True
        TxtFraisHosp.ReadOnly = True
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        If ListBox1.SelectedItem = "Chirurgie classique" Then
            TxtCoutInter.Text = 200
        ElseIf ListBox1.SelectedItem = "Chirurgie plastique" Then
            TxtCoutInter.Text = 600
        ElseIf ListBox1.SelectedItem = "Greffe de tissu" Then
            TxtCoutInter.Text = 650
        ElseIf ListBox1.SelectedItem = "Microchirurgie" Then
            TxtCoutInter.Text = 800
        ElseIf ListBox1.SelectedItem = "Transplantation d'organe" Then
            Label_nbreOrgane.Enabled = True
            TxtnbreOrgane.Enabled = True
        End If
    End Sub

    Private Sub TxtnbreOrgane_TextChanged(sender As Object, e As EventArgs) Handles TxtnbreOrgane.TextChanged
        Dim Nbre As Integer
        Nbre = CInt(TxtnbreOrgane.Text)
        TxtCoutInter.Text = (1000 * Nbre).ToString
    End Sub

    Private Sub BtnCalcul_Click(sender As Object, e As EventArgs) Handles BtnCalcul.Click
        Dim coutInter, coutMat, fraisAnes, fraisHosp, nbre, red, np As Integer
        Dim cat As String
        'recuperation des informations 
        coutInter = Val(TxtCoutInter.Text)
        coutMat = Val(ComboCoutMat.Text)
        fraisAnes = Val(TxtFraisAnest.Text)
        nbre = Val(ComboNbreJrs.Text)
        cat = ListBox2.SelectedItem
        If ListBox1.SelectedItem = "" Or ListBox2.SelectedItem = "" Or
ComboCoutMat.Text = "" Or ComboNbreJrs.Text = "" Or TxtFraisAnest.Text = "" Then
            Console.WriteLine("Veuillez remplir tous les champs")
        Else
            'calcul de frais d'hospitalisation 
            Select Case (nbre)
                Case 0 To 14
                    fraisHosp = nbre * 2
                Case Is > 14
                    fraisHosp = 14 * 2 + (nbre - 14) * 1.5
                Case Else
                    MsgBox("Nombre de jours incorrects")
            End Select
            TxtFraisHosp.Text = fraisHosp.ToString
            'calcul de la reduction 
            If cat = "Ayant droit" Then
                red = coutInter * 0.5
            ElseIf cat = "Chomeur" Then
                red = coutInter * 0.4
            Else
                red = 0
            End If
            TxtReduction.Text = red.ToString
            np = coutInter + coutMat + fraisAnes + fraisHosp - red
            TxtNP.Text = np.ToString
        End If
    End Sub

    Private Sub BtnAnnuler_Click(sender As Object, e As EventArgs) Handles BtnAnnuler.Click
        ListBox1.SelectedIndex = -1
        ListBox2.SelectedIndex = -1
        ComboCoutMat.Text = ""
        ComboNbreJrs.Text = ""
        TxtFraisAnest.Text = ""
        TxtCoutInter.Text = ""
        TxtNP.Text = ""
        TxtReduction.Text = ""
        TxtFraisHosp.Text = ""
        TxtnbreOrgane.Text = ""
    End Sub

    Private Sub BtnQuitter_Click(sender As Object, e As EventArgs) Handles BtnQuitter.Click
        End
    End Sub
End Class

EXERCICE 36

EXERCICE 36

Voici l’interface :

exercices résolus en VB

Un magasin de la place organise le payement de ses employés à l’aide des rubriques : Salaire de base (Sb) et prime familiale (Pf). Les salaires de base exprimés en unité monétaire sont déterminés à partir des grades suivant le tableau ci-après :

Grade Salaire de base
Gérant 20
Comptable 18
Caissier 16
Facturier 15
Livreur 13
Vendeur 11

La prime familiale est composée de deux parties : de la prime mariage (pm) et de la prime enfant (pe). La prime mariage est octroyée à tous les agents qui ne sont pas célibataires (c.à.d. mariés, divorcés ou veufs). Elle vaut 2% du salaire de base de l’agent. Ainsi, un agent de grade Facturier marié obtient une prime mariage de 15*2%=0.30 tandis qu’un agent de grade gérant célibataire n’obtient aucune prime mariage.

La prime enfant est calculée en fonction du nombre d’enfants vivants de moins de 19 ans. Elle est calculée de la manière suivante : jusqu’à 5 enfants, chacun génère une prime de 0.05, à partir du 6e enfant la prime devient 0.02 par enfant. Enfin, pas de prime à partir du 11e enfant.

On vous demande de gérer le bouton « Calculer» pour calculer la prime mariage, la prime enfant et le salaire net, le bouton « Initialiser» pour réinitialiser les objets et « Quitter » pour quitter le programme.


Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboGrade.Items.Add("Gerant")
        ComboGrade.Items.Add("Comptable")
        ComboGrade.Items.Add("Caissier")
        ComboGrade.Items.Add("Facturier")
        ComboGrade.Items.Add("Livreur")
        ComboGrade.Items.Add("Vendeur")
        ComboEtat.Items.Add("Marié(e)")
        ComboEtat.Items.Add("Celibataire")
        ComboEtat.Items.Add("veuf(ve)")
        ComboEtat.Items.Add("Divorcé(e)")
        TxtPe.ReadOnly = True
        TxtPm.ReadOnly = True
        TxtSn.ReadOnly = True
        TextSB.ReadOnly = True
    End Sub

    Private Sub ComboGrade_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboGrade.SelectedIndexChanged
        Dim grade = ComboGrade.SelectedItem
        If grade = "Gerant" Then
            TextSB.Text = 20
        ElseIf grade = "Comptable" Then
            TextSB.Text = 18
        ElseIf grade = "Caissier" Then
            TextSB.Text = 16
        ElseIf grade = "Facturier" Then
            TextSB.Text = 15
        ElseIf grade = "Livreur" Then
            TextSB.Text = 13
        ElseIf grade = "Vendeur" Then
            TextSB.Text = 11
        End If
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sn, sb, pe, pm, nef, pf As Single
        Dim etat As String
        'récuperation des informations 
        nef = Val(Txtnbre.Text)
        sb = Val(TextSB.Text)
        etat = ComboEtat.Text
        If etat = "Celibataire" Then
            pm = 0
        Else
            pm = 0.02 * sb
        End If
        Select Case (nef)
            Case 0 To 5
                pe = nef * 0.05
            Case 6 To 10
                pe = 5 * 0.05 + (nef - 5) * 0.02
            Case Is > 10
                pe = 5 * 0.05 + 5 * 0.02
            Case Else
                MsgBox("Nombre d'enfants incorrect", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "ERREUR  ")
        End Select
        pf = pe + pm
        sn = sb + pf
        TxtPe.Text = pe.ToString
        TxtPm.Text = pm.ToString
        TxtSn.Text = sn.ToString
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Txtnbre.Text = ""
        TxtPe.Text = ""
        TxtPm.Text = ""
        Txtnbre.Text = ""
        ComboEtat.Text = ""
        ComboGrade.Text = ""
        TextSB.Text = ""
        TxtSn.Text = ""
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        End
    End Sub
End Class

EXERCICE 37

EXERCICE 37

Soit l’interface utilisateur ci-après sur la facturation de la location véhicule :

exercices résolus en VB

Proposer des codes associés aux 3 boutons de commande, tels qu’en cliquant sur « Prix Net», le programme calcule et affiche le prix brut (sans réduction en fonction du prix horaire et du nombre d’heures), la réduction (15% du prix brut pour seulement la catégorie « Privilégié» et pas pour « autres» et le prix net (tenant compte de la réduction), en cliquant sur « Annuler», le programme est réinitialisé et en cliquant sur « Fermer», le programme s’arrête. (Indication : nommer les objets concernés par les initiales de leurs noms).

Solution

Solution


Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboCat.Items.Add("Privilegié")
        ComboCat.Items.Add("Autres")
        ComboNbre.Items.Add("1")
        ComboNbre.Items.Add("10")
        ComboNbre.Items.Add("14")
        ComboNbre.Items.Add("12")
        ComboNbre.Items.Add("31")
        ComboNbre.Items.Add("11")
        ComboNbre.Items.Add("5")
        ComboNbre.Items.Add("6")
        ComboNbre.Items.Add("3")
        ComboNbre.Items.Add("7")
        TxtNp.ReadOnly = True
        TxtPb.ReadOnly = True
        TxtRed.ReadOnly = True
    End Sub

    Private Sub BtnPn_Click(sender As Object, e As EventArgs) Handles BtnPn.Click
        Dim cat As String
        Dim ph, nbre, prixBrut As Integer
        Dim reduction, np As Single
        'recuperation des informations 
        cat = ComboCat.Text
        nbre = Val(ComboNbre.Text)
        ph = Val(TxtPrixH.Text)
        prixBrut = nbre * ph
        TxtPb.Text = prixBrut.ToString
        If cat = "Privilegié" Then
            reduction = prixBrut * 0.15
        Else
            reduction = 0
        End If
        TxtRed.Text = reduction.ToString
        np = prixBrut - reduction
        TxtNp.Text = np.ToString
    End Sub

    Private Sub BtnAnnuler_Click(sender As Object, e As EventArgs) Handles BtnAnnuler.Click
        TxtNp.Text = ""
        TxtPb.Text = ""
        TxtPrixH.Text = ""
        TxtRed.Text = ""
        ComboCat.Text = ""
        ComboNbre.Text = ""
    End Sub

    Private Sub BtnFermer_Click(sender As Object, e As EventArgs) Handles BtnFermer.Click
        Environment.Exit(0)
    End Sub
End Class

pdf Retrouvez ce cours en version pdf
Télécharger
EXERCICES PRECEDENTS
EXERCICES SUIVANTS