Vous êtes sur la page 1sur 48

Rapport

Faculté Des
De Sciences
Stage
OUJDA

Encadré Par:
Réalisé Par : Mr. SALHI MOHAMED ABDELBASSAT
HOUSSAM ELOUAFI Mr. FAHIM DKHISSI
HASSAN ESSOUFI Mr. MOHAMMED HOSNI
Mr. MOHAMMED OFFI
1 RAPPORT DE STAGE FSO

Remerciement
C’est avec grande douceur que nous adressons notre sincère remerciement après
Dieu à tous ceux qui nous ont aidés de près ou de loin à passer un stage dans les
meilleures conditions et contribués à la réalisation de ce modeste travail à
l'École Nationale des Sciences Appliquées D’Oujda.

Tout d’abord nous remercions, la direction d’ISTA LAZARET OUJDA qui nous à
réaliser nos vœux pour accéder à cette formation.

A notre formateur Mr. SALHI MOHAMED ABDELBASSAT, Mr. FAHIM


DKHISSI, Mr. MOHAMMED HOSNI et Mr. MOHAMMED OFFI qui nous ont
apportés beaucoup de connaissances et du temps pour prendre plusieurs choses
qui sont importantes dans le domaine d’informatique.
2 RAPPORT DE STAGE FSO

Liste Des Figures


Figure 1-Lieu du Faculté des Sciences .......................................................................................................................7
Figure 2-Photo de la porte d'entrée de la FSO .......................................................................................................7
Figure 3-Schéma des Départements et services ...................................................................................................8
Figure 4 -Menu principale de l'application .......................................................................................................... 11
Figure 5 -Taches estimées par l'application ........................................................................................................ 12
Figure 6 -Diagramme des cas d'utilisation ........................................................................................................... 13
Figure 7 Diagramme de sequence ............................................................................................................................ 14
Figure 8-Diagramme de classe .................................................................................................................................. 15
Figure 9-Modéle Conceptuel de Données ............................................................................................................. 16
Figure 10-Modéle Relationnel de Données .......................................................................................................... 16
Figure 11-Importer une BD Access.......................................................................................................................... 17
Figure 12-Parcourir la BD externe........................................................................................................................... 17
Figure 13-Sélectionner les tables à importer ...................................................................................................... 17
Figure 14-Shema des relations du BD .................................................................................................................... 19
Figure 15-Menu principale de l'application ......................................................................................................... 20
Figure 16-Classe du menu principale ..................................................................................................................... 20
Figure 17-Les sous-menu du menu Local ............................................................................................................. 21
Figure 18-Interface d'ajout d'un Local ................................................................................................................... 21
Figure 19-Classe de l'interface d'ajout du Local................................................................................................. 22
Figure 20-Attributs et Constructeurs de la classe Local ................................................................................. 22
Figure 21-Methode "Ajouter local" .......................................................................................................................... 23
Figure 22-Methode "Modifier local"........................................................................................................................ 23
Figure 23-Methode "Supprimer local" ................................................................................................................... 24
Figure 24-Interface Modifier Local .......................................................................................................................... 24
Figure 25-Interface Supprimer Local ..................................................................................................................... 25
Figure 26-Sous Menu de gestion enseignant ....................................................................................................... 26
Figure 27-L’interface Ajouter Enseignant............................................................................................................. 26
Figure 28-Attributs et Méthodes de la classe enseignant .............................................................................. 27
Figure 29-Méthode ajouter enseignant ................................................................................................................. 27
Figure 30-Interface "Modifier/Supprimer Enseignant".................................................................................. 28
Figure 31-Requete du recherche d'un Enseignants .......................................................................................... 28
Figure 32-Appel de la fonction "Chercher_ens".................................................................................................. 29
Figure 33-Bouton Modifier ......................................................................................................................................... 29
Figure 34-Aperçu de l'interface "Modifier Enseignant" .................................................................................. 29
Figure 35-Interface Modifier Enseignant .............................................................................................................. 30
Figure 36-Script du chargement des données de l'enseignant .................................................................... 30
Figure 37-Code de l'évènement Button_Click ..................................................................................................... 31
Figure 38-Méthode Modifier enseignant............................................................................................................... 31
Figure 39_Bouton Supprimer..................................................................................................................................... 32
Figure 40-Evénement du bouton Supprimer ...................................................................................................... 32
Figure 41-Sous menu : Examen ................................................................................................................................. 33
Figure 42-Interface de gestion de Session d'exam ............................................................................................ 37
3 RAPPORT DE STAGE FSO

Figure 43-Interface de création des Sessions d'exam...................................................................................... 37


Figure 44-Interface de Modification des Sessions d'exam ............................................................................. 38
Figure 45-Interface d'ajout des exam ..................................................................................................................... 38
Figure 46-Interface d'impression des Convocations........................................................................................ 39
Figure 47--Aperçu des Convocations ...................................................................................................................... 40
Figure 48-Interface Calendrier des Exam ............................................................................................................. 41
Figure 49-Choisir Framework ................................................................................................................................... 42
Figure 50-Crystal Report Viewer............................................................................................................................. 42
Figure 51-L'Exploirateur des Serveur du Data Set............................................................................................ 43
Figure 52-Ajouter nouvelle table dans Data Set................................................................................................. 43
Figure 53-Les tables Nécessaires pour les données d'impression ............................................................. 44
Figure 54-Creation du Relation entre les tables du Data Set ........................................................................ 45
Figure 55-Spécifier les champs en relation .......................................................................................................... 46
Figure 56-Code du chargement de l'interface de l'aperçu ............................................................................. 46
4 RAPPORT DE STAGE FSO

