Vous êtes sur la page 1sur 10

EX 1 : 1ère APPLICATION AVEC VISUAL STUDIO (C#)

OBJECTIFS :

Prise en main de l'environnement de programmation Visual Studio.

A. Création et lancement d'un projet:

La version .net de Visual Studio fonctionne suivant les notions de "Projet" et


"Solution", avec le langage C# :
‒ Projet: regroupe des informations techniques relatives à la programmation. Il
est représenté par le fichier "Nomprojet.csproj" dans le quel sera stockés le
nom des fichiers présents, les composants et les librairies utilisés, etc.
‒ Solution : c’est l'environnement de développement du programmeur, c’est un
espace permettant de regrouper un ou plusieurs projets dont les détails sont
sauvegardés dans le fichier "NomSolution.sln".

Lancer: Visual Studio


Ensuite, lancer un nouveau projet : Fichier -> Nouveau -> Projet. Vous arrivez
alors devant la boîte de dialogue suivante:

3
1. Types de Projets : Regroupe l’ensemble des projets (classés par langage de
programmation) disponibles sous Visual Studio. Choisissez Visual C#.
2. Modèles : ou bien groupes de projets pour un types de projets (pour le langage
choisit). Choisissez Application Windows Forms
3. C’est le nom du projet, changez-le avec Projet1.

1
T

Appuyez sur OK pour lancer le projet. L’interface générale se présente sous cette
forme :

1
3 2

4
L’interface de développement de Visual Studio en dehors de ses menus et barres
d’outils, possède quatre zones :
1. C’est l’explorateur de solution, Elle regroupe tout ce qui fait l’ensemble du
programme c’est-à-dire le(s) projet(s), les Contrôles Utilisateurs, Les
Ressources, Les Classes, les Bases de Données, les Feuilles (Form), les
Fichiers de Configuration, …
2. C’est la zone d’affichage des fichiers ouverts : sources, aide, etc …
3. C'est la boite à outils, ou se trouve les différents composants graphiques à
mettre dans les interfaces.
4. C’est la sortie, fenêtre d’affichage des résultats de compilation, de débogage et
de recherches.

Enregistrer le projet, vérifier l'emplacement (par défaut la solution porte le même


nom du projet et le répertoire sera créer suivant le nom de la solution)

2
B. Première Application:

Contrôles nécessaires :

Type du contrôle Nom de la propriété Valeur de la propriété


Form Name FrmCalculatrice
Text Calculatrice
TextBox Name TxtV1
TextAlign Centre
TextBox Name TxtV2
TextAlign Centre
Label Name LblV1
Text Valeur 1:
Font Gras , taille 10
Label Name LblV2
Text Valeur 2:
Font Gras , taille 10
Button Name BtnPlus
Text +
Button Name BtnMoins
Text -
Button Name BtnFois
Text *
Button Name BtnSur
Text /
Button Name BtnMod
Text %

3
Button Name BtnCE
Text CE
Button Name BtnQuitter
Text Quitter
Label Name LblResultat
Text Resultat:
Font Gras , taille 10
Label Name LblRes
Text
Font Gras , taille 14
BorderStyle FixedSingle
Autosize False
GroupBox Name GrBCmd
Text Commandes
Le code relatif aux différentes opérations:

private void BtnPlus_Click(object sender, EventArgs e)


{
float s;
s = float.Parse(TxtV1.Text) + float.Parse(TxtV2.Text);
LblRes.Text = s.ToString();
}
private void BtnMoins_Click(object sender, EventArgs e)
{
LblRes.Text=(float.Parse(TxtV1.Text)-float.Parse(TxtV2.Text)).ToString();
}
private void BtnFois_Click(object sender, EventArgs e)
{
....
}
......
private void BtnCe_Click(object sender, EventArgs e)
{
TxtV1.Text = "0";
TxtV2.Text = "0";
LblRes.Text = "0";
}

private void BtnQuitter_Click(object sender, EventArgs e)


{
this.Close();
}
Amélioration avec MessageBox:

Contrôle des champs avec TryParse:


float s,x1,x2 ;
if (float.TryParse(TxtV1.Text, out x1) && float.TryParse(TxtV2.Text, out x2))
{
s = x1 + x2;
LblRes.Text = s.ToString();
}
else
MessageBox.Show("Il faut donner deux réels !", "Erreur",
MessageBoxButtons.OK, MessageBoxIcon.Error);

4
Message de confirmation:
DialogResult x = MessageBox.Show("Voulez vous quitter?",
"Confirmation", MessageBoxButtons.YesNo);
if (x == DialogResult.Yes)
Application.Exit();

C. Autres interfaces:

Avec un click droit sur le nom du projet,

Ajouter la forme frmApropos suivante:

Ajouter la forme frmAccueil suivante:

5
Forme frmAccueil :
private void BtnCalcul_Click(object sender, EventArgs e)
{
frmCalculatrice cl = new frmCalculatrice();
cl.Show();
this.Hide();
}

private void BtnApropos_Click(object sender, EventArgs e)


