OFPPT
Office de la Formation Professionnelle
et de la Promotion du Travail
Direction de la Recherche et Ingénierie de la Formation
Examen de fin de formation
session Juillet 2017 (Eléments de Correction)
Filière : Techniques de Développement Informatique Epreuve : Théorique
Niveau : TS
Durée : 4 heures Barème : /40 pts
fo
Dossier 1 :
1)
.in
pt
E-Labo
fp
Saisir résultat analyses
.o
Responsable Labo
w
<<include>>
Consulter résultat analyses
<<include>>
w
<<include>>
w
Medecin
Consulter ses analyses Se connecter
<<include>>
<<include>>
Patient
Envoyer résultat glycémie
Testeur glycémie
Patient diabétique
Gérer les comptes
Administrateur
Filière Epreuve Session 1/ 6
DI Théorique FF (Eléments Correction) Juillet 2017
www.ofppt.info
2)
System
: Responsable Labo
seConnecter(lgin,pass)
ChercherPrelevement(codePr)
loop Pour chaque analyse
ChercherAnalyse(code)
fo
SaisirValeurAnalyse(valeur)
.in
pt
fp
Terminer()
.o
w
w
w
Filière Epreuve Session 2/ 6
DI Théorique FF (Eléments Correction) Juillet 2017
www.ofppt.info
Patient
-code
1 -nom
-prenom
concerne -dateNaissance
Prelevement
*
-codePr
-datePr
1..* contient
1 Analyse
1..*
concerne -code
* PatientDiabetique
-Libelé
1 -valeurReference -tauxGlycemieActuel
-prix
-valeur
Facture prescrit
-id
1
-dateFac
-avance
Medecin
-code
-nom
-prenom
-specialité
-Tel
fo
.in
pt
Dossier 2 :
fp
1) Select idMessage, dateMessage, objet , contenu, adresseEmailDestinataire from Message
m inner join compte c on m. adresseEmailExpediteur=c. adresseEmail inner join Utilisateur
.o
u on c.idUtilisateur = u.idUtilisateur where u.nom=’SABER’
w
2) Alter table Message add consraint chk1 CHECK (priorité='Elevée' OR priorité='Moyenne'
w
OR priorité='Faible' )
w
3) Create function nbMessages(@email varchar(30))
Returns int
Begin
Declare @n int
Select @n=count(*) from Message where adresseEmailExpediteur=@email OR
adresseEmailDestinataire=@email
Return @n
End
4) Create procedure pRepondre @idMessage int , @contenu varchar(100)
As
Declare @adrExp varchar(30) , @adrDest varchar(30) , @objet varchar(30)
Select @adrExp = adresseEmailExpediteur , @adrDest = adresseEmailDestinataire , @objet
= objet From Message Where idMessage = @idMessage
Set @objet = ‘RE:’ + @objet
Filière Epreuve Session 3/ 6
DI Théorique FF (Eléments Correction) Juillet 2017
www.ofppt.info
Insert into Message (dateMessage, objet , priorité , adresseEmailExpediteur ,
adresseEmailDestinataire , idMessageReponse ) VALUES ( getDate() , @objet , ‘Moyenne’ ,
@adrDest , @adrExp , @idMessage )
5) Create Trigger tQuestion5 on Message After Insert
As
Declare @adrExp varchar(30) , @idGroupe int , @nomGroupe varchar(30) ,
@idMessage int
Select @adrExp = adresseEmailExpediteur , @idMessage = idMessage From Inserted
Select @idGroupe = idGroupe From Compte Where adresseEmail = @adrExp
IF (@idGroupe = (Select idGroupe From Groupe Where nomGroupe = ‘Chef de service’ ) )
Update Message Set priorité = ‘Elevée’ Where idMessage = @idMessage
6) Create Trigger tQuestion6 on Message After Insert
As
Declare @adrExp varchar(30) , @etat varchar(30)
Select @adrExp = adresseEmailExpediteur From Inserted
fo
Select @etat = etat From Compte Where adresseEmail = @adrExp
IF ( @etat = ‘Occupée’ ) .in
Rollback transaction
Dossier 3 :
pt
Question 1) , question 2) et question 3) :
fp
<html >
.o
<head>
<title></title>
w
</style>
w
<script type="text/javascript">
function traiter()
w
{
var an = document.getElementById("an").value;
var abs = document.getElementById("tAbsence").value;
var moy = document.getElementById("tMoyenne").value;
var doublant = document.getElementById("cb").checked;
var decision="";
if (abs!= "" && moy!= "" && moy >=0 && moy <= 20)
if (moy >= 10)
decision = "Admis";
else
if (an == "1A")
if (moy >= 9)
if (abs < 30)
decision = "Racheté";
Filière Epreuve Session 4/ 6
DI Théorique FF (Eléments Correction) Juillet 2017
www.ofppt.info
else
decision = (doublant==true)?"Eliminé":"Redouble";
else
decision = (doublant==true)?"Eliminé":"Redouble";
else //2 eme année
if (moy >= 9.5)
if (abs < 30)
decision = "Admis avec Bonus";
else
decision = (doublant==true)?"Eliminé":"Redouble";
else
decision = (doublant==true)?"Eliminé":"Redouble";
else
alert(‘Données invalides ou incomplètes’);
document.getElementById("tDecision").value=decision;
}
</script>
</head>
fo
<body> .in
<h1> Délibération de fin d’année</h1>
<form>
pt
Année de formation :
<select id="an" name="D1">
fp
<option value="1A">1 ère année</option>
<option value="2A">2 ème année</option>
.o
</select>
<p>
w
Déjà redoublant : <input id="cb" type="checkbox" /></p>
w
<p>
Moyenne générale :
w
<input id="tMoyenne" type="text" /></p>
<p>
Nombres total d’absences : <input id="tAbsence" type="text" /></p>
<p>
<input id="bOK" type="button" value="OK" onclick="traiter()" />
</p>
<p>
Décision : <input id="tDecision" type="text" /></p>
</form>
</body>
</html>
Filière Epreuve Session 5/ 6
DI Théorique FF (Eléments Correction) Juillet 2017
www.ofppt.info
Dossier 4 :
1)
a) //compte[@adresse= ‘[email protected] ’]/message[@type=’envoi’]
b) //compte[etat= ‘[email protected] ’]
c) Count(//message[priorite=’elevée’])
2) Permet d’atteindre un élément du fichier XML en utilisant une expression XPath
3) Fichier XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title></title>
fo
</head>
<body> .in
<h1>Les courriers:</h1>
<ul>
pt
<xsl:for-each select="courriers/compte/message">
<li>
fp
Date message:<xsl:value-of select="date"/> - Objet:<xsl:value-of select="objet"/> -
.o
Priorité:<xsl:value-of select="priorite"/>
</li>
w
</xsl:for-each>
</ul>
w
</body>
w
</html>
</xsl:template>
</xsl:stylesheet>
4) Inclure un filtre à la balise for-each qui devient :
<xsl:for-each select="courriers/compte/message[priorite='elevée']">
Dossier 5 :
Voir Cours
Filière Epreuve Session 6/ 6
DI Théorique FF (Eléments Correction) Juillet 2017
www.ofppt.info