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.
SOMMAIRE
INTRODUCTION ....................................................................................................................................... 5
b. Merise : ............................................................................................................................ 15
INTRODUCTION
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
Lieu D’UMP :
1. PRESENTATION DE L’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
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:
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:
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...
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 enseignants qui vont faire la surveillance, cette
affectation doit respecter un nombre des critères.
Vue générale :
Logiciel de programmation :
Ms visual studio 2010
Logiciel de Modélisation :
Power AMC
3. Analyse et conception
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.
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
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
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 :
--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 :
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 :
Menu principale :
Menu est une interface MDI constituer de différent menu strip qui aide { la gestion d’un examen
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.
La classe locale :
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
La classe Enseignant :
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 bouton Modifier :
Le bouton modifier fait appel { l’interface modifier_ens qui est responsable de la modification
des informations d’un enseignant.
Le L’interface Modifier_ens :
Le bouton Supprimer :
Le code Supprimer_ens :
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.
Méthodes :
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 :
values("+Id_filiere+","+id_mat+",'"+Date_Ex+"','"+periode+"',"+id_session+")";
SqlCommand cmd1 = new SqlCommand(req1, cn.macnx);
cmd1.ExecuteNonQuery();
liste_surv.RemoveAt(index);
j++;
}
else if (insuffisant == false) { remplir_list(); }
}
}
cn.fermercnx();
}
37 RAPPORT DE STAGE FSO
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 :
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
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.
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
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
Apres ce changement, le contrôle « Crystal Report Viewer » sera disponible sur votre
boite à outils
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
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
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
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
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
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
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 :
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.