{
frmApropos ap = new frmApropos();
ap.ShowDialog();
}
private void BtnQuitter_Click(object sender, EventArgs e)
{
Application.Exit();
}
Forme frmCalculatrice:
Ajouter un bouton BtnRetour permettant de retourner à la forme d'accueil:
private void BTretour_Click(object sender, EventArgs e)
{
frmAccueil acc = new frmAccueil ();
acc.Show();
this.Close();
}
Changement de la forme de démarrage:
A partir de l'explorateur de solutions, ouvrir le fichier Program.cs

Dans le code changer la forme de démarrage par celle frmAccueil:

6
EX 2 : STRUCTURES DE CONTROLE
OBJECTIFS :

Manipulation des tableaux et structures de contrôle avec C# et découverte d'autres


contrôles et évènements.

I-Interface d'accueil:
Placer dans l'interface frmAccueil suivante:

BtnFactoriel

BtnTab

BtnJouer

BtnQuitter

II-Factoriel:
Placer dans l'interface frmFactoriel suivante:

BtnCalc, permet
de vérifier l'entier
TxtN: pour lire et d'affecter dans
un entier >0 LblRes la valeur
du factoriel

LblRes

BtnBack BtnQuitter
retourner à arrêter
l'interface l'application
d'accueil

7
III-Les tableaux:
Développez une application permettant la saisie et le stockage des notes d’un
ensemble de 5 élèves. A partir de ces notes, on calcule la moyenne de la classe, son
écart-type, le nombre des notes < 10 et le nombre des notes >= 10.
2

∑ ( x _ x)
N N
Le calcul de la moyenne: x = ∑ xi /N. Le calcul de l’écart-type est : σ x = i
i =1 i =1

TxtN

BtnEnreg:
permet de stocker
LblRes les valeurs saisies
dans un tableau T
et les afficher
LblT: dans LblT
initialement
vide LblMoy
LblEcart BtnCalc: permet de
calculer et afficher
les différents
calculs à partir du
tableau T

LblInf BtnQ: permet de


retourner à
LblSup l'interface d'accueil
Indication sur le code:
Déclaration globale:
const int n = 5;
float[] T = new float[n];
int i = 0;

Bouton enrgistrer
float val;
if (float.TryParse(.....) && val >= 0 && ....)
{
lblRes.Text = "Entrez la note de l'élève N°: " + (i + 2).ToString();
lblT.Text = lblT.Text + txtn.Text + "|";
T[i]=val;
i++;
TxtN.Text = "";
TxtN.Focus();
if (i == n)
{
BtnCalc.Enabled = true;
BtnEnreg.Enabled = false;
txtn.Enabled = false;
BtnCalc.Focus();
}
} else .....

8
IV-Jeux: nombre caché:
L'objectif et de générer aléatoirement un numéro composé par 4 chiffres et de
demander à l'utilisateur de le trouver dans au maximum 3 propositions.
Le bouton vérifier permet de comparer la proposition de l'utilisateur avec le numéro
caché et de colorer en vert les chiffres bien placé et en jaune les chiffres qui existent
mais mal placé.

Txt1
Txt4

LblNbJeux

TxtP1 TxtP4

Indication sur le code:


Déclaration globale:
List<TextBox> LTxtC = new List<TextBox>();
List<TextBox> LTxtP = new List<TextBox>();
int nbJeux=0; bool animation = false;

Chargement de l'interface:
int n1,n2,n3,n4;
Random random = new Random();
n1 = random.Next(0, 10);
txt1.Text = n1.ToString();
do
n2 = random.Next(0, 10);
while (n2 == n1);
txt2.Text = n2.ToString();
do
n3 = random.Next(0, 10);
while (n3 == n2||n3==n1);
txt3.Text = n3.ToString();
......
LTxtC.Add(Txt1);
.....
LTxtP.Add(TxtP1);
.....

9
Le bouton Cacher:
for (int i = 0; i < 4; i++)
LTxtC[i].ForeColor = Color.White;
Le bouton Rejouer:
for (int i = 0; i < 4; i++)
{
LTxtP[i].BackColor = Color.White;
LTxtP[i].Text = "";
}
LTxtP[0].Focus();

Le bouton Verifier:
int i,j,correct = 0;
for(i=0;i<4;i++)
{
if (LTxtP[i].Text == LTxtC[i].Text)
{
LTxtP[i].BackColor = Color.Lime;
correct++;
}
else
for (j = 0; j < 4; j++)
{
if (LTxtP[i].Text == LTxtC[j].Text)
{
LTxtP[i].BackColor = Color.Yellow;
break;
}
} }
if (correct == 4)
{
timer1.Start();
for (i = 0; i < 4; i++)
LTxtC[i].ForeColor = Color.Black;
}
else
{ nbJeux++;
LblNbJeux.Text = (nbJeux+1).ToString();
if (nbJeux == 3)
{
GrB1.Enabled = false;
for (i = 0; i < 4; i++)
LTxtC[i].ForeColor = Color.Black;
MessageBox.Show("Vous avez perdu", "Game Over",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
Le timer:
if (animation == true)
{
for (int i = 0; i < 4; i++)
LTxtC[i].BackColor = Color.Yellow;
animation = false;
}
else
{
for (int i = 0; i < 4; i++)
LTxtC[i].BackColor = Color.Red;
animation = true;
}

10

Vous aimerez peut-être aussi