Sie sind auf Seite 1von 6

OFPPT

Office de la Formation Professionnelle


et de la Promotion du Travail

Direction Recherche et Ingnierie de la Formation

Corrige Examen de fin de formation


Session Juillet 2014

Filire : Techniques de Dveloppement Informatique


Niveau : TS Epreuve : Thorique
Dure :4 heures Barme : /40 pts

N.B :
Ce document reprsente une proposition de correction ; dautres solutions sont
envisageables.

Dossier 1 :

Questions 1) 2) et 3):

Grer planning des offres

<<include>>
Directeur
Grer Personnel <<include>>

<<include>>

Grer clients
<<include>> S'authentifier

responsable touristique
<<include>>

Grer les affectations


<<include>>

<<include>>
grer rservations
Responsable rservation

Suivi facturation

Comptable

grer comptes utilisateurs

Administrateur

Filire Epreuve Session


TDI Thorique FF Juillet 2014 1/6
www.ofppt.info
4)

Voyage Vehicule

-codeVoy -matricule
-libelle -marque
-prix -modele
1
Reservation 1..* -date debut
-date fin
-Numreservation Concerne
-dateReservation 1
utilise
1
*
1..*
1..*
Tourne
effectue par -codeT
1 -libelle
-date debut
-date fin
Client
*
-codeCl
*
-nom concerne
-prenom
1 -guide
-num passeport
-adresse
Employ 1..*
-tel Lieu
-mat -numOrdre
-nom -codeL
-prenom -nom
-ville

Question 5)

Filire Epreuve Session


TDI Thorique FF Juillet 2014 2/6
www.ofppt.info
Question 6)

Voyage (code, Prix, Libelle, DateDebut, DateFin, #Matricule)


Tournee (CodeT, LibelleT, dateDebut, dateFin, #codeVoyage)
Lieu (codeL, libelleLieu, ville)
Employe (Matricule, nomEmpl, prenEmpl)
Client (CodeCl, nomCl, prenomCl, numPass, adresse, Tel)
Reservation (NumReservation, dateReservation, #CodeCl, #codeVoyage)
Concerne (CodeT, codeL, numeroOrdre)

Dossier 2 : Voir cours

Dossier 3 :

1) Create procedure question1 @idF int


As
Select S.idStagiaire, S.nom, S.prenom, count(idAbsence) from Stagiaire S inner join Absence A ON
S.idStagiaire=A.idStagiaire Where TypeAbsence=non justifie
Group By S.idStagiaire, S.nom, S.prenom

2) Create Trigger question2 On Absence After Insert


As
Declare @idStagiaire int, @idModule int, @idFiliere int
Select @idStagiaire=idStagiaire, @idModule=idModule From Inserted
Select @idFiliere=idFiliere Stagiaire Where idStagiaire=@idStagiaire
IF NOT EXISTS (Select idModule From Fil_Module Where idModule=@idModule And
idFiliere=@idFiliere)
Rollback

3) Create Trigger question3 On Absence After Insert


As
Declare @idStagiaire int
Select @idStagiaire=idStagiaire From Inserted
Update Stagiaire set TotalAbsence=TotalAbsence + 1 Where idStagiaire=@idStagiaire

4) Create Function Dbo.question4 (@idStagiaire int)


Returns int
As
Begin
Declare @n int, @resultat int
Select @n=count(idAbsence) From Absence Where idStagiaire=@idStagiaire and TypeAbsence
= non justifie
Set @resultat = 20 - @n
If @resultat < 0
Set @resultat =0
Return @resultat
End

5) Create procedure question5 @idModule int

As
Declare @limite decimal

Select @limite = 0.3 * NbreHeure From Module Where idModule=@idModule


Select nom,prenom From Stagiaire S inner join Absence A ON S.idStagiaire=A.idStagiaire Where
idModule=@idModule Having 2.5*count(idAbsence) > @limite

6) Select distinct S.nom, S.prenom From Stagiaire S, Absence A1, Absence A2 Where A1.idStagiaire=
S.idStagiaire and A2.idStagiaire= S.idStagiaire and A2.dateAbs > A1.dateAbs and DATEDIFF(day,
A1.dateAbs, A2.dateAbs) <= 15

Filire Epreuve Session


TDI Thorique FF Juillet 2014 3/6
www.ofppt.info
Dossier 4 :

1)
<html>
<head>
<title></title>

</head>