SOMMAIRE

INTRODUCTION ....................................................................................................................................... 5

I. Université Mohammed Premier Oujda ...................................................................................... 6

1. PRESENTATION DE L’FSO ...............................................................................................................................7


2. Administration, services et départements :..............................................................................................8
3. Les matériels informatiques: ..........................................................................................................................9
4. Les tâches effectuées à FSO : ........................................................................................................................ 10
II. Projet du stage .......................................................................................................................... 11

1. Initialisation (problématique) : .................................................................................................................. 11


2. Les Outilles Utiliser :........................................................................................................................................ 12
3. Analyse et conception ..................................................................................................................................... 12
a. Les Diagrammes UML : .................................................................................................... 12

b. Merise : ............................................................................................................................ 15

4. Création de la base de données .................................................................................................................. 17


5. Classe Connexion .............................................................................................................................................. 19
6. Les Interfaces L’Application Gestion Examen....................................................................................... 20
a. Sous menu : Local : .......................................................................................................... 21

b. Sous menu : Enseignant :................................................................................................. 26

c. Sous menu : Examen :...................................................................................................... 33

d. Sous menu Impression Interface d’impression des convocations .................................. 39

e. Sous menu : Calendrier :.................................................................................................. 41

7. Création des Rapports .................................................................................................................................... 42


Conclusion ................................................................................................................................................. 47
5 RAPPORT DE STAGE FSO

INTRODUCTION

Pendant deux années de formation à l’Institut Spécialisé de Technologie


Appliquée Oujda, nous avons pu bénéficier de tout un bagage d’informations
théoriques ce qui nous serions utile à continuer notre carrière.

Au terme de cette formation, un stage d’initiation s’avère des plus nécessaires


car la pratique est une occasion pour s’adapter à la vie professionnelle pour
enrichir les connaissances, et pour performer les techniques de travail acquises à
l’école.

Ayant l’occasion d’effectuer notre stage d’une durée d’un mois du 17/02/2014 à
17/03/2014 dans un établissement renommé du Maroc Oriental qui est, nous
n’en nions point l’apport tant au niveau du savoir qu’à celui de savoir-faire et du
savoir être.
6 RAPPORT DE STAGE FSO

I. Université Mohammed Premier Oujda

Composé de Cinq facultés et de quatre écoles, l’Université Mohammed Premier


d’Oujda a pour vocation de former des étudiants dans des domaines très variés :
sciences, droit, lettres, histoire, géographie, langues, gestion, sciences économiques,
technologie, sciences de l’ingénieur et les sciences de la médecine.

L'Université de Mohammed Premier accueille plus de 31200 étudiants (rentrée 2011-


2012) répartis sur les sites d’Oujda et de Nador, Elle emploie 590 enseignants et 440
personnels administratifs et techniques.

C'est avec toutes ses forces (recherche, formation, enseignement, pluridisciplinarité,


...), que l'Université Mohammed Premier espère collaborer à l’essor de la région et du
pays. Elle dispose :

 des services communs de recherche dispensant d'un matériel de haut niveau


technologique.

 des départements regroupant les différents laboratoires : sciences


mathématiques, sciences de la terre, de l'eau, biologie, chimie. Physique,
électronique, électrotechnique, automatique, informatique, mécanique,
sciences de gestion, lettres et sciences humaines.

 des centres : COSTE, CU, CUP, CEMMM, Centre de Télédétection, CULCOM,


chargés de fédérer les activités de recherche et de promouvoir le transfert
technologique.

Pluridisciplinaire, l’Université Mohammed Premier offre une formation attractive et


variée ; plusieurs filières professionnalisant complètent l’offre de formation.
7 RAPPORT DE STAGE FSO

Lieu D’UMP :

Figure 1-Lieu du Faculté des Sciences

1. PRESENTATION DE L’FSO

Figure 2-Photo de la porte d'entrée de la FSO

La Faculté des Sciences Oujda (FSO), l’une des facultés de l’Université Mohammed
Premier Oujda (UMP).

FSO est Créée en 1979, en vertu du décret N°2-79-143 du 20 Joumada I 1399 (18 Avril
1979) complétant le Décret N°2-75-662 du 11 Choual 1395(17 Octobre 1975) relatif à la
8 RAPPORT DE STAGE FSO

création d’établissements Universitaires et Cités Universitaires publié au Bulletin


Officiel N° 3468 du 20 Joumada I (18 Avril 1979 ) , dans le cadre de la politique de
décentralisation de l’enseignement supérieur, la Faculté des Sciences a pour mission
d’une part l’enseignement des sciences exactes et expérimentales , et d’autre part , la
constitution d’un noyau de recherche scientifique au sein de l’Université Mohammed
1er, se consacrant en priorité au développement socio-économique et culturel de la
région orientale du Maroc.

