Escolar Documentos
Profissional Documentos
Cultura Documentos
INSTITUT SUPERIEUR
DES
ATELIER PROGRAMMATION
EVENEMENTIELLE
VERSION 2.0
ENSEIGNANTS :
MOHAMED SLITI
HAITHEM MEZNI
MANEL ZOGHLAMI
Fiche Matire
Objectifs gnral
Cet atelier vise faire acqurir lapprenant la capacit de programmer des applications
interface graphique accdant des bases de donnes.
Objectifs Spcifiques
Connatre et manipuler l'environnement de dveloppement Visual Studio/ VB.net
Concevoir une interface graphique en VB.Net.
Programmer une application simple en VB.Net.
Pr-requis
Algorithmique, programmation, base de donnes.
Public cible
Profil :
Spcialits :
Niveau :
Semestre :
2
2
Droulement
Dure :
15 semaines
Volume horaire :
3 heures TP/semaine
Evaluation
Un examen de TP
Expos informel
Tableau
Vido projecteur
Fascicule de TP
TP N 0 Prsentation de
lEnvironnement de Dveloppement
Objectifs :
Volume horaire :
3 heures
Contenu du TP
Dans ce TP, la sance se droule comme suit :
Fentre principale :
partir de cette fentre, ltudiant commence dcouvrir les diffrents composants, leurs
rles et les diffrentes fonctionnalits offertes par loutil Visual Basic 2008 Express.
Ltudiant sera aussi capable de manipuler la barre doutils afin de crer son propre projet
VB. Ltudiant apprendra comment cre ou ouvrir un projet, ajouter des fentres, excuter ou
dboguer un programme, etc.
Boite outils :
Cette fentre est parmi les composants de base qui seront exploits dans les sances de TP
puisquelle permettra ltudiant de manipuler les contrles offerts (boutons de commandes,
zones de texte, etc.).
Dans cette partie, ltudiant sera capable de :
Remarque : lutilisation des prfixes est facultative, mais elle est prfrable pour distinguer
entre les types des diffrents contrles (exemple : dans le cas o deux contrles portent le
mm nom). Voici un des exemples de prfixes :
Fentre Proprits :
partir de cette fentre, ltudiant commence dcouvrir les principales proprits de
quelques composants, et les proprits communes.
Fentre de code :
Dans cette fentre, ltudiant commence crire son premier code simple afin de programmer
les contrles quil a utiliss.
TP N 1 Premire application VB
Objectifs :
Concevoir des interfaces simples en VB.NET.
Dfinir les proprits des objets en VB.NET.
Ecrire un programme minimal en VB.NET.
Compiler et excuter un programme en VB.NET.
Volume horaire :
3 heures
TP N 1 Premire application VB
Exercice 1 :
Lobjectif du de cet exercice est de construire tape par tape un programme VB qui permet
de calculer et afficher la somme, le produit et la division de deux entiers saisis par
lutilisateur.
1. Concevoir linterface VB.
2. Dresser un tableau contenant les contrles, leurs rles et leurs proprits.
3. Programmer le bouton Calculer pour quil effectue la somme, le produit et la division.
Exercice 2:
Nous allons concevoir une application qui permet de permuter deux entiers x et y.
Lapplication devra avoir lapparence suivante :
Correction TP N 1
Exercice 1:
1.
2.
Contrle
Rle
Proprits
Label
Text = Donnez a
Label
Text = Donnez b
Textbox
Zone de saisie de a
Textbox
Zone de saisie de b
Button
Label
Label
Afficher le produit de a et b
Label
Fentre
Fentre de lapplication
Name = txta
Text = vide
Name = txtb
Text = vide
Name = btnCalculer
Text = Calculer
Name = lblSomme
Text = vide
Name = lblProduit
Text = vide
Name = lblDivision
Text = vide
Name = frmCalcul
Text = Calcul
3.
Public Class Form1
Private Sub btnCalcul_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalcul.Click
Dim a, b, s, p As Integer
Dim d As Double
a = txta.Text
b = txtb.Text
s = a + b
p = a * b
d = a / b
lblSomme.Text = "Somme = " & s
lblProduit.Text = "Produit = " & p
lblDivision.Text = "Division = " & d
End Sub
End Class
Exercice 2:
1.
Contrle
Label
Rle
Textbox
Textbox
Zone de saisie de y
Button
Permuter x et y
Label
Proprit
s
Text= Donnez la valeur de x
Text = Donnez la valeur de y
Name = txtX
Text = vide
Name = txtY
Text = vide
Name = btnPermuter
Text = Permuter
2.
Public Class Form1
Private Sub btnPermuter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPermuter.Click
Dim x, y, tmp As Integer
x = txtX.Text
y = txtY.Text
tmp = x
x= y
y = tmp
txtX.Text = x
txty.Text = y
End Sub
End Class
3.
a.
Public Class Form1
Private Sub btnPermuter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPermuter.Click
Dim x, y, tmp As Integer
x = txtX.Text
y = txtY.Text
tmp = x
x= y
y = tmp
lblx.Text = "X = " & x
lbly.Text = "Y = " & y
End Sub
End Class
b.
Public Class Form1
Private Sub btnPermuter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPermuter.Click
Dim x, y, tmp As Integer
x = txtX.Text
y = txtY.Text
tmp = x
x= y
y = tmp
MsgBox(" X = " & x & " Y = " & y)
End Sub
End Class
10
TP N 2 Types de donnes
Objectifs :
Dclarer correctement des constantes et des variables en VB.NET
Connaitre les diffrents types de donnes en VB.NET
Faire la diffrence entre une variable globale et variable locale en VB.NET.
Manipuler les diffrentes fonctions prdfinies pour chaque type de donnes en
VB.NET.
Volume horaire :
6 heures
11
TP N 2 Types de donnes
Exercice 1 :
On veut concevoir une application qui permet dterminer le jour de naissance et calculer lge
dune personne selon les coordonnes entres par lutilisateur. Il sagit de crer un programme
qui permet de raliser les tapes suivantes :
Inciter lutilisateur saisir son nom et son prnom et les stocker dans des variables.
Lui demander sa date de naissance.
Mmoriser les jours de la semaine dans une structure de donnes compose afin de les
utiliser pour dterminer le jour de naissance de lutilisateur.
Calculer lge.
Gnrer le message suivant :
[Nom & Prnom] " Votre jour de naissance est le " [JourNaissance] " et vous avez " [age]
"ans"
1. Donnez linterface de lapplication et dressez le tableau des proprits des contrles
utiliss.
2. Donnez le code ncessaire pour raliser ces tapes.
Exercice 2:
Lobjectif de cet exercice est de crer une application VB qui permet de lire un entier n (de 4
chiffres) et afficher le produit et la somme de ses chiffres. Linterface raliser est la suivante:
12
Correction TP N 2
Exercice 1:
1.
Contrle
Rle
Label
Label
Textbox
Textbox
Label
Textbox
Button
Proprits
Text = Donnez votre
nom :
Text = Donnez votre
prnom :
Name = txtNom
Text = vide
Name = txtPrnom
Text = vide
Text = Donnez votre date
de naissance :
Name = txtDate
Text = vide
Name = btnage
Text = Age
13
2.
Public Class Form1
Private Sub btnage_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnage.Click
Dim nom, prenom, nameJour As String
Dim jour, age As Integer
Dim Dnaissance As Date
Dim T() As String = {"dimanche", "lundi", "mardi", "mercredi", "jeudi",
"vendredi", "samedi"}
nom = txtNom.Text
prenom = txtPrenom.Text
Dnaissance = CDate(txtDate.Text)
jour = Weekday(Dnaissance)
nameJour = T(jour - 1)
age = Year(Now) - Year(Dnaissance)
MsgBox(nom & "
" & prenom & " Votre jour de naissance est le " &
nameJour & " et vous avez " & age & " ans", MsgBoxStyle.Information, "Date de
Naissance")
End Sub
End Class
Exercice 2:
Public Class Form1
Private Sub btnCalculer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalculer.Click
Dim nbr, m, c, d, u, somme, produit As Integer
nbr = txtnbr.Text
m = nbr \ 1000
c = (nbr Mod 1000) \ 100
d = ((nbr Mod 1000) Mod 100) \ 10
u = nbr Mod 10
somme = m + c + d + u
produit = m * d * u * c
lblproduit.Text = produit
lblsomme.Text = somme
End Sub
End Class
14
TP N 3 Structures conditionnelles
Objectifs :
Utiliser les structures de contrles conditionnelles dans un code VB.NET.
Volume horaire :
6 heures
15
TP N 3 Structures conditionnelles
Exercice 1:
Lobjectif de cette application est deffectuer une opration arithmtique selon le type
dopration choisi partir de la liste droulante. Lapplication a lapparence suivante :
1.
Donner, sous forme dun tableau, les diffrents contrles utiliss et leurs proprits.
2.
3.
16
Ecrire la procdure btnrechercher_click() qui permet de calculer et dafficher dans une boite
de dialogue le numro porte-bonheur partir des informations saisies.
Remarque :
La fonction DatePart() : Retourne une partie spcifique de la date spcifie. Elle peut tre le
jour, le mois, etc.
Exemple :
Dim dA As Date= Today()
nJour =DatePart("d", dA) 'Retourne le jour du mois (entre 1 et 31)
nMois =DatePart("m", dA) 'Retourne le mois (entre 1 et 12)
Exercice 3 :
Soit lapplication suivante :
17
1.
Donner, sous forme dun tableau, les diffrents composants graphiques de linterface cidessus et leurs proprits.
2.
3.
4.
Programmer le bouton Retirer priphrique pour retirer dune liste le priphrique dont
le nom est saisi par l'utilisateur.
5.
Programmer le bouton Vider qui permet de vider la liste de priphriques dont le type est
choisie par lutilisateur.
18
Correction TP N 3
Exercice 1:
1.
Contrle
Label
Label
Textbox
Textbox
Label
comboBox
Bouton
Rle
Demander lutilisateur de saisir a
Demander lutilisateur de saisir b
Zone de saisie de a
Zone de saisie de b
Demander lutilisateur de choisir
une opration
Lister les oprations
Dterminer le rsultat selon le type
dopration
Proprits
Text = Donnez a
Text = Donnez b
Name = txta ; Text = vide
Name = txtb ; Text = vide
Text = Choisissez une
Opration :
Name = cmbopration
Name = btncalculer
Text = Calculer
2.
3.
19
Exercice 2:
Public Class Form1
Private Sub cmdrechercher_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdrechercher.Click
Dim d As Date
Dim j, num, m, nb As Integer
If txtdate.Text = "" Then
MsgBox("veuillez saisir correctement votre date de naissance",
MsgBoxStyle.Exclamation, "erreur")
txtdate.Text = ""
Exit Sub
End If
d = CDate(txtdate.Text)
j = DatePart("d", d)
m = DatePart("m", d)
If optcelib.Checked = True Then num = 3
If optmari.Checked = True Then num = 2
If optdivorc.Checked = True Then num = 1
nb = j + m + num
MsgBox("votre numro porte bonheur est:" & nb, MsgBoxStyle.Information, "jeu")
txtdate.Text = ""
End Sub
End Class
Exercice 3:
Public Class Form2
2.
20
3.
4.
5.
21
lsts.Items.Clear()
lblnbs.Text = "pas de priphrique"
Else
lstes.Items.Clear()
lblnbes.Text = "pas de priphrique"
End If
End If
End Sub
End Class
22
TP N 4 Structures itratives
Objectifs :
Utiliser les structures de contrles itratives dans un code VB.NET.
Volume horaire :
6 heures
23
TP N 4 Structures itratives
Exercice 1:
On se propose de crer une application qui permet de dterminer le nombre de mots dans une
phrase. Ajouter les lignes de code ncessaires au bouton de commande.
Exercice 2:
On souhaite concevoir une application qui permet de saisir chaque fois un entier et de
linsrer dans un contrle ListBox. Chaque insertion doit tre contrle : il sagit dinsrer
lentier dans une position bien dtermine pour garder lordre croissant des lments de la
liste.
1. Donner, sous forme dun tableau, les diffrents contrles utiliss et leurs proprits.
24
2. Programmer le bouton Insrer pour quil permet de raliser les tapes suivantes :
-
Insrer le nombre entier dans la zone de liste. Utiliser pour cela la syntaxe
suivante :
NomListBox.Items.Insert(Position dinsertion, texte)
Exercice 3
On dsire crer une application qui permet de grer et consulter les notes des tudiants.
Linterface ci-dessous permet dajouter les notes des tudiants. Elle dispose aussi de trois
boutons doptions permettant lenseignant de filtrer les notes selon plusieurs critres :
25
Correction TP N 4
Exercice 1:
Public Class Form1
Private Sub btnCalculer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCalculer.Click
Dim phr As String
Dim car As Char
Dim nbr_espaces, i As Integer
nbr_espaces = 0
phr = Trim(txtPhrase.Text)
For i = 1 To Len(phr)
car = Mid(phr, i, 1)
If car = " " Then
nbr_espaces = nbr_espaces + 1
End If
Next
MsgBox("Cette phrase contient " & nbr_espaces + 1 & " mot(s)",
MsgBoxStyle.Information, "Nombre de mots")
End Sub
End Class
Exercice 2:
6.
Contrle
Label
TextBox
ListBox
Bouton
Proprits
Text = Donnez lentier
insrer
Name = txta ; Text = vide
Name = lstNombres
Name = btninsrer
Text = Insrer
7.
Public Class frminsertion
Private Sub btninsrer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btninsrer.Click
If Not IsNumeric(txtNombre.Text) Or txtNombre.Text = " " Or
CInt(txtNombre.Text) Mod 1 <> 0 Then
MsgBox("veuillez saisir un entier", MsgBoxStyle.Exclamation, "Insertion
controle")
txtNombre.Text = " "
txtNombre.Focus()
Exit Sub
End If
Dim NBR, POS, NbrList As Integer
NBR = txtNombre.Text
26
NbrList = lstNombres.Items.Count
POS = 0
Do While POS <= NbrList - 1
If NBR < lstNombres.Items.Item(POS) Then
Exit Do
Else
POS = POS + 1
End If
Loop
lstNombres.Items.Insert(POS, NBR)
txtNombre.Text = " "
txtNombre.Focus()
End Sub
End Class
Exercice 3
1.
Dim TabNotes(30) As Double
2.
Private Sub cmdAjouter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdAjouter.Click
If Not IsNumeric(txtNote.Text) Or Val(txtNote.Text) < 0 Or
Val(txtNote.Text)
> 20 Then
MsgBox("Note incorrecte")
Exit Sub
End If
nbNotes = nbNotes + 1
TabNotes(nbNotes - 1) = Val(txtNote.Text)
lstNotes.Items.Add(txtNote.Text)
txtNote.Clear()
End Sub
3.
Private Sub optSup10_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles optSup10.CheckedChanged
lstNotes.Items.Clear()
For i = 0 To nbNotes - 1
If TabNotes(i) >= 10 Then lstNotes.Items.Add(TabNotes(i))
Next
End Sub
27
Objectifs :
Utiliser SGBD Access 2007 pour accder aux donnes en VB.NET.
Utiliser SQL pour la slection et la mise jour des donnes dans un programme
VB.NET.
Assimiler les deux modes daccs aux bases de donnes : Mode connect et Mode
dconnect.
Volume horaire :
12 heures
28
dans
la
base
Film.mdb
contenant
la
table
Donnes sont
suivante:
film
(titre,Genre,Anne,Budget).
Linterface de lapplication est la suivante :
1.
2.
3.
29
dvelopper
une application
30
Correction TP N 5
Partie 1 : Accs au donnes en mode connect
'Il faut importer les NameSpaces ncessaires
Imports System.Data.OleDb
Public Class frmGestionFilm
2.
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim rd As OleDbDataReader
3.
Private Sub frmGestionFilm_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Il faut crer un objet connection
'Il faut donner les paramtres Provider= et Data source=
'Dans le cas d'une base Access le provider (le moteur
'utiliser est le moteur OLEDB Jet 4.
cn = New OleDbConnection("provider=microsoft.jet.oleDb.4.0; data
source=C:\Users\hp\Desktop\qqqqq\1er niveau\cours vb\BDfilm1.mdb")
'Il faut ouvrir la connexion:
cn.Open()
'Il faut crer un objet Command:
cmd = cn.CreateCommand()
'Inisialisation du ComboBox:
cmbgenre.Items.Add("Action")
cmbgenre.Items.Add("Comdie")
cmbgenre.Items.Add("Drame")
cmbgenre.Items.Add("Horreur")
cmbgenre.Items.Add("Science Fiction")
cmbgenre.SelectedIndex = -1
End Sub
5.
Private Sub cmdajouter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdajouter.Click
cmd.CommandText = "insert into film values('" & Txttitre.Text & "','" &
cmbgenre.SelectedItem.ToString & "','" & txtanne.Text & "'," & txtbudget.Text
& ")"
Dim Res As Integer = cmd.ExecuteNonQuery()
If (Res = 0) Then
MsgBox("Echec d'ajout", MsgBoxStyle.Information, "Ajouter film")
Else
MsgBox(" film ajout avec succs", MsgBoxStyle.Information, "Ajouter
film")
End If
Call initialiser()
End Sub
31
32
33
Call Initialiser()
End Sub
Private Sub cmdModifier_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdModifier.Click
'Extraire l'enregistrement courant
FilmDataRow = FilmDataSet.Tables("Film").Rows(numFilm)
'Modifier les valeurs des champs en rcuprant le contenu
FilmDataRow("Titre") = txtTitre.Text
FilmDataRow("Gentre") = cmbGenre.SelectedItem.ToString
FilmDataRow("Anne") = Int32.Parse(txtAnne.Text)
FilmDataRow("Dure") = Int32.Parse(txtDure.Text)
FilmDataRow("Budget") = Double.Parse(txtBudget.Text)
'Pour modifier les valeurs changes dans le DataAdapter
CmdBuilder = New OleDbCommandBuilder(FilmDataAdapter)
'Mise jour
FilmDataAdapter.Update(FilmDataSet, "Film")
'On vide le DataSet et on le 'recharge' de nouveau.
FilmDataSet.Clear()
FilmDataAdapter.Fill(FilmDataSet, "Film")
FilmDataTable = FilmDataSet.Tables("Film")
MsgBox("Film modifi.", MsgBoxStyle.Information, "Films")
Call Initialiser()
cmdModifier.Enabled = False
cmdSupprimer.Enabled = False
End Sub
Private Sub Initialiser()
txtTitre.Clear()
cmbGenre.SelectedIndex = -1
txtAnne.Clear()
txtDure.Clear()
txtBudget.Clear()
txtTitre.Focus()
End Sub
Private Sub cmdSupprimer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdSupprimer.Click
FilmDataSet.Tables("Film").Rows(numFilm).Delete()
CmdBuilder = New OleDbCommandBuilder(FilmDataAdapter)
FilmDataAdapter.Update(FilmDataSet, "Film")
FilmDataSet.Clear()
FilmDataAdapter.Fill(FilmDataSet, "Film")
FilmDataTable = FilmDataSet.Tables("Film")
MsgBox("Film supprim.", MsgBoxStyle.Information, "Films")
Call Initialiser()
cmdModifier.Enabled = False
cmdSupprimer.Enabled = False
End Sub
34
Exit For
End If
Next
If i < FilmDataTable.Rows.Count Then
txtAnne.Text = FilmDataTable.Rows(numFilm).Item("Anne")
cmbGenre.SelectedItem = FilmDataTable.Rows(numFilm).Item("Gentre")
txtDure.Text = FilmDataTable.Rows(numFilm).Item("Dure")
txtBudget.Text = FilmDataTable.Rows(numFilm).Item("Budget")
cmdModifier.Enabled = True
cmdSupprimer.Enabled = True
Else
MsgBox("Film inexistant.", MsgBoxStyle.Exclamation, "Films")
End If
Exit Sub
End If
If Touche = Keys.Escape Then
Call Initialiser()
cmdModifier.Enabled = False
cmdSupprimer.Enabled = False
End If
End Sub
End Class
35
Exercices supplmentaires
36
Exercice 1
Linterface ci-dessous permet de rsoudre une quation de second degr: f(x)=0, sachant que
f(x)=ax+bx+c et tels que a, b et c sont des entiers, avec a non nul.
Si =0 alors x= -b/2a
Exercice 2
Linterface ci-dessous permet de grer les tudiants inscrits un ensemble de formations.
4
5
1
8
2
7
3
37
1. Donner, sous forme dun tableau, les diffrents composants graphiques spcifis par les
flches (numrots de 1 8) et
nommage.
Composant
Numro
Proprits
Type
1
2
..
Exercice 3
1. Donner une boucle en VB.NET permettant de demander un nombre infrieur 10 jusqu'
ce que l'utilisateur saisisse la bonne valeur.
2. Donner le code VB.NET associ au clique sur le bouton "Connexion" et permettant
d'ouvrir une autre fentre nomme "form2" si le mot de passe et l'identifiant sont gaux
au mot "iset".
38
3. Donnez au moins une mthode pour que le mot de passe saisi par un utilisateur saffiche
sous forme dtoiles (*).
Exercice 4
Linterface ci-dessous permet au bibliothcaire de grer les emprunts effectus par les
tudiants de lISET de Jendouba. Les donnes demprunts sont enregistres dans la base
Biblio.mdb contenant les tables suivantes :
Etudiant (CIN, NCE, Nom, Prnom, Adresse, CodeGroupe)
Livre (ISBN, CodeL, Titre, Anne, Editeur, nbExemplaires)
Emprunt (NCE, CodeL, DateEmprunt, DateRetour)
39
Le bouton Disponibilit permet (aprs avoir saisi le code du livre) de vrifier si le livre
emprunter est disponible. Si le nombre dexemplaires disponibles est diffrent de 0,
le bouton Enregistrer emprunt sera activ pour enregistrer lopration.
Le bouton Enregistrer emprunt permet denregistrer lopration demprunt et de
mettre jour le nombre dexemplaires disponibles.
Le bouton Rendre livre permet (aprs avoir saisi le numro de la carte dtudiant et le
code du livre) de rcuprer un livre dj emprunt (c'est--dire ajouter la date de
retour) et de mettre jour le nombre dexemplaires disponibles.
Questions :
1. Donner les diffrents composants de cette interface et citer leurs proprits.
2. Dclarer la variable de connexion Cn et la variable de commande Cmd.
3. Ecrire la procdure frmGestionEmprunts_Load qui permet, au dmarrage de
lapplication, de se connecter la base de donnes Biblio.mdb et dinitialiser
lobjet Cmd.
4. Programmer les diffrents boutons de linterface.
Remarque : Utiliser les objets OleDbCommand et OleDbDataReader pour manipuler la base
de donnes Biblio.mdb .
40