Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Frédéric Sagez 
D.U.T. Informatique 
Institut Universitaire Techno...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
J'ai effectué du 5 mai au 30 juin 1997 un stage au Service Informa...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Sommaire 
1 I.U.F.M. : Institut universitaire de formation des maî...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
9 Annexe.............................................................
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
1 I.U.F.M. : INSTITUT UNIVERSITAIRE DE FORMATION DES MAITRES 
1.1 ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 6 sur 99 
 Antony Val de Bièvre, 
 Cergy, 
 Etiolles, 
 S...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 7 sur 99 
Ces services sont au nombre de quatre : 
1. Le serv...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Equipe de Direction 
Siège de Versailles 
Service Comptable Servic...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Il existe trois réseaux pour chaque centre de l'I.U.F.M. de Versai...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
2 LES OBJECTIFS 
Avant d’expliquer comment j’ai procédé à l’élabor...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Les candidats "dérogataires" quant à eux sont gérés directement pa...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Pour mieux distinguer les différentes étapes de conception, voici ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 13 sur 99 
3 LE CAHIER DES CHARGES 
3.1 Introduction 
L’Insti...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
3.2.1 Le matériel 
L’utilisation du programme se fera sur le serve...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
3.3.2 Analyse des besoins fonctionnels 
3.3.2.1 Services offerts à...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
8 10 
0 
Note préprofessionalisation 
candidat déjà trié : 
note d...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 17 sur 99 
D'autres conditions ont été rajoutées : 
 Les can...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Des commentaires seront implantés dans le programme pour aider l’u...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 19 sur 99 