En effet, vu le découpage sur la carte universitaire, la Faculté des Sciences compte


parmi ses effectifs, les étudiants de toute la région orientale du Maroc (WILAYA
d’OUJDA, Provinces de BERKANE, TAOURIRT, JERRADA, FIGUIG, NADOR et Al
HOCEIMA).

2. Administration, services et départements :

Figure 3-Schéma des Départements et services


9 RAPPORT DE STAGE FSO

3. Les matériels informatiques:

La Faculté des Sciences est considéré parmi les plus grands parcs informatiques
existant à l’université.

 Les Ordinateurs:

La faculté dispose de 500 postes dont presque 450 sont connectés à Internet (qui se
diffère en marque qualité, capacité, vitesse) tournant sous différents systèmes
d’exploitation dont on distingue la présence effective des produits de Microsoft (97%),
et quelques machines de types Macintosh sont utilisées aussi. Ces PC sont regroupés
dans différents groupes de travail, la plupart dans un domaine de travail sciences et
Workgroups.

 Les Switch:

Désignation Caractéristique Nombre

HP procurve Switch 2626 2


Switch

HP procurve Switch 2524 7


Switch

HP procurve Switch 2323 2


Switch

Généralement les Switch et les hubs sont placés dans des coffrets pour sécuriser la
connexion des câbles.

 Les Serveurs:

La faculté dispose d’un nœud central qui contient un nombre de serveurs parmi elles:

 Serveur de messagerie postfix installé sous Debian


 Un firewall et Passerelle installé sur Linux Redhat
10 RAPPORT DE STAGE FSO

4. Les tâches effectuées à FSO :

Maintenance informatique:
Au cours de ce stage on a apprendre la maintenance des matérielle
informatique : l’installation des systèmes d’exploitation, réparer les
panne matérielle, ajouter des ram, changer les disques dur, changer
les boites d’alimentations...

Le câblage des réseaux informatique


On a fait aussi un peu de câblage, on a construire des câble droit,
croisé selon les besoin, on a fait l’installation des point d’accès …

Création d’une mini application :


On a programmé une petit application en langage c# qui fait la
gestion des enseignants dans la faculté, il permet d’affiche le nombre
des enseignants, chercher un enseignant, afficher les statistique …
11 RAPPORT DE STAGE FSO

II. Projet du stage

Figure 4 -Menu principale de l'application

1. Initialisation (problématique) :

La faculté des sciences Oujda a besoin d’une application de la gestion des examens qui
contient quatre grandes taches :

 La sélection automatique et optimisées des locales dont le quel les examens va prendre
place, la détermination des locales se faite de tel façon que les locales doit être ainsi
suffisantes pour le nombre nombres des étudiant par filière et avec moins gaspillage
possibles des places

 L’affectation automatique et aléatoire des étudiants au locales sélectionnés

 L’affectation automatique et aléatoire des enseignants qui vont faire la surveillance, cette
affectation doit respecter un nombre des critères.

 Et en fin l’impression des convocations et des PV


12 RAPPORT DE STAGE FSO

Vue générale :

Figure 5 -Taches estimées par l'application

2. Les Outilles Utiliser :

Systèmes de gestion de bases de données :


 Ms Access 2010
 SQL Server 2008

Logiciel de programmation :
 Ms visual studio 2010

Logiciel de Modélisation :
 Power AMC

Logiciel de création et manipulation d’images :


 Photoshop cs5
 Ms Paint

3. Analyse et conception

Langage de modélisation : UML /Merise

a. Les Diagrammes UML :


13 RAPPORT DE STAGE FSO

Diagramme de Cas d’Utilisation (use cas):

On utilise un diagramme de cas d'utilisation pour donner une vision globale du comportement
fonctionnel du système. Ils sont utiles pour des présentations auprès de la direction ou des
acteurs du projet, il représente une unité discrète d'interaction entre un utilisateur (humain ou
machine) et un système.

Dans notre projet l’acteur principale est l’agent de scolarité, c’est lui qui doit avoir la main
d’ajouter les examens et spécifier les coordinateurs et les locaux.

Figure 6 -Diagramme des cas d'utilisation

Diagramme de Séquence :

Ce diagramme représente les différents étapes et démarches que les acteurs et le logiciel vas
prendre.
14 RAPPORT DE STAGE FSO

Figure 7 Diagramme de sequence

Diagramme de Classe :

Les classes utilisées sont mentionnées dans le diagramme suivant:


15 RAPPORT DE STAGE FSO

Figure 8-Diagramme de classe

Dans notre projet en vas utiliser seulement les classes nécessaires qui sont les suivants :

Classe Enseignant, Classe Local, Classe Session exam, Classe Session exam et enfin une classe
pour la connexion (Classe Connexion).

b. Merise :
MCD

Le passage du diagramme de classe au Modèle conceptuel de données nous donne comme


résultat le MCD ci-dessus :
16 RAPPORT DE STAGE FSO

Figure 9-Modéle Conceptuel de Données