<body>
<h1>Inscription</h1>
<form name="f" action="">
<p>
Nom :&nbsp;
<input id="nom" type="text" /> prnom :
<input id="prenom" type="text" /></p>
<p>
Age :
<input id="age" type="text" /></p>
<p>
Sexe :Homme
<input id="homme" checked="checked" name="sex" type="radio" value="V1" />
Femme
<input id="femme" name="sex" type="radio" value="V1" /></p>
<p>
NationnalitMarocaine
<input id="marocain" checked="checked" name="nationalite" type="radio"
value="V1" onclick="document.getElementById('lespays').style.display = 'none';"/>
Etrangre
<input id="etranger" name="nationalite" type="radio" value="V1" /></p>
<p><div id="lespays">
Pays :
<select id="pays" name="D1">
<option>France</option>
<option>Espagne</option>
<option>Tunisie</option>
<option>Algrie</option>
</select></p>
</div>
<p>
Intrts
</p>
<p>

Lecture <input id="lecture" type="checkbox" name="interets" value="lecture"/> Cinma


<input id="cinema" type="checkbox" name="interets" value="cinma" /> Sports
<input id="sports" type="checkbox" name="interets" value="sports"/></p>
<p>

Thtre
<input id="theatre" type="checkbox" name="interets" value="thtre" />
Voyage
<input id="voyage" type="checkbox" name="interets" value="voyage"/>
Sciences
<input id="sciences" type="checkbox" name="interets" value="sciences"/></p>
<p>

<input id="btAfficher" type="button" value="Afficher" onclick="Afficher();"/></p>

<div id="aff">
</div>
</form>

</body>
</html>

Filire Epreuve Session


TDI Thorique FF Juillet 2014 4/6
www.ofppt.info
**********
2)

<script type="text/javascript" language="javascript">

functionAfficher() {
var d=document.getElementById("aff");
var s = " Ses intrts sont : ";
var nom = document.f.nom.value;
varprenom = document.f.prenom.value;
varage = document.f.age.value;
var homme = document.f.homme.checked;
var marocain = document.f.marocain.checked;

varresultat = nom + " " + prenom + ", age " + age + " ans. ";

if (marocain)
if (homme) resultat=resultat + "Il est" + " marocain. ";
elseresultat=resultat + "Elle est" + " marocaine. ";
else
{
if (homme) resultat = resultat + "Il est" + " tranger. ";
elseresultat = resultat + "Elle est" + " trangre. ";
resultat = resultat + "Son pays d'origine est : " + document.f.pays.value + ".";
}

var tab = new Array;


var j = 0;
for (var i = 0; i <document.f.interets.length; i++)
if (document.f.interets[i].checked)
{
tab[j] = document.f.interets[i].value;
j++;
}

for (var i = 0; i <tab.length; i++)


{
if (i < tab.length-2)
s = s + tab[i] + ", ";
}

if (tab.length>1)
s = s + tab[tab.length - 2] + " et " + tab[tab.length - 1] + ".";
else
if (tab.length == 1)
s = " Son intrtest: " + tab[0];
else
s = " Ses intrts sont : aucun";
resultat = resultat + s;

d.innerHTML = "<p>" + resultat + "</p>";

}
</script>

Filire Epreuve Session


TDI Thorique FF Juillet 2014 5/6
www.ofppt.info
Dossier 5 :

1)

<?xml version="1.0" encoding="UTF-8"?>


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="FOOT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="JOURNEE" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MATCH" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="LOCAUX" type="xsd:string"></xsd:attribute>
<xsd:attribute name="VISITEURS" type="xsd:string"></xsd:attribute>
<xsd:attribute name="BUTS_LOCAUX" type="xsd:int"></xsd:attribute>
<xsd:attribute name="BUTS_VISITEURS" type="xsd:int"></xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="NUMERO" type="xsd:int"></xsd:attribute>
<xsd:attribute name="DATE" type="xsd:string"></xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="DIVISION" type="xsd:int"></xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>

2)
a) Le nombre de matchs nuls du championnat
b) les journes qui prcdent la 3me journe
c) tous les adversaires de lquipe DHJ

3)
a) //JOURNEE[@NUMERO=4]/MATH
b) //JOURNEE/MATCH[1]
c) //MATCH[@LOCAUX='KAC' and @BUTS_LOCAUX =@ BUTS_VISITEURS]

Filire Epreuve Session


TDI Thorique FF Juillet 2014 6/6
www.ofppt.info