4 LE PROGRAMME 
4.1 Principe de fonctionnement 
No...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 20 sur 99 
4.2 Les structures 
4.2.1 La table des candidats t...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
{ le code du centre est égal au nom du département pour faciliter ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
4.2.4 La table des admissions dans les centres 
Page 22 sur 99 
//...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
ST-GERMAIN et VERSAILLES (nom du centre). Chaque centre a un nombr...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
4.4 Description de la procédure de tri des candidats 
Cette procéd...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
{tri les candidats dans le tableau T_CANDIDAT_TEMP par la note de ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 26 sur 99 
Début 
verifie := FAUX {aucune erreur avant de com...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
verifie := VRAI 
Fin Si 
{indique une erreur sur le 4ème departeme...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
4.4.3 Description de la procédure Tri_par_note_de_bareme 
Dans un ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Précondition : le tableau temporaire T_CANDIDAT_TEMP doit être cré...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educat...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Par Ordre CROISSANT T_ETUDIANT.date_naissance 
Page 31 sur 99 
Fin...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Type T_ADMIS_VERSAILLES : tableau[1.. CentreV_quota] de ADMIS_VERS...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Fonction Test_place Centre(Entrée : le_quota : entier) retourne bo...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
le_code_du_departement : chaîne de caractère, 
Sortie : le_quota_d...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 35 sur 99 
the_no_departement : entier, 
the_nom_du_centre : ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
{mise à jour du quota restant de Versailles} 
Changer le tableau T...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
La valeur nbre_derogataire = nbre_derogataire + 1 
( 
Selectionne ...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
La valeur nbre_atypique = nbre_atypique + 1 
( 
Selectionne no_dos...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
5 FONCTIONNEMENT 
Pour passer de l’algorithme au programme, certai...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
La table SIG97_ COMMENTAIRE_PRG indique très clairement ce que fai...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
 La procédure Initialise_Candidat_Desc : on effectue un tri des c...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
code_centre quota_centre_ini tial quota_centre_res tant nbre_atypi...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 43 sur 99 
departement5 chaine de 
caractère 
3 CHAR cinquièm...
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
no_departement2 caractère 1 CHAR repère du deuxième voeu du candid...
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Prochain SlideShare
Chargement dans…5
×

Rapport de stage à l’IUFM de Versailles

804 vues

Publié le

Rapport de stage effectué à l’IUFM de Versailles pendant mon D.U.T. Informatique passé à l'Institut Universitaire Technologique de Vélizy. (Années 1995-1997)

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
804
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport de stage à l’IUFM de Versailles

  1. 1. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Frédéric Sagez D.U.T. Informatique Institut Universitaire Technologique de Vélizy Années 1995-1997 RAPPORT DE STAGE Page 1 sur 99
  2. 2. Rapport de stage à l’IUFM de Versailles Frédéric Sagez J'ai effectué du 5 mai au 30 juin 1997 un stage au Service Informatique de Gestion de l'Institut Universitaire de Formation des Maîtres de l'académie de Versailles. La tâche qui m'a été confiée pendant cette période a été de faire un programme écrit en PL/SQL s ur un serveur de base de données Oracle. Ce programme consiste à effectuer les admissions des candidats qui s'inscrivent en première année pour devenir professeur d'écoles (inscription au C.A.P.E.). La première étape du stage a été de faire un cahier des charges afin de définir les besoins des différents utilisateurs. A partir de celui-ci, j'ai conçu, réalisé et testé un programme qui répond à tous les critères demandés. Mais pour comprendre à quoi va servir le programme, le chapitre I présente l'I.U.F.M. de Versailles ainsi que la structure ou j'ai effectué mon stage. Le chapitre II défini très clairement tous les objectifs qui m'ont été demandés. Les autres chapitres comme le chapitre IV est la plus grosse partie de ce rapport, il explique la méthodologie employée pour concevoir le programme en PL/SQL ainsi que toutes les données et informations supplémentaires qui m'ont été apportés. Page 2 sur 99
  3. 3. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Sommaire 1 I.U.F.M. : Institut universitaire de formation des maîtres..............................................................................5 1.1 Origine des I.U.F.M. ......................................................................................................................................................................... 5 1.2 La structure des I.U.F.M. ................................................................................................................................................................ 5 1.3 Les fonctions de l'I.U.F.M. .............................................................................................................................................................. 6 1.4 Les différents services ..................................................................................................................................................................... 6 2 Les objectifs............................................................................................................................................. 10 3 Le Cahier des charges............................................................................................................................... 13 3.1 Introduction ....................................................................................................................................................................................13 3.2 Analyse de l’existant......................................................................................................................................................................13 3.2.1 Le matériel ..........................................................................................................................................................................14 3.3 Etude du système ..........................................................................................................................................................................14 3.3.1 Analyse des besoins non-fonctionnels ..........................................................................................................................14 3.3.2 Analyse des besoins fonctionnels...................................................................................................................................15 3.4 Evolution du programme..............................................................................................................................................................17 4 Le programme ......................................................................................................................................... 19 4.1 Principe de fonctionnement ........................................................................................................................................................19 4.2 Les structures..................................................................................................................................................................................20 4.2.1 La table des candidats triés .............................................................................................................................................20 4.2.2 La table des capacités des centres .................................................................................................................................20 4.2.3 La table des erreurs sur les candidats ...........................................................................................................................21 4.2.4 La table des admissions dans les centres......................................................................................................................22 4.3 Le programme principal................................................................................................................................................................23 4.4 Description de la procédure de tri des candidats ....................................................................................................................24 4.4.1 Description de la procédure Initialise_T_CANDIDAT_DESC ......................................................................................25 4.4.2 Description de la sous procédure Inscrit_Erreur .........................................................................................................27 4.4.3 Description de la procédure Tri_par_note_de_bareme ............................................................................................28 4.4.4 Description de la fonction Nombre_de_candidat_par_note_de_bareme .............................................................28 4.4.5 Description de la procédure Selectionne_Candidat_pour_table_temporaire.......................................................28 4.4.6 Description de la procédure Tri_par_note_de_prepo ................................................................................................29 4.4.7 Description de la sous procédure Tri_par_critere_de_selection .............................................................................30 4.4.8 Description de la procédure Classement_table_trie ..................................................................................................31 4.5 Description de la procédure d'attribution des centres ...........................................................................................................31 4.5.1 Description de la procédure Test_place_Centre .........................................................................................................32 4.5.2 Description de la procédure Selection_Information_Centre ....................................................................................33 4.5.3 Description de la fonction Traite_le_Centre ................................................................................................................33 4.5.4 Description de la procédure Donne_nom_du_centre................................................................................................34 4.5.5 Description de la procédure Inserer_Candidat_dans_Centre...................................................................................34 4.5.6 Description de la procédure Mise_a_jour_des_Centres ............................................................................................35 4.6 Description des procédures de mise à jour des atypiques et des dérogataires .................................................................36 4.6.1 Description de la procédure Met_le_nombre_de_derogataire ...............................................................................36 4.6.2 Description de la procédure Met_le_nombre_d_atypique.......................................................................................37 5 Fonctionnement ...................................................................................................................................... 39 6 Utilisation du programme......................................................................................................................... 45 6.1 Lancement du script ......................................................................................................................................................................45 6.2 Erreurs..............................................................................................................................................................................................46 6.3 Vérifications ....................................................................................................................................................................................46 6.4 Optimisation ...................................................................................................................................................................................48 7 Jeux de tests ............................................................................................................................................ 50 7.1 Constations et vérifications du tri des candidats .....................................................................................................................50 7.2 Constations et vérifications sur l’admission des candidats....................................................................................................52 8 Conclusion............................................................................................................................................... 56 Page 3 sur 99
  4. 4. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 9 Annexe.................................................................................................................................................... 57 9.1 Le programme SQL (affect97.sql) ...............................................................................................................................................57 9.2 Création des tables sous Oracle (creat1_0.sql) ........................................................................................................................93 9.3 Gestion de la mémoire (space2.sql) ...........................................................................................................................................98 Page 4 sur 99
  5. 5. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 1 I.U.F.M. : INSTITUT UNIVERSITAIRE DE FORMATION DES MAITRES 1.1 Origine des I.U.F.M. Les Instituts Universitaire de Formation des Maitres ont été créées par la loi d'orientation sur l'éducation n° 89- 486 du 10 Juillet 1989. Les I.U.F.M. sont des établissements d'enseignement supérieur et, à ce titre, bénéficient de l'autonomie pédagogique et administrative : ce sont des établissements publics administratifs. Les I.U.F.M. sont rattachées aux universités des différentes académies. Des conventions sont signées ent re le président de l'établissement de rattachement et le directeur de l'institut après avis des conseils d'administration des deux établissements. De part ce changement de statut des établissements de formation des enseignants, la profession a été revalorisée et le recrutement ne s'effectue plus au même niveau. Au mois de Septembre 1991, les I.U.F.M. ont ouverts leurs portes, en remplacement des Ecoles Normales qui existaient par le passé car elles étaient gérées au niveau départemental (il en existait une pour chaque département). Désormais il n'existe plus qu'un I.U.F.M. par académie, ainsi leur création a entraîné le regroupement d'entités distinctes au sein d'un même établissement. 1.2 La structure des I.U.F.M. Chaque I.U.F.M. a hérité au moment de sa création des locaux et du matériel des Ecoles Normales dont il est le successeur. Page 5 sur 99 Présentation de l'organisation d'un I.U.F.M. : Il y a un siège qui est le centre de direction et de gestion de l'ensemble de l'établissement dont le rôle est de répartir les ressources entre les différents centres éparpillés à l'intérieur de l'académie selon leurs besoins. Au siège il y a un directeur qui a la charge de l'ensemble de l'institut, il est assisté par un secrétaire général et d'un agent comptable qui ont pour mission la gestion et la répartition du budget de l'I.U.F.M. Il y a des centres de formation dont le rôle est d'assurer la préparation des étudiants au concours de l'Education Nationale, la formation des professeurs stagiaires pendant leur deuxième année. Ces centres de formation sont répartis à travers l'académie administrée par l'I.U.F.M. Chaque centre a un directeur qui est responsable avec son équipe des orientations pédagogiques suivis par l'établissement ainsi que de son administration. Dans l'académie de Versailles, il y a 6 centres de formations :  Versailles (au même endroit que le siège),  Antony Jouhaux,
  6. 6. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 6 sur 99  Antony Val de Bièvre,  Cergy,  Etiolles,  Saint Germain en Laye. 1.3 Les fonctions de l'I.U.F.M. La fonction essentielle de l'I.U.F.M. est la sélection et la formation des futurs enseignants de l'éducation nationale. Cette fonction s'exerce dans les centres de formation qui ont chacun leurs spécificités :  Le centre d'Antony Jouhaux forme les futurs enseignants technologiques dans les lycées et collèges, on y prépare le Certificat d'Aptitude au Professorat Technologique (CAPET) ainsi que des enseignants pour les Lycées Professionnels (LP) en y préparant le Certificat d'Aptitude au Professorat des Lycées Professionnels.  Les centres d'Antony Val de Bièvre, Cergy et Etiolles accueillent les candidats pour la préparation du Certificat d'Aptitude au Professorat des Ecoles (CAPE ou PE), de l'Enseignement Secondaire (CAPES) ainsi que l'Education Physique et Sportive (CAPEPS).  Les centres de Saint Germain en Laye et Versailles quant à eux sont chargés de préparer les CAPE ou le CAPES. La personne désirant s'inscrire dans l'une des branches doit avoir obligatoirement une licence sauf pour les CAPE ou l'on peut s'inscrire avec un diplôme équivalent au BAC+3 comme par exemple le Diplôme National Technique Supérieur après un Diplôme Universitaire Technologique. L'étudiant fait d'abord une démarche de préinscription. Son dossier passe alors devant une commission d'admission qui sélectionne les personnes qui vont disposer d'une place à l'I.U.F.M. Après son admission, l'étudiant passe une année dans un centre de l'I.U.F.M. pour préparer le concours auquel il est candidat. A l'issue de cette première année d'enseignement pédagogique, le candidat passe son concours. S’il l'obtient, le candidat entre en deuxième année en qualité de professeur stagiaire, sinon il peut redoubler sa première année s’il a eu l'avis favorable de ses professeurs. Durant la deuxième année, le professeur stagiaire est formé sur le "terrain" dans des classes. A la fin de son année, il passe devant une commission de validation du stage qui propose sa titularisation. Si la commission de titularisation lui donne un avis favorable alors le candidat deviendra professeur titulaire avec un poste d'enseignement à vie comme fonctionnaire, sinon il peut redoubler en renouvelant son stage. Chaque année, l'académie de Versailles enregistre sur l'ensemble de ses centres, plus de 15 000 demandes de dossier de préinscription à l'I.U.F.M. Sur ces 15 000 demandes de dossier, environ 12 000 seront soumises à la commission d'étude qui est chargée de les valider. Parmi ces dossiers, moins de 4 000 candidats pourront suivre une formation de CAPE en première année pour l'année scolaire 1997-1998. 1.4 Les différents services Pour coordonner ses diverses formations et assurer le bon fonctionnement de l'I.U.F.M., il y a au siège de l'I.U.F.M. à Versailles des services administratifs. Leur principal travail est de donner aux centres de formation les moyens matériels pour former les personnes inscrites à l'I.U.F.M.
  7. 7. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 7 sur 99 Ces services sont au nombre de quatre : 1. Le service comptable qui a la responsabilité du budget de l'I.U.F.M., sa mission est la gestion et la redistribution des ressources de l'établissement, 2. Le service scolarité qui gère les préinscriptions, le suivi des dossiers inscrits à l'I.U.F.M. ainsi que le versement des allocations aux étudiants de première et de deuxième année, 3. Le service du personnel et des moyens qui assure la gestion du personnel administrat if et enseignant de l'I.U.F.M., des moyens nécessaires à la pédagogie et à l'enseignement dans les centres. 4. Le service informatique de gestion qui est chargé de donner aux trois autres services les moyens informatiques (logiciels et matériels) ainsi que dans chaque centre, ses principales activités sont :  La maintenance des réseaux (il y en à trois, voir le chapitre V),  L'installation et la maintenance du matériel informatique,  L'installation et la maintenance des logiciels informatiques,  La formation du personnel des centres sur des progiciels,  Le traitement et la maintenance des bases de données,  L'achat de matériel informatique (ils ont leur propre budget). La particularité de ce service est qu'il est autonome vis-à-vis des autres services et ne dépend que de la direction générale. On peut le voir sur le schéma hiérarchique de la page suivante (numéro six).
  8. 8. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Equipe de Direction Siège de Versailles Service Comptable Service du Personnel et des Moyens Service Scolarité Service Informatique Page 8 sur 99 Directeur de Centre Service administratif et Financier Administration Centre d'Antony Jouhaux V ) Les différents réseaux Pédagogie Directeur de Centre Service administratif et Financier Administration Pédagogie Directeur de Centre Service administratif et Financier Administration Pédagogie Centre d'Etiolles Directeur de Centre Service administratif et Financier Administration Pédagogie Centre de St Germain en Laye Centre d'Antony Val de Bièvre Directeur de Centre Service administratif et Financier Administration Pédagogie Centre de Versailles Directeur de Centre Service administratif et Financier Administration Pédagogie Centre de Cergy Bien sur l'équipe de direction est en relation directe avec le directeur de chaque centre ainsi que les autres services du siège qui sont en rapport avec le chef du service administratif et financier de chaque centre. Le service informatique agit surtout dans les services administratifs et pédagogiques des six centres.
  9. 9. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Il existe trois réseaux pour chaque centre de l'I.U.F.M. de Versailles, les serveurs se trouvent au siège et pour chaque service se trouve un réseau spécifique :  Le service scolarité a un réseau qui s'appuie sur une base de donnée placée dans chaque centre de l'I.U.F.M. La base de donnée "Prothée" contient les étudiants actuellement inscrits dans ces centres mais aussi ceux qui ont déposés leurs dossiers d'inscription pour cette année. Le nom du serveur est "Bécassine" sous Windows NT et cette base de données est administrée sous Oracle. Le logiciel qui gère les inscriptions s'appelle lui aussi "Prothée", et c'est à partir de ce logiciel que le personnel du service informatique et administratif de chaque centre va gérer toutes les informations sur les candidats qui préparent un certificat dans un centre I.U.F.M.  Le service du personnel et des moyens est équipé d'un réseau pour l'administration de son personnel administratif et enseignant. Ce réseau fonctionne sous une application nommée "G2i" et ne peut être utilisé que sur des ordinateurs de type Macintosh. Malheureusement ce réseau va être abandonné car il y a eu trop de maintenance à faire.  Le service comptable s'est vu imposé une comptabilité centralisée depuis l'intervention du ministère de l'éducation nationale en 1994. Elle a donc son propre réseau de type client/serveur dont le serveur se trouve au siège. L'application "Gérico" utilise le système de base de données relationnel Oracle sous Unix. La particularité de ce réseau est que les ordinateurs clients fonctionnent en émulation de terminal VT220. Chaque opérateur dans les centres saisisse leurs dépenses sur leurs postes et la comptabilité générale du siège de l'I.U.F.M. engage le paiement des factures. Page 9 sur 99
  10. 10. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 2 LES OBJECTIFS Avant d’expliquer comment j’ai procédé à l’élaboration du cahier des charges, je vais expliquer où j’interviens dans le cycle des préinscriptions au C.A.P.E. des candidats. Depuis que les I.U.F.M. existent, les inscriptions se font par dossier ou par concours. Comme l’I.U.F.M. de Versailles doit gérer les candidats de l’académie de Versailles, il y a beaucoup de demandes. Depuis l’ année dernière, les préinscriptions se font par « Minitel ». Chaque candidat s’inscrit en donnant des informations diverses comme par exemple les diplômes qu’il a obtenus, et à partir de ces informations, le centre de Cergy va générer un fichier et l’envoyer au siège à Versailles. Le service informatique va transformer ce fichier et l’importer dans la base de données « Prothée » en pratiquant quelques routines de vérification (dé doublonnage, saisie de dossier non valide, ...). A partir des données recueillies, le service scolarité prépare un dossier pour le candidat et l’envoie par la poste en fixant un rendez -vous dans un centre pour valider le dossier dûment rempli. Le jour ou le candidat se présente à un centre d’I.U.F.M., une personne du service scolarité va saisir les informations sur le dossier que le candidat a rapporté ainsi qu’un justificatif des pièces demandées (diplôme certifié, une fiche de salaire indiquant que le candidat à travailler, etc. ...). Pendant la saisie du dossier, le candidat peut voir les informations qui sont mises par le biais d’un moniteur, un autre étant à la disposition de la personne qui inscrit le candidat sur un logiciel nommé « Prothée » qui a été conçus pour la saisie des préinscriptions. La saisie étant finie, ses données sont directement validées dans la base de données. Lorsque la date d’inscription est dépassée et que chaque centre à valider tous les candidats, le service informatique va trier tous ces candidats selon des critères de « barémage ». Une fois les candidats triés, le service va gérer les admissions dans les centres d’après un quota de place pour chacun d’entre eux, puis des listes de chaque centre vont être imprimées ainsi que des statistiques pour la direction du siège. Tous les candidats admissibles seron t traités par une commission de validation et recevront une lettre indiquant que leur candidature a été acceptée ou refusée. L'objectif du stage à l'I.U.F.M. de Versailles dans le service informatique est de reprendre le programme du tri et des admissions des candidats inscrits pour la préparation au C.A.P.E. de l'année 1996 en vue de l'améliorer. Le programme "voeu.sql" dont le script se trouve au chapitre III (les scripts) ne convenait plus pour cette année car le barémage et les voeux ont changé ainsi que les critères de sélection des différents candidats. Donc à la demande de Monsieur Vieux-Combe, un cahier des charges 'Affect97' a été établi pour spécifier les demandes, d'une part pour l'utilisateur du service informatique et d'autre part pour celui du service scolarité. Le nouveau programme demandé sera écrit en PL/SQL pour être lancé sur l'outil SQL*PLUS d'Oracle. L'un des directeurs assistants du centre de Versailles, Madame Quittet, a proposé un tri de chaque candidat très poussé pour éviter les égalités entre eux, de plus un rang académique leur sera affecté pour les classer hiérarchiquement. Le principe du tri des candidats ne concerne que les inscrits qui ont une note de barème supérieur ou égale à trente et vérifie bien si les candidats atypiques sont inclus et qu'ils ont bien obtenu une note d'entretien différent de zéro. Page 10 sur 99
  11. 11. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Les candidats "dérogataires" quant à eux sont gérés directement par une procédure qui les affectent dans les centres demandés, car ils sont bien entendus prioritaire sur les autres candidats. La première étape du stage à été de faire un planning des différentes étapes de conception du programme :  Le cahier des charges pour spécifier les besoins des utilisateurs,  La conception du programme en faisant des algorithmes,  La réalisation du programme et les divers tests de vérification,  Et la validation du programme : mise en place du programme sur le serveur NT ainsi que son Mai Juin mercredi 7 au jeudi 22 au jeudi 29 au mardi 17 au mercredi 21 mercredi 28 lundi 16 jeudi 19 PLANNIFICATION du projet 'Affect97'. Cahier des charges (spécifications et besoins) (algorithmes) Réalisation et Tests (codage du programme) (utilisation) TOTAL en jour * : 29 9 5 13 2 Page 11 sur 99 exécution. Voici la première version du diagramme de GANT du projet : Conception Validation Mais suite à des modifications de critères pendant le projet et suite aux enjeux des jalons finaux, voici la dernière version :
  12. 12. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Pour mieux distinguer les différentes étapes de conception, voici le cycle de vie : Du 12/05 au 21/05 Du 17/06 au 19/06 Du 22/05 au 16/06 Page 12 sur 99 Spécification - Etudes des besoins Cahier des charges Validation Mise en place du Programme Conception Algorithmes Tests Jeux de tests Réalisation Codage en PL/SQL
  13. 13. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 13 sur 99 3 LE CAHIER DES CHARGES 3.1 Introduction L’Institut Universitaire de Formation des Maîtres de l’Académie de Versailles est le centre de direction et de gestion des différentes formations des futurs enseignants. Le siège de l’I.U.F.M. de Versailles gère six centres de formation : Cergy, Versailles, Antony Val de Bièvre, Etiolles, Saint Germain en Laye et Antony Jouhaux qui préparent la formation au Certificat d’Aptitude de Professorat d’Enseignement Secondaire. Leur rôle est d’assurer la préparation des étudiants au concours de l’Educa tion National des professeurs d’écoles. Des candidats s’inscrivent sur le Minitel pour préparer leur propre formation de professeur avant la fin du mois de Mai. Les informations recueillies seront retranscrites dans une base de données appelée « Prothée ». Le service scolarité du siège de Versailles qui gère les admissions demande au service informatique d’écrire un programme concernant les candidats de première année pour les postes de professeurs d’écoles. Le programme devra trier par ordre décroissant chaque candidat suivant une note de barème (un étudiant est « barèmé » suivant les diplômes obtenus et les différents stages qu’il a effectués). Des critères de sélection supplémentaires sont ajoutés pour traiter les égalités entre les différentes personnes, dans un premier temps on comparera les notes obtenues à la préprofessionnalisation (un second tri sera effectué par ordre de grandeur : de la note la plus forte à la plus faible), si on n'arrive toujours pas à les départager dans un deuxième temps on se basera sur les critères suivants dans cet ordre : si le candidat a fait au moins six mois de service d'enseignement ou de surveillance ou périscolaire dans un établissement scolaire ou d'activité périscolaire; si il a eu une activité péri - éducative ou périscolaire dans le cadre d'une institution (établissement scolaire, municipalité ou association) avec au moins deux expériences distinctes pendant une durée de six semaines cumulées ou de soixante heures de soutien scolaire; si il a eu une activité salariée de six mois à temps plein autre que l'enseignement; et dans l'ordre si il a obtenu le Brevet d'Aptitude à la Formation de Directeur de centre ou le Brevet d'Aptitude à la Formation d'Animateur de centre, ou le Brevet d'Education Sportive ou le Brevet National de Secourisme. Si on n'arrive toujours pas à les départager, le dernier critère sera l’âge du candidat tout en favorisant les plus jeunes (un troisième tri sera effectué toujours par ordre de grandeur : du plus jeune au plus vieux), puis on attribuera un rang pour chaque candidat. Une fois le tri fini, il ne reste plus qu’à affecter un centre pour chaque candidat suivant le nom de département sélectionné (le candidat avait choisi les cinq départements par ordre de préférence), ensuite le programme décrémentera le nombre d’inscription possible du centre où il est inscrit provisoirement. A la fin du programme, les meilleurs élèves retenues dans les cinq départements seront mis dans une liste à la disposition du service scolarité. 3.2 Analyse de l’existant
  14. 14. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 3.2.1 Le matériel L’utilisation du programme se fera sur le serveur Windows NT appelé « Bécassine » qui a un accès direct sur la base de données. Voici sa configuration actuelle :  C'est un ordinateur de type P.C. équipé de 2 processeurs Pentium 100 et qui est muni Page 14 sur 99 d’un moniteur,  Une mémoire vive (RAM) de 64 Méga Octets,  Un disque dur d’une capacité de 2,1 Giga Octets pour disposer des différents logiciels,  Une carte réseau Ethernet (LAN) de type 3COM. 3.2.1.1 Les logiciels L’ordinateur P.C. est muni du système d’exploitation DOS version 6.22 avec Windows NT version 3.5.1. L’application PL/SQL sur la base de données fonctionnera sous ORACLE version 7 avec ses outils de développements pour Windows (on aura surtout besoin du logiciel SQL*PLUS). 3.3 Etude du système 3.3.1 Analyse des besoins non-fonctionnels 3.3.1.1 Le développement Le développement du logiciel s’effectuera sur un ordinateur P.C. de type Pentium 200 avec 32 Méga Octets de mémoire vive connecté qui est au réseau sur la base de données, un disque dur de 2,1 Giga Octets servira de support permettant ainsi d’effectuer des tests sur des bases fictives afin de déboguer le programme avant son utilisation finale. Cela permettra aussi au développeur de mesurer la place mémoire requise pour les données stockées ainsi que la place disponible pour le support de fichier. Cette évaluation servira entre autres à l’examen des capacités d’adaptation du logiciel (par exemple la création de tables temporaires). 3.3.1.2 L’utilisateur Il doit se trouver sous Oracle dans la base de données « Prothée » pour lancer le programme écrit en PL/SQL qui portera le nom de « affect97.sql ». Le programme demandera des informations à l’utilisateur afin d’optimiser le tri des candidats, selon des critères de choix sur les différentes formations à traiter. Des messages indiquant des erreurs à la fin du tri ou exceptionnellement pendant celui-ci seront répertoriés dans une table. Il se terminera par l’affichage d’informations indiquant à l’utilisateur que le tri est fini, ensuite il pourra visualiser le résultat final.
  15. 15. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 3.3.2 Analyse des besoins fonctionnels 3.3.2.1 Services offerts à l’utilisateur du service informatique La première étape du programme lors de son exécution sera de sélectionner les candidats dont le numéro de dossier commencera par l’année en cours (exemple ‘97’) ainsi que le nom de la formation (par exemple on peut demander la première lettre : ‘E’ pour PE, signifiant Professeur d’Ecole) ce qui permettra à l’utilisateur de traiter les différents types de formation. Le programme n’est plus interrompu lorsqu'il est lancé sauf erreur grave, par exemple aucun moyen d’accès à une table. Pour chaque candidat un rang lui sera attribué, donc les affectations se feront par ordre décroissant des notes de barème obtenues par celui-ci. Pour chaque note de barème (inclus entre 30 et 69), on va traiter les égalités entre les candidats par des critères de sélections (le tri se fait séquentiellement) :  1er critère : on repartit chaque candidat par note de préprofessionnalisation (il y en a six Page 15 sur 99 : 0, 3, 5, 6, 8, 10),  2ème critère : pour chaque note de préprofessionnalisation on répartira les candidats en deux blocs : ceux qui ont fait six mois d'enseignement ou non,  3ème critère : puis de ces deux blocs on repartitionnera ceux qui ont eu une expérience péri-éducative (ou périscolaire) ou pas,  4ème critère : puis de ces deux blocs on repartitionnera ceux qui ont eu une expérience de salariée ou non,  5ème critère : pour départager définitivement les candidats, on regarde si ils ont obtenu un ou plusieurs brevets (valeur possible : 1, 2, 3) et on les départage dans quatre blocs différents (0 : pas de brevet, 1 : B.A.F.D. 2 : B.A.F.A. ou B.E.S. 3 : B.N.S.)  Le dernier critère triera les candidats suivant leur âge tout en favorisant les plus jeunes dans chaque bloc. Puis on ajoutera tous ces derniers blocs triés dans la table des candidats admissibles.
  16. 16. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 8 10 0 Note préprofessionalisation candidat déjà trié : note de barème compris entre 47 et 69. Tous les candidats triés : note de barème égale à 46. Voici un exemple de répartition du tri séquentiel par critère de sélection Page 16 sur 99 30 31 ... 46 ... 69 70 3 5 6 0 8 0 5 0 5 Table C A NDIDATURE Note d'enseignement A ctiv ité péri-éducativ e 0 5 0 5 0 5 0 5 activ ité de salariée 0 1 2 3 0 1 2 3 note des brev ets tri de chaque bloc par ordre croissant de l'âge des candidats. on rajoute tous les bloques à la table des candidats triés.
  17. 17. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 17 sur 99 D'autres conditions ont été rajoutées :  Les candidats atypiques (personne qui a un diplôme de plus de cinq ans et qui veut préparer le concours de professeur des écoles) sont inclus dans le tri, il suffira tout simplement de vérifier un champ d'une table pour savoir s’il a passé un entretien. Bien entendu il faudra qu'il ait une note de barème supérieur ou égale à trente.  Les candidats dérogataires (mère de trois enfants et plus ou sportif de haut niveau) vont directement être admis dans les centres qu'ils ont souhaités à la condition d'avoir obtenu une note d'entretien égale à soixante dix. Si des erreurs sont constatées pendant le tri alors elles seront rapportées dans une table qui sera créée à cet effet. L’utilisateur pourra donc les regarder pendant le programme sans perturbation du tri. Un scénario sera remis à la disposition de l’utilisateur afin de le guider dans les différentes étapes possibles du programme. 3.3.2.2 Services offerts à l’utilisateur du service scolarité Une liste finalisée sera mise à la disposition pour le service scolarité, elle comportera les informations du candidat admissible de la façon suivante :  Le numéro de dossier,  Le numéro de candidature,  Le nom du candidat,  Le prénom du candidat,  L’adresse du candidat,  Les 5 départements qu’il a sélectionnés par ordre de préférence,  Le nom du département où il a été admis,  La formation souhaitée,  La note de barème,  Le rang définitif du candidat. A la visualisation, l’utilisateur pourra remarquer que le nom du département qui a été attribué au candidat est suivis d’une étoile, on pourra ainsi connaître lequel de ses voeux a été sélectionné. 3.4 Evolution du programme Le programme sera modulaire, ainsi l’utilisateur pourra le modifier sans gêner le coeur du programme principal car le PL/SQL est un langage procédure, on peut ainsi ajouter des fonctions ou des procédures.
  18. 18. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Des commentaires seront implantés dans le programme pour aider l’utilisateur à changer la configuration du programme, ainsi des petits modules d’exemples seront rajoutés afin de faciliter la compréhension. Certaines erreurs seront gérées par des exceptions, ceci permettra de les répertorier dans une table en donnant la solution. On peut demander d'autre renseignement lors du lancement du programme. Page 18 sur 99
  19. 19. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 19 sur 99 4 LE PROGRAMME 4.1 Principe de fonctionnement Nous travaillons sur une base de données avec des tables. Comme le programme est écrit en PL/SQL et que c'est un langage procédural nous pouvons modulariser celui-ci avec des procédures ou des fonctions. Afin de faciliter la compréhension des algorithmes, chaque table sera représentée par un tableau contenant une structure du type de la table employé à chaque case. Pour aller dans les cases et récupérer les informations il suffira d'un indice alors qu'avec le langage SQL il faut tout simplement faire un 'SELECT'. Le programme va trier les candidats par critère, dans la base on a besoin des tables qui détiennent les informations dont on a besoin :  La table CANDIDATURE contient le numéro de dossier et de candidature, la formation souhaitée, les cinq départements rangés par ordre de préférence ou souhaite étudier le candidat (les voeux) ainsi que la note de barème,  La table ETUDIANT contient le nom usuel, le prénom, la date de naissance et l'adresse complète du candidat,  La table BAREME_INDIVIDUEL contient la note de préprofessionnalisation, sensibilisation ainsi que la note du brevet obtenu ou encore la note d'entretien pour les dérogataires. On peut savoir si des "items" ont été cochés : si le candidat à six mois d'enseignement, une activité péri -éducative ou périscolaire, une activité salariée de plus de six mois. A partir de ces tables, le programme va en créer d'autres :  La table CANDIDAT_TRIE : tous les candidats validés seront triés par ordre croissant du rang avec une note de barème compris entre 30 et 69,  La table ERREUR_CANDIDAT : elle reportera les erreurs rencontrées sur des candidats comme par exemple l'oublie de mettre un cinquième département dans les voeux (on ne sait jamais),  Les tables ADMIS_ANTONY_VdB, ADMIS_CERGY, ADMIS_ETIOLLES, ADMIS_ST-GERMAIN et ADMIS_VERSAILLES contiendront les informations relatives aux candidats qui sont admissibles dans ces centres, elles formeront chacune une liste qui sera traitée par une autre personne du service informatique, Remarque : la table CAPACITE_CENTRE sera créée avant le programme. Elle renfermera toutes les informations concernant les cinq centres où seront admis les candidats. Le programme aura surtout besoin du quota de chaque centre pour y placer chaque candidat. A la fin du programme, une mise à jour sera effectuée dans la table CANDIDATURE pour y valider le champ 'formation' qui contiendra le nom de la formation que le candidat a souhaité, 'dossier_recevable' et 'admission' s'il a bien été admis dans un centre (O pour oui et N pour Non). La table CAPACITE_CENTRE a un champ 'quota_centre_restant' dont la valeur finale sera attribuée par le programme.
  20. 20. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 20 sur 99 4.2 Les structures 4.2.1 La table des candidats triés // STRUCTURE Type CANDIDAT_TRIE : Article {renseignement relatif au candidat} no_dossier : chaîne de caractère, no_candidature : réel, formation : caractère, {les cinq départements choisis par le candidat} departement1 : chaîne de caractère, departement2 : chaîne de caractère, departement3 : chaîne de caractère, departement4 : chaîne de caractère, departement5 : chaîne de caractère, {les critères de sélection} note_bareme : réel, { note de barème  [30..69] } preprofessionnalisation : caractère, { la note de prepro.  {0,3,5,6,8,10} } date_naissance : date, { sous la forme DD-MM-YY } date_retour_dossier : date, {le candidat est valide si la date > 01-01-1900} { renseignement complémentaire sur ses autres notes obtenu par le candidat} enseignement : caractére { 'O' pour oui ou 'N' pour non } peri_educ_scol : caractére { 'O' pour oui ou 'N' pour non } activite_salarie : caractére { 'O' pour oui ou 'N' pour non } note_brevet : réel { note compris entre 0,1,2,3 } {chaque candidat sera classé par la note de barème la plus forte à la plus faible} rang : entier; // TABLEAU Type T_CANDIDAT_TRIE : tableau[1..nb_candidat] de CANDIDAT_TRIE Chaque case du tableau T_CANDIDAT_TRIE contient la structure CANDIDAT_TRIE concernant un candidat. Pour aller d'un candidat à un autre, il suffit de prendre un indice inclus entre un et le nombre total de candidats inscrits dans la table. 4.2.2 La table des capacités des centres // STRUCTURE Type CAPACITE_CENTRE : Article
  21. 21. Rapport de stage à l’IUFM de Versailles Frédéric Sagez { le code du centre est égal au nom du département pour faciliter la recherche } code_centre : chaîne de caractère, { place totale dans un centre } quota_centre_initial : réel, { place restante dans un centre } quota_centre_restant : réel, { nombre total de candidat atypique dans chaque centre } nbre_atypique : réel, { nombre total de candidat derogataire dans chaque centre } nbre_derogataire : réel, { nom du centre en entier } nom_du_centre : chaîne de caractère; // TABLEAU { type énumération } T_indice_centre = ( ANTONY_VdB, CERGY, ETIOLLES, ST-GERMAIN, VERSAILLES ) Type T_ CAPACITE_CENTRE : tableau[T_indice_centre] de CAPACITE_CENTRE Chaque centre a son propre quota de place de candidat admissible. Le quota restant du centre sera mis à jour lorsque tous les candidats auront été admis, donc à la fin des attributions le résultat devra être égal à zéro. Le code pour chaque centre est :  ANTONY_VdB : "92V" (Antony Val de Bièvres)  CERGY : "95"  ETIOLLES : "91"  ST-GERMAIN : "78S" (Saint Germain en Laye)  VERSAILLES : "78V" Page 21 sur 99 4.2.3 La table des erreurs sur les candidats // STRUCTURE Type ERREUR_CANDIDAT : Article message : chaîne de caractère; // TABLEAU Type T_ ERREUR_CANDIDAT : tableau[1..nb_erreur] de ERREUR_CANDIDAT Le tableau contiendra toutes les erreurs rencontrées lors du tri des candidats. Par exemple un candidat a oublié de mettre un cinquième département, le message d'erreur indiquera la position du candidat dans la table CANDIDATURE est le type d'erreur lui concernant : département numéro cinq manquant.
  22. 22. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 4.2.4 La table des admissions dans les centres Page 22 sur 99 // STRUCTURE Type ADMIS_nom du centre : Article {renseignement relatif au candidat} no_dossier : chaîne de caractère, no_candidature : réel, nom_usuel : chaîne de caractère, prénom : chaîne de caractère, adresse : chaîne de caractère, code_postal : chaîne de caractère, ville : chaîne de caractère, {les cinq départements choisis par le candidat} departement1 : chaîne de caractère, departement2 : chaîne de caractère, departement3 : chaîne de caractère, departement4 : chaîne de caractère, departement5 : chaîne de caractère, {détermine quel numéro de département où le candidat est affecté par une étoile} no_departement1 : caractère, no_departement2 : caractère, no_departement3 : caractère, no_departement4 : caractère, no_departement5 : caractère, {indique le nom du département où le candidat est admis} departement_choisis : chaîne de caractère, { le nom de la formation souhaitée par le candidat } formation : caractère, { on inclus les dérogataires qui ont une note de bareme > 69 } note_bareme : réel, { note de barème  [30..90] } {chaque candidat sera classé par ordre croissant du rang} rang : entier; // TABLEAU Type T_ ADMIS_nom du centre : tableau[1..nb_candidat_par_centre] de ADMIS_nom du centre  Il y aura cinq tableaux correspondant aux centres d'ANTONY Val de Bièvre, CERGY, ETIOLLES,
  23. 23. Rapport de stage à l’IUFM de Versailles Frédéric Sagez ST-GERMAIN et VERSAILLES (nom du centre). Chaque centre a un nombre maximum de candidat (représenté par 'nb_candidat_par_centre'), par exemple le centre de Cergy avait une capacité de 800 places l'année dernière. La structure donne plus de renseignements sur le candidat admissible, cela facilitera le travail de la personne qui gérera les admissions pour chaque centre. Le programme SQL pour créer les tables se trouve en annexe. Affichage d'un message d'invite avec demande d'information Saisis des valeurs demandées à l'affichage {On va se servir des tables CANDIDATURE, ETUDIANT et BAREME_INDIVIDUEL pour prendre les informations de chaque candidat} Appel de la procédure de tri des candidats {la table CANDIDAT_TRIE est créée contenant les candidats valides à l'admission} {une table ERREUR_CANDIDAT sera créée s'il y a eu une ou des erreurs sur les candidats inscrits} {on ajoute les dérogataires dans les centres en leur mettant un rang égal à zéro} Appel de la procédure d'ajout des dérogataires {les cinq tables pour les centres seront créées} Appel de la procédure d'attribution des centres {les cinq tables pour les centres sont remplies} {les champs 'formation', 'dossier_recevable' et 'admission' de la table CANDIDATURE seront modifiés par l'utilisateur du service informatique} Mise à jour des candidats admissibles {met à jour le nombre total de dérogatiare et d'atypique dans chaque centre} Appel de la procédure Met_le_nombre_de_derogataire Appel de la procédure Met_le_nombre_d_atypique Page 23 sur 99 4.3 Le programme principal Le programme principal fonctionnera de la façon suivante : DECLARATION des variables globales. DEBUT FIN Comme on peut le constater, le programme suit des étapes. Les principales sont le tri des candidats et l'attribution de candidats dans chaque centre. L'utilisateur peut ainsi en ajouter d'autres comme par exemple l'affichage de table entre les diverses procédures pour vérifier que tous c’est bien déroulé. Ou sinon, il peut effectuer un tri dans un premier temps et plus tard, relancer le programme en ne faisant que les admissions. Le programme SQL du programme principal se trouve en annexe.
  24. 24. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 4.4 Description de la procédure de tri des candidats Cette procédure va trier tous les candidats inscrits qui se trouvent dans la table CANDIDATURE par ordre décroissant des notes de barème selon les critères suivant :  La note de barème compris entre 30 et 69,  La date de retour de dossier supérieur au 01-01-1900,  Tous les renseignements que le programme a besoin sur le candidat sont biens mis,  On traite les égalités entre chaque candidat par la note de préprofessionnalisation, les critères de sélection ainsi que de l'âge en cas d'égalité persistante. Page 24 sur 99 Procédure TRI_CANDIDAT( affiche_erreur : booléen ) Précondition : le tableau T_CANDIDATURE existe et remplit avec au moins un candidat la saisie du numéro de dossier ainsi que de la formation doit être validé Effet : le tableau T_CANDIDAT_TRIE est créée et remplit selon des critères de sélection si des erreurs sont rencontrées alors affiche_erreur prendra la valeur VRAI pour indiquer qu'il y a eu des erreurs sur certain candidat Variables auxiliaires : indice : 1..nb_candidat {nombre total de candidat inscrit} indice_note_bareme : 30..69 {la note de barème doit être >= 30} test_erreur : booléen {indique que des erreurs existent} {variable indiquant le nombre total de candidat valide pour l'admission} nb_candidat_total : nb_candidat - nb_candidat_non_valide {variable indiquant le nombre total de candidat qui ont la même note de barème} nb_candidat_par_note_de_bareme : entier indice_DESC : 1..nb_candidat_total {nombre total de candidat inscrit} {Le tableau contient tous les candidats valident pour l'admission} Type T_CANDIDAT_DESC : tableau[1..nb_candidat_total] de CANDIDAT_TRIE {Le tableau contient tous les candidats qui ont la même note de barème pour effectuer des opérations de tri sur les égalités} Type T_CANDIDAT_TEMP : tableau[1..nb_candidat_par_note_de_bareme] de CANDIDAT_TRIE Début // Ici création de la table temporaire CANDIDAT_DESC test_erreur := FAUX {aucune erreur avant de commencer le traitement} indice_DESC := 0 {initialise l'indice du tableau destination} Pour indice de 1 à nb_candidat Faire {on traite tous les candidats et test si il n'y a pas d'erreur} Initialise_T_CANDIDAT_DESC(indice, saisie_numero_dossier, saisie_formation,test_erreur, indice_DESC) Fin Pour {on tri chaque candidat par sa note de barème par ordre décroissant dans le tableau T_CANDIDAT_DESC } Tri_par_note_de_bareme(saisie_numero_dossier, saisie_formation) {on commence le tri par la note de barème la plus grande du tableau T_CANDIDAT_DESC jusqu'à la plus petite} Pour indice_note_bareme de 69 à 30 Faire {il faut au moins un candidat sinon on ne traite pas} Si ( Nombre_de_candidat_par_note_de_bareme(indice_note_bareme) ) Alors // Ici création de la table temporaire CANDIDAT_TEMP {on sélectionne tous les candidats qui ont la même note de barème et on les range dans le tableau T_CANDIDAT_TEMP} Selectionne_Candidat_pour_table_temporaire(indice_note_bareme, saisie_numero_dossier, saisie_formation)
  25. 25. Rapport de stage à l’IUFM de Versailles Frédéric Sagez {tri les candidats dans le tableau T_CANDIDAT_TEMP par la note de Page 25 sur 99 preprofessionnalisation} Tri_par_note_de_prepo(saisie_numero_dossier, saisie_formation) // on supprime ici la table temporaire CANDIDAT_TEMP Fin Si Fin Pour {affecte un rang pour chaque candidat} Classement_table_trie(saisie_numero_dossier, saisie_formation) {si il s'est produit une erreur lors de l'appel de la procédure Initialise_T_CANDIDAT_DESC, 'affiche_erreur' aura la valeur 'VRAI' } affiche_erreur := test_erreur // On supprime ici la table temporaire CANDIDAT_DESC Fin TRI_CANDIDAT; L'objectif de cette procédure et d'épurer tous les candidats non valident et de les rangés par ordre de classement. Comme le nombre de candidat est grand (plus de 9000), l'algorithme est optimisé pour ne pas perdre de temps, par exemple il ne traite que les candidats qui ont une note de barème supérieur ou égale à trente (c’est le minimum pour s'inscrire en 1ère année de P.E. car trente points équivaut à une licence). Remarque: les variables 'saisie_numero_dossier' et 'saisie_formation' sont des variables globales du programme principal, on les appels dans la procédure TRI_CANDIDAT afin d'optimiser la recherche des candidats. 4.4.1 Description de la procédure Initialise_T_CANDIDAT_DESC Elle va trier chaque candidat de la table CANDIDATURE et les mettre dans la table CANDIDAT_TRIE : on effectue un premier tri des candidats admissibles. S'il y a des erreurs sur un candidat alors on indiquera sa position exacte dans la table CANDIDATURE et les types d'erreurs rencontrées. Procédure Initialise_T_CANDIDAT_DESC(Entrée : l_indice : 1..nb_candidat, le_numero_dossier : réel, la_formation : chaîne de caractère, Sortie : test_l_erreur : booléen, Entrée/Sortie : mon_indice : 1..nb_candidat_total) Précondition : le début du numéro de dossier <> 0,0 le début du nom de la formation <> d'une chaîne vide mon_indice > 0 Effet : le candidat valide se trouve dans le tableau T_CANDIDAT_DESC si une erreur existe alors la procédure renvoie 'VRAI' pour indiquer au programme principal qu'il devra afficher le contenu du tableau T_ERREUR_CANDIDAT lorsque le programme est fini. Variables auxiliaires : verifie : booléen {test si il y a eu une erreur pour ne pas incrementer le compteur 'mon_indice' du tableau T_CANDIDAT_DESC qui reçoit les valeurs} {il faut initialiser les variables avant de les affecter pour déterminer une erreur} Constante carac_no_dossier : chaîne de caractère := "##########" carac_no_candidature : réel := 0.0 carac_formation : chaîne de caractère := "####" carac_departement : chaîne de caractère := "###" carac_note_bareme : réel := 0.0 carac_note_prepo : caractère := '#' carac_date_naissance : chaîne de caractère := "##-##-##" carac_date_retour_dossier : chaîne de caractère := "##-##-##"
  26. 26. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 26 sur 99 Début verifie := FAUX {aucune erreur avant de commencer le traitement} {initialise mes variables qui vont recevoir les données} T_CANDIDAT_DESC[mon_indice].no_dossier := carac_no_dossier T_CANDIDAT_DESC[mon_indice].no_candidature := carac_no_candidature T_CANDIDAT_DESC[mon_indice].formation := carac_formation T_CANDIDAT_DESC[mon_indice].departement1 := carac_departement T_CANDIDAT_DESC[mon_indice].departement2 := carac_departement T_CANDIDAT_DESC[mon_indice].departement3 := carac_departement T_CANDIDAT_DESC[mon_indice].departement4 := carac_departement T_CANDIDAT_DESC[mon_indice].departement5 := carac_departement T_CANDIDAT_DESC[mon_indice].note_bareme := carac_note_bareme T_CANDIDAT_DESC[mon_indice].note_prepo := carac_note_prepo T_CANDIDAT_DESC[mon_indice].date_naissance := carac_date_naissance T_CANDIDAT_DESC[mon_indice].date_retour_dossier := carac_date_retour_dossier {traite le bon candidat et vérifie si il a bien retourné son dossier rempli} Si ( T_CANDIDATURE [l_indice].no_dossier = le_numero_dossier ET T_CANDIDATURE [l_indice].formation = la_formation ET T_CANDIDATURE[l_indice].date_retour_dossier > '01-01-1900' ) Alors T_CANDIDAT_DESC[mon_indice].no_dossier := T_CANDIDATURE [l_indice].no_dossier T_CANDIDAT_DESC[mon_indice].no_candidature := T_CANDIDATURE [l_indice].no_candidature T_CANDIDAT_DESC[mon_indice].formation := T_CANDIDATURE [l_indice].formation T_CANDIDAT_DESC[mon_indice].departement1 := T_CANDIDATURE [l_indice].departement1 T_CANDIDAT_DESC[mon_indice].departement2 := T_CANDIDATURE [l_indice].departement2 T_CANDIDAT_DESC[mon_indice].departement3 := T_CANDIDATURE [l_indice].departement3 T_CANDIDAT_DESC[mon_indice].departement4 := T_CANDIDATURE [l_indice].departement4 T_CANDIDAT_DESC[mon_indice].departement5 := T_CANDIDATURE [l_indice].departement5 T_CANDIDAT_DESC[mon_indice].note_bareme := T_CANDIDATURE [l_indice].note_bareme T_CANDIDAT_DESC[mon_indice].note_prepo := T_CANDIDATURE [l_indice].note_prepo T_CANDIDAT_DESC[mon_indice].date_naissance := T_CANDIDATURE [l_indice].date_naissance T_CANDIDAT_DESC[mon_indice].date_retour_dossier := T_CANDIDATURE [l_indice].date_retour_dossier // On test les erreurs une par une d'un candidat si il y en a {indique une erreur sur le numéro de dossier d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].no_dossier = carac_ no_dossier ) Alors {indique le n ième candidat de la table pour verifier ses données} Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de numéro de dossier"); verifie := VRAI Fin Si {indique une erreur sur le numéro de candidature d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].no_candidature = carac_ no_candidature ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de numéro de candidature"); verifie := VRAI Fin Si {indique une erreur sur la formation d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].formation = carac_ formation ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de formation ") verifie := VRAI Fin Si {indique une erreur sur le 1er departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement1 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 1er voeu") verifie := VRAI Fin Si {indique une erreur sur le 2ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement2 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 2eme voeu") verifie := VRAI Fin Si {indique une erreur sur le 3ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement3 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 3eme voeu")
  27. 27. Rapport de stage à l’IUFM de Versailles Frédéric Sagez verifie := VRAI Fin Si {indique une erreur sur le 4ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement4 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 4ème voeu") verifie := VRAI Fin Si {indique une erreur sur le 5ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement5 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 5ème voeu") verifie := VRAI Fin Si {indique une erreur sur la note de barème d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].note_bareme = carac_note_bareme ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de note de Page 27 sur 99 barème ") verifie := VRAI Fin Si {indique une erreur sur la note de prepro. d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].note_prepo = carac_note_prepo ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de note de preprofessionnalisation "); verifie := VRAI Fin Si {indique une erreur sur la date de naissance d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].date_naissance = carac_date_naissance ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de date de naissance "); verifie := VRAI Fin Si {indique une erreur sur la date de retour du dossier d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].date_retour_dossier = carac_date_retour_dossier Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de date de retour de dossier "); verifie := VRAI Fin Si Fin Si Si ( verifie ) Alors test_l_erreur := VRAI {erreur(s) de saisie sur un candidat} Sinon mon_indice := mon_indice + 1 {le candidat est enregistré dans le tableau} Fin Si Fin Initialise_T_CANDIDAT_DESC; 4.4.2 Description de la sous procédure Inscrit_Erreur La procédure Inscrit_Erreur est une sous procédure. Elle est appelée lorsque l'on a besoin d'écrire une ou des erreurs relatives à un candidat dans le tableau T_ERREUR_CANDIDAT. Procédure Inscrit_Erreur(Entrée: message : chaîne de caractère) Précondition : message : chaîne de caractère non vide Effet : met dans le tableau T_ERREUR_CANDIDAT le message d'erreur rencontré sur un candidat Variable auxiliaire : ind : 0..nb_erreur {indice du tableau} Début T_ERREUR_CANDIDAT[ind + 1].erreur_candidat := message Fin Inscrit_Erreur;
  28. 28. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 4.4.3 Description de la procédure Tri_par_note_de_bareme Dans un premier temps, on tri chaque candidat par ordre décroissant des notes de barèmes obtenues par celui-ci. Procédure Tri_par_note_de_bareme(Entrée : le_numero_dossier : réel, la_formation : chaîne de caractère) Précondition : le tableau T_CANDIDAT_DESC existe avec au moins 1 candidat Effet : le tableau T_CANDIDAT_DESC est triée par ordre décroissant des notes de barème Page 28 sur 99 Début Sélectionner TOUS Depuis le tableau T_CANDIDAT_DESC Ou T_CANDIDAT_DESC.no_dossier = le_numero_dossier Et T_CANDIDAT_DESC.formation = la_formation Par Ordre DECROISSANT note_de_bareme Fin Tri_par_note_de_bareme; 4.4.4 Description de la fonction Nombre_de_candidat_par_note_de_bareme Ensuite on regarde s’il existe bien des candidats avec la note de barème demandée, cela évite de faire des traitements inutiles. Fonction Nombre_de_candidat_par_note_de_bareme(Entrée: l_indice_note_bareme : 30..69) retourne booléen Précondition : 30 < la note de barème <69 le tableau T_CANDIDAT_DESC existe Effet : retourne la valeur VRAI si il y a bien des candidats à la note de barème indicée sinon elle retourne FAUX Variables auxiliaires : test_bareme : booléen {va indiquer le nombre total de candidat dans le tableau T_CANDIDAT_DESC} compteur : entier := 0 Début Sélectionne compteur := compteur + 1 Depuis le tableau T_CANDIDAT_DESC Ou note_bareme = l_indice_note_bareme Si ( compteur = 0 ) Alors test_bareme := FAUX {aucun candidat} Sinon test_bareme := VRAI {au moins un candidat} Fin Si Retourne test_bareme Fin Nombre_de_candidat_par_note_de_bareme; 4.4.5 Description de la procédure Selectionne_Candidat_pour_table_temporaire Chaque candidat avec la même note de barème vont être mis dans une table temporaire CANDIDAT_TEMP pour effectuer un autre tri plus sélectif. Procédure Selectionne_Candidat_pour_table_temporaire(Entrée: l_indice_note_bareme : 30..69, le_numero_dossier : réel, la_formation : chaîne de caractère)
  29. 29. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Précondition : le tableau temporaire T_CANDIDAT_TEMP doit être créé Effet : le tableau temporaire T_CANDIDAT_TEMP contient que les candidats qui ont tous la même note de barème provenant du tableau T_CANDIDAT_DESC Page 29 sur 99 Début Insérer dans le tableau T_CANDIDAT_TEMP Sélectionne TOUS Depuis le tableau T_CANDIDAT_DESC Ou T_CANDIDAT_DESC.no_dossier = le_numero_dossier Et T_CANDIDAT_DESC.formation = la_formation Et note_bareme = l_indice_note_bareme Fin Selectionne_Candidat_pour_table_temporaire; 4.4.6 Description de la procédure Tri_par_note_de_prepo Dans cette table temporaire CANDIDAT_TEMP on départage les égalités en rajoutant un critère : la note de préprofessionnalisation, on range les candidats par ordre décroissant. Procédure Tri_par_note_de_prepo(Entrée : le_numero_dossier : réel, la_formation : chaîne de caractère) Précondition : le tableau temporaire T_CANDIDAT_TEMP existe et non vide Effet : le tableau temporaire T_CANDIDAT_TEMP contient les candidats triés qui ont la meme note de bareme le tableau temporaire T_CANDIDAT_TEMP_SELECT contient les candidats triés qui ont la meme note de préprofessionnalisation Ce tableau une fois trié, ses valeurs seront ajoutées à la suite du tableau T_CANDIDAT_TRIE Variables auxiliaires : // Ce sont des caractères qui vérifient si la case est cochée 'O'ui ou 'N'on dans la table BAREME_INDIVIDUEL (leurs notes ne varient pas) Constantes {deux valeurs possibles du critère d'enseignement} note_enseignementOUI : caractère := 'O' note_enseignementNON : caractère := 'N' {deux valeurs possibles du critère de l'activité éducative} note_peri_educativeOUI : caractère := 'O' note_peri_educativeNON : caractère := 'N' {deux valeurs possibles du critère d'activité salariée} note_activite_salarialeOUI : caractère := 'O' note_activite_salarialeNON : caractère := 'N' enum_note_prepro : entier  {0,3,5,6,8,10} Début //on selctionne ce que l'on a besoin dans un curseur que l'on créait Pour indice_prepro inclus dans enum_note_prepro Faire {on selectionne les candidats par note de pré-professionnalisation d'ordre décroissant et on les ajoute dans un autre tableau temporaire T_CANDIDAT_TEMP_SELECT} Insérer le tableau T_CANDIDAT_TEMP_SELECT Sélectionne TOUS Depuis le tableau T_CANDIDAT_TEMP Ou T_CANDIDAT_TEMP.no_dossier = le_numero_dossier Et T_CANDIDAT_TEMP.formation = la_formation Et T_CANDIDAT_TEMP.note_prepro = indice_prepro Fin Pour // On effectue le tri selectif séquentiel par ordre de grandeur {tri de la première branche : la note d' enseignement est égale à huit}
  30. 30. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeOUI, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeOUI, note_activite_salarialeNON) Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeNON, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeNON, note_activite_salarialeNON) {tri de la deuxième branche : la note d' enseignement est égale à zéro} Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeOUI, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeOUI, note_activite_salarialeNON) Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeNON, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeNON, note_activite_salarialeNON) Page 30 sur 99 Fin Tri_par_note_de_prepo; 4.4.7 Description de la sous procédure Tri_par_critere_de_selection Dans la table temporaire CANDIDAT_TEMP_SELECT, on départage les égalités persistantes entre chaque candidat : pour chaque type de brevet obtenu ou non, on range les candidats par ordre croissant de leur date de naissance (du plus jeune au moins jeune). Procédure Tri_par_critere_de_selection(Entrée : note_enseigne, note_peri_edu, note_sal : caractère) Précondition : le tableau temporaire T_CANDIDAT_TEMP_SELECT existe et non vide Effet : le tableau T_CANDIDAT_TRIE contiendra les candidats triés par ordre croissant des dates de naissances Variable auxiliaire : note_brevet : 0..3 { la note de brevet  {0,1,2,3}} Début Pour note_brevet de 3 à 0 Faire Insérer dans tableau T_CANDIDAT_TRIE Sélectionne TOUS {tableaux contenant les informations dont on a besoin} Depuis les tableaux T_CANDIDAT_TEMP_SELECT, T_BAREME_INDIVIDUEL {lien pour les items} Ou T_CANDIDAT_TEMP_SELECT.no_dossier = T_BAREME_INDIVIDUEL.no_dossier {renseignement supplémentaire sur l'age de l'étudiant} Et T_CANDIDAT_TEMP_SELECT.no_dossier = T_ETUDIANT.no_dossier {on précise que l'on s'occupe des PE} Et T_BAREME_INDIVIDUEL.code_bareme = "PE97" {test la note d'enseignement > 6 mois} Et (T_BAREME_INDIVIDUEL.code_critere = 3 ET T_BAREME_INDIVIDUEL.choix = note_enseigne) {test la note d'activité educative} Et (T_BAREME_INDIVIDUEL.code_critere = 5 ET T_BAREME_INDIVIDUEL.choix = note_peri_edu) {test la note d'activité salariale} Et (T_BAREME_INDIVIDUEL.code_critere = 6 ET T_BAREME_INDIVIDUEL.choix = note_sal) {test la note du ou des brevets obtenus} Et (T_BAREME_INDIVIDUEL.code_critere = 8 ET T_BAREME_INDIVIDUEL.choix = note_brevet)
  31. 31. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Par Ordre CROISSANT T_ETUDIANT.date_naissance Page 31 sur 99 Fin Pour Fin Tri_par_date_de_naissance; 4.4.8 Description de la procédure Classement_table_trie On effectue une mise à jour du rang pour chaque candidat dans la table CANDIDAT_TRIE pour effectuer un classement. Procédure Classement_table_trie(Entrée: le_numero_dossier : réel, la_formation : chaîne de caractère) Précondition : le tableau T_CANDIDAT_TRIE est déjà créé et existe Effet : le tableau temporaire T_CANDIDAT_TRIE contient tous les candidats qui sont finalement triés et filtrés Début Mise à jour du tableau T_CANDIDAT_TRIE De la valeur rang := COMPTEUR(no_dossier) Ou T_CANDIDAT_TRIE.no_dossier = le_numero_dossier Et T_CANDIDAT_TRIE.formation = la_formation Par Ordre DECROISSANT note_de_bareme Fin Classement_table_trie; 4.5 Description de la procédure d'attribution des centres Pour effectuer les admissions des candidats dans chaque centre, on a besoin de deux tables : CANDIDAT_TRIE et CAPACITE_CENTRE. Des variables témoins seront consultées pour savoir s'il reste de la place dans les divers centres, cela permettra de ne pas parcourir la liste des candidats triés en entier d'où un gain de temps. Les listes finalisées de chaque centre permettent de visualiser tous les candidats admissibles (car ils ne sont pas encore admis) avec tous les renseignements les concernant. Procédure Attribution_des_Centres Précondition : le tableau T_CANDIDAT_TRIE existe et remplit le tableau T_CAPACITE_CENTRE existe et initialisé avant la procédure Attribution_des_Centres Création des cinq centres d'admission Effet : Les tableaux T_ADMIS_ANTONY_VdB, T_ADMIS_CERGY, T_ADMIS_ETIOLLES, T_ADMIS_ST-GERMAIN et T_ADMIS_VERSAILLES contiennent des listes de candidats admissibles. Chaque quota de centre restant sera mis à jour à la fin de la procédure Attribution_des_Centres Variables auxiliaires : // renseignement relatif de chaque centre {initialisation des quotas pour chaque centre, ce sont des entiers} CentreA_quota := T_CAPACITE_CENTRE[ANTONY_VdB].quota_centre_initial CentreC_quota := T_CAPACITE_CENTRE[CERGY].quota_centre_initial CentreE_quota := T_CAPACITE_CENTRE[ETIOLLES].quota_centre_initial CentreS_quota := T_CAPACITE_CENTRE[ST-GERMAIN].quota_centre_initial CentreV_quota := T_CAPACITE_CENTRE[VERSAILLES].quota_centre_initial {déclaration des tableaux pour les cinq centres} Type T_ADMIS_ANTONY_VdB : tableau[1.. CentreA_quota] de ADMIS_ANTONY_VdB Type T_ADMIS_CERGY : tableau[1.. CentreC_quota] de ADMIS_CERGY Type T_ADMIS_ETIOLLES : tableau[1.. CentreE_quota] de ADMIS_ETIOLLES Type T_ADMIS_ST-GERMAIN : tableau[1.. CentreS_quota] de ADMIS_ST-GERMAIN
  32. 32. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Type T_ADMIS_VERSAILLES : tableau[1.. CentreV_quota] de ADMIS_VERSAILLES {initialisation des codes de chaque centre, ce sont des chaines de caractères} Code_CentreA := T_CAPACITE_CENTRE[ANTONY_VdB].code_centre Code_CentreC := T_CAPACITE_CENTRE[CERGY].code_centre Code_CentreE := T_CAPACITE_CENTRE[ETIOLLES].code_centre Code_CentreS := T_CAPACITE_CENTRE[ST-GERMAIN].code_centre Code_CentreV := T_CAPACITE_CENTRE[VERSAILLES].code_centre {détermine si le quota de chaque centre n'est pas dépassé, variable booléenne initialisée} CentreA_libre := booléen := VRAI CentreC_libre := booléen := VRAI CentreE_libre := booléen := VRAI CentreS_libre := booléen := VRAI CentreV_libre := booléen := VRAI // renseignement relatif a un département sélectionné nom_departement : caractère {contiendra le nom d'un département} quota_du_departement : entier {place restante du centre} code_du_departement : chaîne de caractère {code du centre} attribution : booléen {indiquera si la candidat a trouvé un centre} no_departement : 1..5 {indique le numéro de departement du candidat} no_candidat : 1..nb_candidat_total {indice du tableau T_CANDIDAT_TRIE} Page 32 sur 99 Début // Il faut créer les cinq tables d'admission des centres no_candidat := 1 {on commence par traité le 1er candidat par ordre croissant du rang} {on va traiter chaque candidat un par un en commençant par la note de barème la plus forte jusqu'à la plus faible et on test si il reste de la place dans l'un des cinq centres} Tant Que ( ( CentreA_libre ET CentreC_libre ET CentreE_libre ET CentreS_libre ET CentreV_libre ) OU ( T_CANDIDAT_TRIE NON vide ) ) Faire {test si chaque centre a encore de la place; si il n'y en a plus, le booléen passe à FAUX} CentreA_libre := Test_place_Centre(CentreA_quota) CentreC_libre := Test_place_Centre(CentreC_quota) CentreE_libre := Test_place_Centre(CentreE_quota) CentreS_libre := Test_place_Centre(CentreS_quota) CentreV_libre := Test_place_Centre(CentreV_quota) {initialisation de valeurs} attribution := FAUX {le candidat n'a pas de centre} no_departement := 1 {on va traiter les cinq voeux du candidat} Pour nom_departement de T_CANDIDAT_TRIE[no_candidat].departement1 à T_CANDIDAT_TRIE[no_candidat].departement5 Faire {on prend les informations du centre demandé} Selection_Information_Centre(nom_departement,quota_du_departement, code_du_departement) {on attribue un centre si son quota est supérieur à zéro} Si ( NON attribution ) Alors attribution := Traite_le_Centre(nom_departement, no_departement,quota_du_departement, code_du_departement) Fin Si {passe au numéro de département suivant du candidat} no_departement := no_departement + 1 Fin Pour no_candidat := no_candidat + 1 {on traite le candidat suivant} Fin Tant Que {mise à jour des quotas restants de chaque centre} Mise_a_jour_des_Centres Fin Attribution_des_Centres; 4.5.1 Description de la procédure Test_place_Centre Elle a pour objet de vérifier le quota du centre sélectionné et indique s'il reste de la place de libre.
  33. 33. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Fonction Test_place Centre(Entrée : le_quota : entier) retourne booléen Précondition : le quota du centre est supérieur ou égal à zéro Effet : retourne FAUX si il n'y a plus de place dans un centre Variables auxiliaires : tel_valeur : booléen := VRAI {on suppose qu'il y a de la place dans Page 33 sur 99 un centre par défaut} Début Si ( le_quota <= 0 ) Alors tel_valeur := FAUX Fin Si Retourne tel_valeur Fin Test_place Centre; 4.5.2 Description de la procédure Selection_Information_Centre Cette procédure va servir à initialiser les variables ‘quota_du_departement’ et ‘code_du_departement’ pour ensuite vérifier si le candidat est admissible dans le centre désigné. Procédure Selection_Information_Centre(Entrée : le_nom_departement : caractère, Sortie : le_quota_du_departement : entier, le_code_du_departement : chaîne de caractère) Précondition : le_nom_departement : caractère non vide Effet : les variables quota_du_departement et code_du_departement contiennent les renseignements sur le centre Début Si ( le_nom_departement = 'A' ) Alors {Antony} quota_du_departement := CentreA_quota code_du_departement := Code_CentreA Fin Si Si ( le_nom_departement = 'C' ) Alors {Cergy} quota_du_departement := CentreC_quota code_du_departement := Code_CentreC Fin Si Si ( le_nom_departement = 'E' ) Alors {Etiolles} quota_du_departement := CentreE_quota code_du_departement := Code_CentreE Fin Si Si ( le_nom_departement = 'S' ) Alors {St-Germain} quota_du_departement := CentreS_quota code_du_departement := Code_CentreS Fin Si Si ( le_nom_departement = 'V' ) Alors {Versailles} quota_du_departement := CentreV_quota code_du_departement := Code_CentreV Fin Si Fin Selection_Information_Centre; 4.5.3 Description de la fonction Traite_le_Centre Elle va administrer les cinq centres et ajouter des candidats dans leurs listes. Fonction Traite_le_Centre(Entrée : le_nom_departement : caractère, le_no_departement : entier,
  34. 34. Rapport de stage à l’IUFM de Versailles Frédéric Sagez le_code_du_departement : chaîne de caractère, Sortie : le_quota_du_departement : entier) Précondition : les paramètres de la fonction sont bien initialisés Effet : Ajoute un candidat dans la table ADMIS_nom du centre Variables auxiliaires : tel_valeur : booléen {indique que l'on peut attribuer le centre} tel_nom_du_centre : chaîne de caractère {nom du tableau de Page 34 sur 99 destination} Début tel_valeur := FAUX Donne_nom_du_centre(le_code_du_departement, tel_nom_du_centre) Si ( le_quota_du_departement > 0 ) Alors Inserer_Candidat_dans_Centre(le_nom_departement, le_no_departement, tel_nom_du_centre) le_quota_du_departement := le_quota_du_departement - 1 {on décrémente le quota du centre} tel_valeur := VRAI Fin Si Retourne tel_valeur Fin Traite_le_Centre; 4.5.4 Description de la procédure Donne_nom_du_centre Grâce au code du département la procédure donne le nom du tableau sur lequel le candidat veut s'inscrire. Procédure Donne_nom_du_centre(Entrée : un_code_du_departement : chaîne de caractère, Sortie : un_nom_du_centre : chaîne de caractère) Précondition : code du departement non vide Effet : retourne le nom de la table du departement ayant le même code Début Si (un_code_du_departement = Code_CentreA ) Alors {Antony} un_nom_du_centre = "T_ADMIS_ANTONY_VdB" Fin Si Si (un_code_du_departement = Code_CentreC ) Alors {Cergy} un_nom_du_centre = " T_ADMIS_CERGY" Fin Si Si (un_code_du_departement = Code_CentreE ) Alors {Etiolles} un_nom_du_centre = " T_ADMIS_ETIOLLES" Fin Si Si (un_code_du_departement = Code_CentreS ) Alors {St-Germain} un_nom_du_centre = " T_ADMIS_ST-GERMAIN" Fin Si Si (un_code_du_departement = Code_CentreV ) Alors {Versailles} un_nom_du_centre = " T_ADMIS_VERSAILLES" Fin Si Fin Donne_nom_du_centre; 4.5.5 Description de la procédure Inserer_Candidat_dans_Centre Elle va remplir la table ADMIS_nom du centre en y ajoutant les renseignements sur le candidat ainsi que mettre une étoile dans le numéro de département où est admis le candidat. Procédure Inserer_Candidat_dans_Centre(Entrée : the_nom_departement : caractère,
  35. 35. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 35 sur 99 the_no_departement : entier, the_nom_du_centre : chaîne de caractère) Précondition : le tableau ADMIS_nom du centre existe 'no_candidat' indique le candidat sélectionné Effet : ajoute un candidat dans le tableau de destination Début Si (the_no_departement = 1 ) Alors the_nom_du_centre[no_candidat].no_departement1 := '*' Fin Si Si (the_no_departement = 2 ) Alors the_nom_du_centre[no_candidat].no_departement2 := '*' Fin Si Si (the_no_departement = 3 ) Alors the_nom_du_centre[no_candidat].no_departement3 := '*' Fin Si Si (the_no_departement = 4) Alors the_nom_du_centre[no_candidat].no_departement4 := '*' Fin Si Si (the_no_departement = 5 ) Alors the_nom_du_centre[no_candidat].no_departement5 := '*' Fin Si Insérer Dans the_nom_du_centre Sélectionner trie.no_dossier, trie.no_candidature, etudiant.nom_usuel, etudiant.prenom, etudiant.adresse, etudiant.code_postal, etudiant.ville, formation, departement1, departement2, departement3, departement4, departement5, the_nom_departement, note_bareme, rang Depuis les tableaux T_CANDIDAT_TRIE trie, T_ETUDIANT etudiant Ou trie.no_dossier = etudiant.no_dossier Fin Inserer_Candidat_dans_Centre; 4.5.6 Description de la procédure Mise_a_jour_des_Centres Elle effectue une mise à jour des places restantes dans les cinq centres. Procédure Mise_a_jour_des_Centres Précondition : les tableaux ADMIS_nom du centre existent Effet : met à jour le champ 'quota_centre_restant' dans chaque tableau Début {mise à jour du quota restant d'Antony} Changer le tableau T_ADMIS_ANTONY_VdB La valeur quota_centre_restant := CentreA_quota Ou T_ADMIS_ANTONY_VdB.code_centre = Code_CentreA {mise à jour du quota restant de Cergy} Changer le tableau T_ADMIS_CERGY La valeur quota_centre_restant := CentreC_quota Ou T_ADMIS_CERGY.code_centre = Code_CentreC {mise à jour du quota restant d'Etiolles} Changer le tableau T_ADMIS_ETIOLLES La valeur quota_centre_restant := CentreE_quota Ou T_ADMIS_ETIOLLES.code_centre = Code_CentreE {mise à jour du quota restant de Saint-Germain} Changer le tableau T_ADMIS_ST-GERMAIN La valeur quota_centre_restant := CentreS_quota Ou T_ADMIS_ST-GERMAIN.code_centre = Code_CentreS
  36. 36. Rapport de stage à l’IUFM de Versailles Frédéric Sagez {mise à jour du quota restant de Versailles} Changer le tableau T_ADMIS_VERSAILLES La valeur quota_centre_restant := CentreV_quota Ou T_ADMIS_VERSAILLES.code_centre = Code_CentreV Page 36 sur 99 Fin Mise_a_jour_des_Centres; 4.6 Description des procédures de mise à jour des atypiques et des dérogataires Les atypiques et les dérogataires sont des cas particulier, on les distinguera de chaque centre en y indiquant le nombre total de chacun des deux. On peut les différencier facilement : un dérogataire un rang égal à zéro parce qu'il ne compte pas dans la hiérarchie des candidats triés alors que l'atypique lui, en plus d'avoir une note de barème supérieur ou égale à trente, il doit passer un entretien. 4.6.1 Description de la procédure Met_le_nombre_de_derogataire Elle effectue une mise à jour du champ 'nbre_derogataire' de la table CAPACITE_CENTRE. Les dérogataires ont le champ 'rang' de la table CANDIDATURE_TRIE à 0. Procédure Met_le_nombre_de_derogataire Précondition : les tableaux ADMIS_nom du centre existent Effet : met à jour le champ 'nbre_derogataire' de chaque centre Début {Met le nombre total de dérogataire d'Antony} Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_ANTONY_VdB OU rang = 0 ) {Met le nombre total de dérogataire de Cergy } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_CERGY OU rang = 0 ) {Met le nombre total de dérogataire d'Etiolles } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_ETIOLLES OU rang = 0 ) {Met le nombre total de dérogataire de Saint-Germain } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_ST-GERMAIN OU rang = 0 ) {Met le nombre total de dérogataire de Versailles } Mise à jour dans le tableau T_CAPACITE_CENTRE
  37. 37. Rapport de stage à l’IUFM de Versailles Frédéric Sagez La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_VERSAILLES OU rang = 0 ) Page 37 sur 99 Fin Met_le_nombre_de_derogataire; 4.6.2 Description de la procédure Met_le_nombre_d_atypique Elle effectue une mise à jour du champ 'nbre_atypique' de la table CAPACITE_CENTRE. Les atypiques ont le champ 'condition_requise' de la table CANDIDATURE à 10 et le champ 'libre10' de la table ETUDIANT à 1. Procédure Met_le_nombre_d_atypique Précondition : les tableaux ADMIS_nom du centre existent Effet : met à jour le champ 'nbre_atypique' de chaque centre Début {Met le nombre total d'atypique d'Antony} Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_ANTONY_VdB, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_ANTONY_VdB.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_ANTONY_VdB.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_ANTONY_VdB.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique de Cergy } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_CERGY, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_CERGY.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_CERGY.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_CERGY.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique d'Etiolles } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_ETIOLLES, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_ETIOLLES.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_ETIOLLES.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_ETIOLLES.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique de Saint-Germain } Mise à jour dans le tableau T_CAPACITE_CENTRE
  38. 38. Rapport de stage à l’IUFM de Versailles Frédéric Sagez La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_ST-GERMAIN, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_ST-GERMAIN.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_ST-GERMAIN.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_ST-GERMAIN.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique de Versailles } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_VERSAILLES, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_VERSAILLES.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_VERSAILLES.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_VERSAILLES.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) Page 38 sur 99 Fin Met_le_nombre_d_atypique;
  39. 39. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 5 FONCTIONNEMENT Pour passer de l’algorithme au programme, certains changements ont été utiles. Une description de chaque table est obligatoire pour connaître l’organisation des données traitées, la référence des tables se trouve dans les pages suivantes. Toutes les tables vont être dans la base de données, pour reconnaître très facilement celles utilisées pour l’affectation des PE, le nom des tables commencera par le préfixe « SIG97 ». Ainsi la table SIG97_ERREUR_CANDIDAT indiquera très clairement les candidats avec leur numéro de dossier que l’on ne prend pas en considération dans le tri, soit qu’il manque des éléments pour la poursuite du tri du candidat, soit que c’est un candidat atypique qui n’a pas rempli les conditi ons à l’entretien, soit parce qu’un candidat est dérogataire : si il a une note d’entretien égale à 70 on ne l'inclut pas dans le tri car il est prioritaire sur les autres, sinon on indique qu’il a eu une note inférieur à 70 voir nulle. Page 39 sur 99 Voici ce que cela peut donner : Message PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300047, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : A-typique numéro 97300121, Condition_Requise = 10, Libre10 = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300176, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300177, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300191, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300195, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300303, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300317, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300338, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300412, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : BON dérogataire numéro 97300471, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : A-typique numéro 97300496, Condition_Requise = 10, Libre10 = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300530, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300599, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300619, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300705, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300773, Condition_Requise = 2, Note_Entretien = 70
  40. 40. Rapport de stage à l’IUFM de Versailles Frédéric Sagez La table SIG97_ COMMENTAIRE_PRG indique très clairement ce que fait le programme, quelle procédure ou fonction est terminée, s’il y a eu des erreurs durant le programme tel que la réécriture dans une table. Voici la trace d'une table une fois le tri terminé : Page 40 sur 99 Message La procédure Initialise_Candidat_Desc est FINIE. La procédure Tri_par_note_de_bareme est FINIE. La procédure Mise_a_jour_table_TRIE est FINIE. La procédure Tri_par_selection est FINIE. La procédure Ajout_des_derogataires est FINIE. La procédure Met_la_capacite_initiale du centre 92V est FINIE. La procédure Met_la_capacite_initiale du centre 95 est FINIE. La procédure Met_la_capacite_initiale du centre 91 est FINIE. La procédure Met_la_capacite_initiale du centre 78S est FINIE. La procédure Met_la_capacite_initiale du centre 78V est FINIE. La procédure Mise_a_jour_des_quotas_restant est FINIE. La procédure Attribution_des_Centres est FINIE. La procédure Met_admission_dans_CANDIDATURE est FINIE. La procédure Met_le_Nombre_Atypique est FINIE. La procédure Met_le_Nombre_Derogataire est FINIE. Regarder la table SIG97_ERREUR_CANDIDAT : candidats qui ne sont pas pris en compte. Aucune erreur durant le programme. Le booléen « arret_du_programme » est initialisé à FAUX, si une erreur s’est produite au cours du programme, il passe à VRAI et le programme n’exécute plus les principales procédures et fonctions qui suivent l’erreur. Trois principales exceptions sont traitées : l’un test si une table est déjà remplie (on n'a pas effacé les champs de la table), les deux autres indiquent clairement ce qui s’est passé et invite l’utilisateur à lire les scripts pour agir en conséquence : les dépassements des extensions de « roll back ». Voici une brève explication de chaque procédure et fonction :  La procédure Efface_contenu_des_tables : elle permet d’effacer le contenu des tables, très utile lorsque l’on veut refaire un tri.  La procédure Message_Utilisateur : insère dans la table SIG97_COMMENTAIRE_PRG la chaîne de caractère « mon_message ».  La procédure Inscrit_Erreur : insère dans la table SIG97_ERREUR_CANDIDAT la chaîne de caractère « mon_message ».
  41. 41. Rapport de stage à l’IUFM de Versailles Frédéric Sagez  La procédure Initialise_Candidat_Desc : on effectue un tri des candidats ou plutôt on « purge » les candidats qui ne sont pas pris en compte dans le tri. On prend déjà des renseignements sur les « bons » candidats : le numéro de dossier, le numéro de candidature, la formation désirée, les cinq voeux du candidat (les départements), la note de barème ainsi que la date de retour du dossier. Chaque information prise dans la table CANDIDATURE va être placée dans une table temporaire SIG97_CANDIDAT_TMP.  La procédure Tri_par_note_de_bareme : elle va chercher la date de naissance du candidat dans la table ETUDIANT et sa note de préprofessionnalisation dans la table BAREME_INDIVIDUEL puis des informations de la table SIG97_CANDIDAT_TMP pour tout mettre dans la table SIG97_CANDIDAT_SELECT_TMP.  La procédure Mise_a_jour_table_TRIE : étape importante, c’est là que l’on prend les notes de « barémage » pour trier les candidats. On prend les notes d'activité d'enseignement, l’activité éducative et salariale puis la note de brevet de la table BAREME_INDIVIDUEL pour les mettre dans la table SIG97_CANDIDAT_TRIE_TMP.  La procédure Candidature_trie : tri les candidats pour leur attribuer un rang. La fonction Test_le_nbre_de_candidat retourne VRAI s’il y a au moins un candidat à trier car cela évite dans la procédure Tri_par_selection d’appeler huit fois la procédure Candidature_trie. Bien sur toutes les informations recueillies de la table SIG97_CANDIDAT_TRIE_TMP seront mises dans la table SIG97_CANDIDAT_TRIE : tous les candidats triés pourront être visualisés ici.  La procédure Ajout_des_derogataires : Prend tous les candidats de la table CANDIDATURE qui sont des dérogataires. On les met directement dans les centres et on incrémente le quota initial de chaque centre par le nombre de dérogataire placé dedans. Pour le quota des centres on utilise la table SIG97_CAPACITE_CENTRE. Pour admettre chaque candidat dans les centres, on utilise les tables SIG97_ADMIS_nom du centre. Comme on ne peut leur mettre un rang académique, ils auront un rang égale à zéro pour indiquer qu'ils ne sont pas classés dans la hiérarchie. Ainsi on pourra mieux les repérer dans les listes d'admission de chaque centre.  La procédure Met_la_capacite_initiale : permet d’initialiser les variables globales de la procédure Page 41 sur 99 Attribution_centre.  La procédure Test_place_centre : retourne VRAI si le quota du centre est supérieur à zéro.  La procédure Donne_information_centre : lorsqu’un candidat a sélectionné un département, cette procédure donne les informations que l’on a besoin, elles seront traitées dans la fonction Traite_le_centre qui va mettre à jour la liste de chaque centre.  La procédure Attribution_centre : attribue au candidat un centre dont il a fait le voeu. On prend les dernières informations du candidat : son nom, son prénom et son adresse de la table ETUDIANT ainsi que celles de SIG97_CANDIDAT_TRIE.  La procédure Mise_a_jour_quota_restant : elle est prévue lorsqu’il y a plus de place dans le centre que de candidats. Lorsque l'on impose des quotas dit de "surbooking" (c'est le nombre de place total plus le nombre de candidat inscrit sur la liste complémentaire), on peut distinguer très nettement les places restantes.  La procédure Met_admission_dans_candidature : prend les informations de chaque candidat admis dans les centres, puis fait une mise à jour des champs indiquant que le candidat est admissible dans la table CANDIDATURE.  Les procédures Met_le_nombre_atypique et Met_le_nombre_derogataire : mise à jour des champs de la table SIG97_CANDIDAT_TRIE pour indiquer le nombre exact de dérogataires et d’atypique de chaque centre. Voici la table SIG97_CAPACITE_CENTRE lorsque le programme est terminé :
  42. 42. Rapport de stage à l’IUFM de Versailles Frédéric Sagez code_centre quota_centre_ini tial quota_centre_res tant nbre_atypique nbre_derogata i re nom_du_centre 92V 767 0 53 3 Antony Val de Bievre 91 940 0 7 20 Etiolles 95 902 0 45 18 Cergy 78S 580 0 16 0 St-Germain en Laye 78V 245 0 11 3 Versailles Les tables qui ont le suffixe « TMP » peuvent être effacées à la fin du programme. Elles ont servis à contenir des informations sur les candidats et éviter de créer une table unique et de faire soit la saisie des informations en un bloque (très coûteux en temps) ou par une mise à jour avec des « UPDATE » (dépassement de capacité de la mémoire et très coûteux en temps). Page 42 sur 99 Table SIG97_CAPACITE_CENTRE Nom de la colonne Type Longueur SQL Description code_centre chaine de caractère 3 CHAR numéro de code du centre quota_centre_initial réel 22 FLOAT quota de place d' entrée du centre initial quota_centre_restant réel 22 FLOAT quota de place d' entrée du centre restant nbre_atypique réel 22 FLOAT indique le nombre total d'atypique du centre nbre_derogataire réel 22 FLOAT indique le nombre total de dérogataire du centre nom_du_centre chaine de caractère 25 CHAR nom du centre en entier Table SIG97_CANDIDAT_TRIE Nom de la colonne Type Longueur SQL Description no_dossier chaine de caractère 10 CHAR numéro de dossier du candidat no_candidature réel 22 FLOAT numéro de candidature du candidat formation chaine de caractère 4 CHAR nom de la formation demandée departement1 chaine de caractère 3 CHAR premier voeu du candidat departement2 chaine de caractère 3 CHAR deuxième voeu du candidat departement3 chaine de caractère 3 CHAR troisième voeu du candidat departement4 chaine de caractère 3 CHAR quatrième voeu du candidat
  43. 43. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 43 sur 99 departement5 chaine de caractère 3 CHAR cinquième voeu du candidat note_bareme réel 22 FLOAT note du bareme du candidat note_prepo réel 22 FLOAT note de preprofessionalisation date_naissance date 7 DATE date de naissance du candidat date_retour_dossier date 7 SYSDATE date de retour du dossier enseignement caractère 1 CHAR indique si la case est cochée pour l'enseignement peri_educ_scol caractère 1 CHAR indique si la case est cochée pour l'activité éducative activite_salarie caractère 1 CHAR indique si la case est cochée pour l'activité de salarié note_brevet réel 22 FLOAT note totale des brevets obtenus rang nombre 22 FLOAT rang attribue au candidat Table SIG97_ADMIS_nom du centre Nom de la colonne Type Longueur SQL Description no_dossier chaine de caractère 10 CHAR numéro de dossier du candidat no_candidature réel 22 FLOAT numéro de candidature du candidat nom_usuel chaine de caractère 25 CHAR nom usuel du candidat prenom chaine de caractère 20 CHAR prénom du candidat adresse chaine de caractère 255 CHAR adresse complète du candidat code_postal chaine de caractère 5 CHAR code postal du candidat ville chaine de caractère 25 CHAR ville du candidat departement1 chaine de caractère 3 CHAR premier voeu du candidat departement2 chaine de caractère 3 CHAR deuxième voeu du candidat departement3 chaine de caractère 3 CHAR troisième voeu du candidat departement4 chaine de caractère 3 CHAR quatrième voeu du candidat departement5 chaine de caractère 3 CHAR cinquième voeu du candidat no_departement1 caractère 1 CHAR repère du premier voeu du candidat
  44. 44. Rapport de stage à l’IUFM de Versailles Frédéric Sagez no_departement2 caractère 1 CHAR repère du deuxième voeu du candidat no_departement3 caractère 1 CHAR repère du troisième voeu du candidat no_departement4 caractère 1 CHAR repère du quatrième voeu du candidat no_departement5 caractère 1 CHAR repère du cinquième voeu du candidat Page 44 sur 99 departement_choisis chaine de caractère 3 CHAR voeu du candidat où il est admis formation chaine de caractère 4 CHAR nom de la formation demandée note_bareme réel 22 FLOAT note du bareme du candidat rang nombre 22 FLOAT rang attribue au candidat Table SIG97_ERREUR_CANDIDAT Nom de la colonne Type Longueur SQL Description erreur_candidat chaine de caractère 100 CHAR phrase indiquant l' erreur trouvé sur le candidat Table SIG97_COMMENTAIRE_PRG Nom de la colonne Type Longueur SQL Description message chaine de caractère 120 CHAR phrase indiquant le déroulement du programme

×