La différence entre le diagramme de classe et le MCD c’est que les cardinalités échangent
leurs positions, et en ajoute dans chaque relation une entité qui signifie le type de relation entre
les tables concernées.

MRD

D’après le MCD précèdent, en voie que les entités coordonne et surveille portent dans tous
ses directions des cardinalités de types (x, n), comme conséquence dans le Model e Relationnel
de Données ces deux tables vont être des table qui contient les clefs primaire des table qu’ils
relient, et ça nous donnes le MRD suivant :

Figure 10-Modéle Relationnel de Données


17 RAPPORT DE STAGE FSO

4. Création de la base de données

1. Création de la base de données on utilisant la commande : «create database Gestion_exam »

2. Importation des tables { partir d’un fichier Access.

Figure 11-Importer une BD Access

Suivez les étapes de l’assistant jusqu’{ la fin de l’importation

Il faut indiquer dans un premier temps le type


de la base de données et le chemin de la base Apres choisissez les tables que vous voulez
de données importer

Figure 12-Parcourir la BD externe Figure 13-Sélectionner les tables à importer


18 RAPPORT DE STAGE FSO

3. Apres il faut ajouter les contraintes des clés primaires et


Étrangères aux tables qui ont été importées on exécutant le
Scripte suivant :

--3) Ajout des contraine "Primary Key" pour les tables importées
alter table Enseignant add constraint pk_enseihnant_id_ensg primary key
(Id_Ensgn)
alter table filiere add constraint pk_filiere_id_fil primary key (id_fil)
alter table semestre add constraint pk_semestre_id_sem primary key (id_sem)
alter table matiere add constraint pk_matiere_id_mat primary key (id_mat)
alter table departement add constraint pk_departement_id_dep primary key
(id_dep)
alter table Locale add constraint pk_locale_idlocal primary key (Id_local)

--5) Ajout des contraine "Foreign Key" pour les tables matiere et
Enseignant
alter table matiere add constraint fk_semestre foreign key(id_sem)
references semestre(id_sem)
alter table matiere add constraint fk_fliere foreign key(id_fil) references
filiere(id_fil)
alter table Enseignant add constraint fk_departement foreign key(id_dep)
references departement(id_dep)

3. Création des autres tables avec leurs clés primaires et leurs références des clés étrangères à
l’aide du script suivant :

--6) Creation des tables exam, coordination, surveillance

create table Exam(


Id_Exam int primary key identity(1,1),
Id_filiere int foreign key references filiere(Id_fil)on delete set null on
update cascade,
id_mat int foreign key references matiere(id_mat)on delete set null on
update cascade,
Date_Exam date,
periode varchar(15),
session_exam varchar(20),)

create table coordination(


Id_Ensgn int foreign key references Enseignant(Id_Ensgn)on delete cascade
on update cascade,
Id_Exam int foreign key references Exam(Id_Exam)on delete cascade on update
cascade,
primary key(Id_Ensgn,Id_Exam))

create table surveillance(


Id_Exam int,
Id_local int,
Id_Ensgn int,
primary key(Id_local,Id_Exam,Id_Ensgn))
19 RAPPORT DE STAGE FSO

A la fin de cette opération la base de données doit avoir le schéma suivant :

Figure 14-Shema des relations du BD

5. Classe Connexion

En premier temps on utilise le mode connecté en a besoin d’une classe de connexion qui contient
la chaine de connexion et les méthodes d’ouverture et de fermeture de la connexion :

Attribut contient la chaine de connexion :

Public SqlConnection macnx = new SqlConnection ("Data Source=dell; Initial


Catalog=Gestion_exam; Integrated Security=True");

Méthode d’ouverture de la connexion:

Public void ouvrircnx ()


{
If (macnx.State == ConnectionState.Closed) {macnx.Open () ;}
}

Méthode de fermeture de la connexion:

Public void fermercnx ()


{
If (macnx.State == ConnectionState.Open) {macnx.Close () ;}
}
20 RAPPORT DE STAGE FSO

6. Les Interfaces L’Application Gestion Examen

Menu principale :

Menu est une interface MDI constituer de différent menu strip qui aide { la gestion d’un examen

Figure 15-Menu principale de l'application

Cette menu faite appel tous les interfaces de gestion, exp :

Figure 16-Classe du menu principale


21 RAPPORT DE STAGE FSO

a. Sous menu : Local :

Figure 17-Les sous-menu du menu Local

Cette sous menu permet la gestion des locales ajout/suppression/modification

Exp : ajouter Local

Figure 18-Interface d'ajout d'un Local

Cette interface permet l’ajout d’un local, un local est identifier par un type et un identifiant, le
nom et le nombre d’étudiants sont facultatif, le champ nombre d’enseignants est obligatoire.

Au chargement de l’interface le combo box type local sera rempli par tous les type existe dans la
base de donnée dans la table local

Le champ Type Local et Id Locale dans la base de données sont des champs unique pour éviter
l’existence de deux locales de même nom et d’id.
22 RAPPORT DE STAGE FSO

Au clic sur le bouton ajouter une nouvelle ligne sera ajoutée dans la table local.

Le Code Source de L’interface Ajouter Locale :

Figure 19-Classe de l'interface d'ajout du Local

La classe locale :

Figure 20-Attributs et Constructeurs de la classe Local


23 RAPPORT DE STAGE FSO

Les Méthodes de la classe Local :


Méthode Ajouter Local :

Figure 21-Methode "Ajouter local"

Méthode Modifier Local :

Figure 22-Methode "Modifier local"


24 RAPPORT DE STAGE FSO

Méthode Supprimer Local :

Figure 23-Methode "Supprimer local"

Le même travail pour l’interface modifier et supprimer local

 L’interface Modifier Local :

Figure 24-Interface Modifier Local


25 RAPPORT DE STAGE FSO

 L’interface Supprimer Local :

Figure 25-Interface Supprimer Local


26 RAPPORT DE STAGE FSO

b. Sous menu : Enseignant :

Figure 26-Sous Menu de gestion enseignant

Cette sous menu permet la gestion des Enseignant ajout/suppression/modification

Exp : ajouter Enseignant

Figure 27-L’interface Ajouter Enseignant

Cette interface permet d’ajouter un nouveau enseignant, le champ nom et prénom sont unique,
les champs département et module se charge au chargement de l’interface.

Au clic sur le bouton ajouter un nouvel enseignant sera ajouté dans la base de données, La
méthode ajouter se trouve dans la classe enseignant
27 RAPPORT DE STAGE FSO

Le Code Source de L’interface Ajouter Enseignant :

La classe Enseignant :

Figure 28-Attributs et Méthodes de la classe enseignant

La Méthode ajouté enseignant :

Figure 29-Méthode ajouter enseignant


28 RAPPORT DE STAGE FSO

L’interface Modifier/Supprimer Enseignant :

Figure 30-Interface "Modifier/Supprimer Enseignant"

Cette interface est composée de plusieurs parties

 La partie groupe de recherche cert à chercher les enseignants par nom, prénom,
Département, Disponibilité, et en fin état de disponibilité
 La partie datagridview permet d’afficher les enseignant trouver dans la recherche, dans
chaque ligne en trouve deux bouton une cert a appelé l’interface modifier enseignant et
l’autre cert { supprimer l’enseignant sélectionné

Le Code de la partie qui fait la recherche et le remplissage du datagridview:

Figure 31-Requete du recherche d'un Enseignants


29 RAPPORT DE STAGE FSO

L’appel de la fonction chercher_ens:

Figure 32-Appel de la fonction "Chercher_ens"

Le bouton Modifier :

Figure 33-Bouton Modifier

Le bouton modifier fait appel { l’interface modifier_ens qui est responsable de la modification
des informations d’un enseignant.

Le Code d’appel de l’interface Modifier_ens :

Figure 34-Aperçu de l'interface "Modifier Enseignant"


30 RAPPORT DE STAGE FSO

Le L’interface Modifier_ens :

Figure 35-Interface Modifier Enseignant

Chargement de l’interface Modifier_ens :

Figure 36-Script du chargement des données de l'enseignant


31 RAPPORT DE STAGE FSO

Le code du bouton modifier de l’interface Modifier_ens :

Figure 37-Code de l'évènement Button_Click

La Méthode Modifier enseignant :

Figure 38-Méthode Modifier enseignant


32 RAPPORT DE STAGE FSO

Le bouton Supprimer :

Au clic sur le bouton supprimer un message de confirmation se déclenche pour confirmer la


suppression de l’enseignant, l’enseignant sera supprimé si on clique sur le bouton oui

Figure 39_Bouton Supprimer

Le code Supprimer_ens :

Figure 40-Evénement du bouton Supprimer


33 RAPPORT DE STAGE FSO

c. Sous menu : Examen :

Figure 41-Sous menu : Examen

Classe Session_exam :
 Les attributs de cette classe sont les suivant :
Public int id_session;
Public string rat_ord;
Public string aut_prin;
Public string annee;
Public static int id_se;

Le dernier attribut qui est static et pour des utilisations nécessaires dehors de la classe
et pour avoir une valeur fixe.

Les méthodes de l’ajout, la modification et la suppression :


public void ajouter_session ()
{
Cnx cn=new Cnx ();
String req = "insert into Session_exam values
('"+annee+"','"+aut_prin+"','"+rat_ord+"')";
SqlCommand cmd = new SqlCommand (req, cn.macnx);
cn.ouvrircnx ();
cmd.ExecuteNonQuery ();
String req2 = "select MAX (Id_session) from Session_exam";
SqlCommand cmd2 = new SqlCommand (req2, cn.macnx);
SqlDataReader dr = cmd2.ExecuteReader ();
while (dr.Read()) { id_session = int.Parse(dr[0].ToString()); }
dr.Close();
cn.fermercnx();
}
34 RAPPORT DE STAGE FSO

public void modifier_session()


{
Cnx cn = new Cnx();
string req = "update Session_exam set annee_scolaire='"+annee+"',
aut_ete='"+aut_prin+"', rat_ord='"+rat_ord+"' where
Id_session="+id_session;
SqlCommand cmd = new SqlCommand(req, cn.macnx);
cn.ouvrircnx();
cmd.ExecuteNonQuery();
cn.fermercnx();
}

public void supprimer_session()


{
Cnx cn = new Cnx();
string req = "delete from Session_exam where Id_session=" +
id_session;
SqlCommand cmd = new SqlCommand(req, cn.macnx);
cn.ouvrircnx();
cmd.ExecuteNonQuery();
cn.fermercnx();
}
Classe exam
Attributes :

public int Id_Exam;


public int Id_filiere;
public int id_mat;
public DateTime Date_Exam;
public string periode;
public int id_session;
//liste_local contient l'id du local et le nombre des surveillants nécessaires
public Dictionary<int, int> liste_local = new Dictionary<int, int>();
//liste_coord contient les id des enseignants qui vont coordonner cet exam
public List<int> liste_coord = new List<int>();
//liste_surv contient les id des enseignants qui vont surveiller cet exam
public List<int> liste_surv = new List<int>();

Méthodes :

Une méthode locale pour remplir la liste des surveillants :

void remp(string req)


{
SqlCommand cmd2 = new SqlCommand(req, cn.macnx);
SqlDataReader dr2;
dr2 = cmd2.ExecuteReader();
while (dr2.Read()) { liste_surv.Add(int.Parse(dr2[0].ToString())); }
dr2.Close();
}
Une méthode local pour donner la requête de sélection des enseignants selon des critères et testes si
la liste est encore vide pour donner une autre requête qui contient des critères moins exigées afin
d’avoir plus de résultats :
35 RAPPORT DE STAGE FSO

void remplir_list()
{
if (insuffisant == false)
{
liste_surv.Clear();
string req2 = "select Id_Ensgn from Enseignant where
(Nbr_Surveil=(select MIN(Nbr_Surveil) from Enseignant)) and (Id_Ensgn not IN(select
srv.Id_Ensgn from Exam ex inner join surveillance srv on ex.Id_Exam=srv.Id_Exam where
Date_Exam='" + Date_Ex + "')) and (disponibilité='Oui') and (Id_Ensgn not in(select
c.Id_Ensgn from coordination c inner join Exam e on c.Id_Exam=e.Id_Exam where
Date_Exam='" + Date_Ex + "'))";
remp(req2);

if (liste_surv.Count == 0)
{
req2 = "select Id_Ensgn from Enseignant where (Id_Ensgn not
IN(select srv.Id_Ensgn from Exam ex inner join surveillance srv on
ex.Id_Exam=srv.Id_Exam where Date_Exam='" + Date_Ex + "')) and (disponibilité='Oui')
and (Id_Ensgn not in(select c.Id_Ensgn from coordination c inner join Exam e on
c.Id_Exam=e.Id_Exam where Date_Exam='" + Date_Ex + "'))";
remp(req2);
}

if (liste_surv.Count == 0)
{
req2 = "select Id_Ensgn from Enseignant where (Nbr_Surveil=(select
MIN(Nbr_Surveil) from Enseignant)) and (Id_Ensgn not IN(select srv.Id_Ensgn from Exam
ex inner join surveillance srv on ex.Id_Exam=srv.Id_Exam where Date_Exam='" + Date_Ex
+ "' and periode='" + periode + "')) and (disponibilité='Oui') and (Id_Ensgn not
in(select c.Id_Ensgn from coordination c inner join Exam e on c.Id_Exam=e.Id_Exam
where Date_Exam='" + Date_Ex + "' and periode='" + periode + "'))";
remp(req2);
}

if (liste_surv.Count == 0)
{
req2 = "select Id_Ensgn from Enseignant where (Id_Ensgn not
IN(select srv.Id_Ensgn from Exam ex inner join surveillance srv on
ex.Id_Exam=srv.Id_Exam where Date_Exam='" + Date_Ex + "' and periode='" + periode +
"')) and (disponibilité='Oui') and (Id_Ensgn not in(select c.Id_Ensgn from
coordination c inner join Exam e on c.Id_Exam=e.Id_Exam where Date_Exam='" + Date_Ex +
"' and periode='" + periode + "'))";
remp(req2);
}
if (liste_surv.Count == 0)
{
insuffisant = true;
}
}
}
Une méthode d’ajout, c’est dans cette méthode qu’on vas ajouter des examens en premiers temps
et après en vas insérer les coordinateurs et les locales sélectionnées par l’utilisateur, et en fin utiliser
un algorithme qui vas sélectionner les surveillants d’une façon aléatoire :

public void ajouter_exam()


{
cn.ouvrircnx();

//déclaration des variables nécessaires


int j, index;
36 RAPPORT DE STAGE FSO

Random rdm = new Random();


string[] d = Date_Exam.ToShortDateString().Split('/');
Date_Ex = d[2] + "-" + d[1] + "-" + d[0];

//insertion dans la table exam


string req1 = "insert into Exam

values("+Id_filiere+","+id_mat+",'"+Date_Ex+"','"+periode+"',"+id_session+")";
SqlCommand cmd1 = new SqlCommand(req1, cn.macnx);
cmd1.ExecuteNonQuery();

//obtenir l'ID de l'exam


string req2 = "select MAX(Id_Exam) from Exam where Id_filiere=" +
Id_filiere + " and id_mat=" + id_mat + " and Date_Exam='" + Date_Ex + "'";
SqlCommand cmd2 = new SqlCommand(req2, cn.macnx);
SqlDataReader dr2 = cmd2.ExecuteReader();
while (dr2.Read()) { Id_Exam = Convert.ToInt32(dr2[0]); }
dr2.Close();

//insertion dans la table coordination


for (int i = 0; i < liste_coord.Count; i++)
{
string req5 = "insert into coordination values(" + liste_coord[i] +
"," + Id_Exam + ")";
SqlCommand cmd5 = new SqlCommand(req5, cn.macnx);
cmd5.ExecuteNonQuery();
}

//affectation des enseignants aux locaux

//choisir les enseignants qualifiés pour faire la surveillance


remplir_list();

//parcourir la liste des locales sélectionnées


foreach(KeyValuePair<int,int> lc in liste_local)
{
j = 0;
while (j < lc.Value)
{
if (liste_surv.Count > 0)
{
index = rdm.Next(0, liste_surv.Count);

//incrémenter le nombre de surveillance de l'enseignant


string req5 = "update Enseignant set Nbr_Surveil=Nbr_Surveil+1
where Id_Ensgn=" + liste_surv[index];
SqlCommand cmd5 = new SqlCommand(req5, cn.macnx);
cmd5.ExecuteNonQuery();

string req6 = "insert into surveillance values(" + Id_Exam +


"," + lc.Key + ","+liste_surv[index]+")";
SqlCommand cmd6 = new SqlCommand(req6, cn.macnx);
cmd6.ExecuteNonQuery();

liste_surv.RemoveAt(index);
j++;
}
else if (insuffisant == false) { remplir_list(); }
}
}
cn.fermercnx();
}
37 RAPPORT DE STAGE FSO

L’interface Ajouter Exam :


Cette interface contient des panels :

1) La première interface qui vas s’afficher et la suivante :

Figure 42-Interface de gestion de Session d'exam

Elle affiche la dernière session d’exam créé et donne la possibilité de créer une nouvelle session
lors du clic sur le bouton «Créer Nouvelle Session d’exam » et elle devient comme suite :

Figure 43-Interface de création des Sessions d'exam

 Lors du clic sur le bouton « Modifier la Dernière Session d’Examen » l’interface qui
s’affichera vous permet de modifier les propriétés d’une session comme suite :
38 RAPPORT DE STAGE FSO

Figure 44-Interface de Modification des Sessions d'exam

 Et si vous cliquer sur « Ajouter des Examens à la Dernière Session Existante »


l’interface affiché vous donne la main pour ajouter des examens:

Figure 45-Interface d'ajout des exam

1. Partie des coordinateurs qui permet de choisir le coordinateur de l’exam en


cherchant par le département ou bien le nom afin de mentionner la coordination
dans leur convocation et de l’exclure de la surveillance dans ce jour-là

2. Partie des propriétés de l’examen : choisir la filière, semestre, matière, date et


période de l’examen.
39 RAPPORT DE STAGE FSO

3. Un label qui affiche les informations de la session d’exam dans laquelle on en train
d’ajouter des examens.

4. Une partie de sélection des locales dans lesquels cet examen s’effectuera.

5. Une liste qui affiche un résumé des derniers examens ajoutés afin que l’utilisateur
ne se perturbe pas et qu’il ne doit pas ajouter des examens en double.

6. Le bouton ajouter pour effectuer l’ajout dans la base de donnes.

7. Le bouton quitter qui permet le retour { l’interface principale.


d. Sous menu Impression Interface d’impression des convocations

Figure 46-Interface d'impression des Convocations

Cette interface contient une liste de tous les enseignant convoquées pour la surveillance
ou bien la coordination, après la sélection des enseignants qu’on veut imprimer leurs
convocations on appuis sur le bouton aperçu l’impression et la fenêtre suivante vas
s’afficher :
40 RAPPORT DE STAGE FSO

Figure 47--Aperçu des Convocations

Un clic sur l’icône de l’imprimante et vous pouvez imprimer vos convocations.


41 RAPPORT DE STAGE FSO

e. Sous menu : Calendrier :


Une interface qui liste l’ensemble des examens dans une date précis, lord du clic sur un examen,
les locales concerné s’affichera, et l’ors du clic sur un local, les surveillants de ce local vas
s’afficher.

Figure 48-Interface Calendrier des Exam


42 RAPPORT DE STAGE FSO

7. Création des Rapports

Pour créer des rapports en c#.Net il tout d’abord télécharger est installer Crystal Report,
et il est important de mentionner que le visionneur des rapports « Crystal Report
Viewer » ne figure pas si vous utilisez la Framework « .Net Framework 4 Client Profile »
donc il faut utiliser la Framework 4 ou moins pour que le visionneur des rapports soit
disponible sur votre boite à outils.
Pour faire cela : clic droit sur votre projet dans l’explorateurs de solution et choisissez
« Propriétés »
Ensuite, dans la propriété « Framework cible » choisissez par exemple Framework 2.0

Figure 49-Choisir Framework

Apres ce changement, le contrôle « Crystal Report Viewer » sera disponible sur votre
boite à outils

Figure 50-Crystal Report Viewer

Pour que notre rapport affiche les informations désirées, il faut luis donner une source
de données au moment de leur création, cette source d’information est une « Dataset »
qu’on doit l’ajouter avant les créations des rapports et on doit spécifier les tables qu’on a
besoin, Dans l’Explorateur des serveurs on vas trouver notre base de données, sinon on
clique sur l’icône « Se connecter à la base de données »
43 RAPPORT DE STAGE FSO

Figure 51-L'Exploirateur des Serveur du Data Set

Vous pouvez choisir les tables que vous avez besoin, mais dans notre cas on vas utiliser
des tables qui sont pas des tables réel sur la base de données, mais ils sont des requêtes
qui collecte les informations à partir de plusieurs tables, on le créer avec un clic droit sur
notre Dataset -> Ajouter -> Table Adapter

Figure 52-Ajouter nouvelle table dans Data Set

Suivez l’assistant Jusqu’il vous demande de taper la requête désirée, en suite votre table
est prêt.
Dans notre cas en a besoin de deux tables en relation entre eux :
44 RAPPORT DE STAGE FSO

Figure 53-Les tables Nécessaires pour les données d'impression

La table « Enseignants_convoques » contient tous les enseignants convoquées pour


surveiller un examen on spécifiant leur Id, nom complet, département, session d’examen
qu’ils vont surveiller, cette table est le résultat de la requête suivante :

select distinct e.Id_Ensgn,e.Nom+' '+e.Prenom [nomcomplet], d.libelle_dep,


ex.session_exam
from Enseignant e,departement d,Locale l,arch_ens ae,arch_Local al,Exam ex
where (e.Id_Ensgn=ae.Id_Ensgn and ae.Id_arch_local=al.Id_arch_local and
al.Id_Exam=ex.Id_Exam and al.Id_local=l.Id_local and d.id_dep=e.id_dep)
and e.Id_Ensgn in(@id)
--@id est un parametre qu'on doit specfier au moment du remplissage de la
table

L’autre table « Examens_concernee » présente tous les examens que les enseignants doit
l’enseigner ou coordonner, elle contient la date, l’heure, le local et l’id de l’enseignant, La
requête de cette table est la suivante : select * from dbo.func_surv_coord() order by
[Date] asc
Cette requête est l’exécution de la fonction « func_surv_coord() » qui retourne le resultat
d’un tableau qui regroupe les donnes de plusieurs tables et qu’Ella à comme définition :
create function func_surv_coord()
returns @tab1 table(id_ens int,[Date] date,[Local] varchar(30),Heure
varchar(10))
as
begin
--la premiere retourn les examens à coordonner
insert into @tab1 select c.Id_Ensgn,e.Date_Exam,'Coordination'
[coord], e.periode from coordination c inner join Exam e on
c.Id_Exam=e.Id_Exam

--la deuxieme requete retourn les examens à surveiller


insert into @tab1 select ae.Id_Ensgn,ex.Date_Exam,l.Type_Local+'
'+l.Num_Local [locale], ex.periode from arch_ens ae inner join arch_Local
al on ae.Id_arch_local=al.Id_arch_local inner join Exam ex on
ex.Id_Exam=al.Id_Exam inner join Locale l on l.Id_local=al.Id_local

return
end
45 RAPPORT DE STAGE FSO

Ensuite, on mentionne la relation entre ces deux tables avec un clic droit sur l’une des
tables--> Ajouté --> Relation

Figure 54-Creation du Relation entre les tables du Data Set

Et spécifier la table la quelle doit être en relation et les champs clé primaire/clé
étrangère des tables.

Dans notre rapport il y a deux partie, la partie principale du rapport qui contient les
informations de la table « Enseignants_convoques » que ces information doit figurer
pour chaque enseignant dans une page dédié,

Et la deuxième partie est un Sous rapport qui contient pour chaque enseignants les
informations des dates, heur et locales à surveiller ou bien examens à coordonner.
Pour créer un sous rapport il suffit d’un clic droit sur le rapport principal--> Insertion-->
Sous-Rapport et suivez l’assistant jusqu’{ la fin de la creation du sous-rapport, puis allez
dans l’onglet « Mise en relation »

Pour indiquer le champ de relation entre le rapport principale et le sous rapport qui est
dans notre cas le champ ‘id_ensg’ :
46 RAPPORT DE STAGE FSO

Figure 55-Spécifier les champs en relation

Donc notre rapport est prêt, il reste que préparer notre visionneur des rapports pour
afficher notre informations, pour faire cela, il faut effectuer les commandes suivants
dans l’évènement du chargement de ‘l’interface qui contient le visionneur :

Figure 56-Code du chargement de l'interface de l'aperçu


47 RAPPORT DE STAGE FSO

Conclusion
Pendant ce mois de stage, nous avons vraiment pris une
expérience considérable dans le domaine de l’informatique et
surtout en Programmation et en maintenance Informatique.
En plus de cela, nous avons vraiment vécu une période de
professionnalité et de responsabilité dans la faculté, et avec des
encadrants qui nous ont bien aidé et qui sont responsables,
sérieux, et méritent tout le respect.

Vous aimerez peut-être aussi