Vous êtes sur la page 1sur 5

Classes : 1ère Année TI Date : Juin 2015

Matière : Programmation Web 2 Documents : Non autorisés


Durée Supérieur
Institut : des Etudes
1 heure 30 mn
Technologiques de Sfax Nombre de page : 3
EnseignantsTechnologie
Département : A.de
REKIK , H. Lamine, M. HADIJI, S. HADHRI, S. HAMMAMI, S. FEKI
l’Informatique
Devoir DE Synthèse
Exercice 1 : (10 points)

Un club de « Sport & Divertissements » souhaite créer un formulaire d’inscription en ligne pour ses anciens
et nouveaux adhérents.

Le formulaire correspondant est le suivant :

1. Compléter le code HTML ci-dessous tout en tenant compte des éléments suivants : 2.75

- Les champs du formulaire sont :


Noms des champs Indications Types
Nom Champ qui va afficher le prénom et le nom du membre. Champ texte
Login Champ qui va afficher le login du membre. Champ texte
Mail Champ qui va afficher le mail du membre. Champ texte
Liste de choix qui comporte comme valeurs Echec, Tir à l'arc & Equitation
Activite Champ liste déroulante
ayant pour valeurs respectivement 30, 50 & 100.
Membre Deux boutons indiquant s’il s’agit d’un nouveau ou d’un ancien membre. Boutons radio
Montant Le montant à payer (en lecture seule). Champ texte
Date Champ pour afficher la date (en lecture seule). Champ texte
Condition Champ initialement non coché. Case à cocher
Valider Bouton, initialement inactif, pour valider le formulaire. Bouton Submit

- La date est affichée dès le chargement de la page.


- Une fois le prénom et le nom sont saisis, on fait appel à la fonction affLogin() pour afficher le login.
- On fait appel à la fonction verifMail () une fois le mail est saisi.
- La fonction affMontant() est appelée lorsqu’on choisi l’activité et lorsqu’on sélectionne si le membre est
nouveau ou ancien.
- Le clic sur la case à cocher «Condition» fait appel à la fonction affBtn ().

Page 1
<body ………………. >
<h2>Enregistrement membre</h2>
<form name="f">
<p>Prénom et Nom <input type="text" name="nom" ………………./></p>
<p>Login <input type="text" name="login"/></p>
<p>Mail <input type="text" name="mail" ………………./></p>
<p>Activité choisie <select name="activite" ……………….>
<option ……………….>Echec</option>
<option ……………….>Tir à l'arc</option>
<option ……………….>Equitation</option>
</select>
</p>
<p><input type="radio" name="type" ………………/>Nouveau membre</p>
<p><input type="radio" name="type" ………………/>Ancien membre</p>
<p>Montant <input type="text" name="montant"………………./></p>
<p>Le <input type="text" name="datej"……………./><input type="checkbox" name="accept" ………
………./> J'accepte les conditions</p>
<p><input type="submit" name="valider" value="valider" ………………. /></p>
</form>
</body>
N.B. : Reporter dans la feuille d’examen le numéro de la zone incomplète et donner la réponse adéquate.

 onload="affDate ()" 0.25


 onblur="affLogin ()" 0.25
 onblur="verifMail ()" 0.25
 onchange="affMontant ()" 0.25
 value="30"
 value="50" 0.25
 value="100"
 onclick="affMontant ()" 0.25
 onclick="affMontant ()" 0.25
 readonly 0.25
 readonly 0.25
 onclick="affBtn ()" 0.25
 disabled 0.25

2. Ecrire le code JavaScript correspondant aux fonctions énoncées ci-dessous. 7.25


Noms des fonctions Indications

affLogin () Affiche le login qui est composé du dernier mot du champ Nom mis en majuscule concaténé à la
chaîne «_Membre»
verifMail () Vérifie que le mail est valide et affiche une alerte sinon.
Un mail est dit valide si :
 Il comporte les caractères @ et .
 Son premier caractère doit être une lettre en .minuscule
affMontant () Calcule et affiche le montant à payer ; Celui-ci est calculé à base de la valeur de l’activité choisie
qu’on lui ajoute 20 si c’est un nouveau membre et 10 si c’est un ancien membre.
Ex : Si l’activité choisie par un ancien membre est Equitation alors le montant à payer est 110.
affDate () Affiche la date sous le format suivant : « Jour_en_français jj/mm/aaaa »
Ex : Samedi 23/5/2015
affBtn () Si la case Condition est cochée alors le bouton devient actif, sinon désactivé.
Page 2
<script>
function affLogin(){ 1.5
var nom=f.nom.value; 0.25
var tabNom=nom.split(" "); 0.5
var i=tabNom.length-1; 0.25
f.login.value=tabNom[i].toUpperCase()+"_Membre"; 0.5
}
function verifMail(){ 1.5
var mail=f.mail.value; 0.25
if(mail.indexOf("@")==-1 || mail.indexOf(".")==-1 || mail.charAt("0")<"a" || mail.charAt("0")>"z" ) 1
alert("Email incorrect"); 0.25
}
function affMontant(){ 1
var montant=Number(f.activite.value); 0.25
if(f.type[0].checked==true) montant+=20; 0.25
if(f.type[1].checked==true) montant+=10; 0.25
f.montant.value=montant; 0.25
}
function affDate(){ 2.25
var d=new Date(); 0.25
var T=new Array("dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"); 0.25
var j=d.getDay(); 0.25
var jour=T[j]; 0.25
var jj=d.getDate(); 0.25
var m=d.getMonth()+1; 0.25
var a=d.getFullYear(); 0.25
var dj=jj+"/"+m+"/"+a; 0.25
f.datej.value=jour+" "+dj; 0.25
}

function affBtn(){ 1
if(f.accept.checked==true) 0.25
f.valider.disabled=false; 0.25
else 0.25
f.valider.disabled=true; 0.25
}
</script>

Page 3
Exercice 2 : (10 points)

On se propose de décrire les visites organisées aux musées.


Une visite comporte un responsable ayant un attribut Code qui est l’identifiant obligatoire d’une visite et
les lieux à visiter (une ou plusieurs).
Un lieu à visiter :
- a un attribut optionnel Type, qui ne peut être que « site Archéologique », ou « musée » ; par défaut
sa valeur est « musée ».
- peut comporter aussi un « nom Antique », « un nom moderne », « le gouvernorat », « un nom »,
« une situation » (peuvent ne pas exister) et éventuellement les « coordonnées ».
Travail à faire :

1- Ecrire le code XML pour l’exemple de la visite suivant : 2.75


Visite
Responsable Code (attribut)
Mohamed Tounsi code="Mt025"
Lieu Type="Site Archéologique"
Nom antique Nom moderne Gouvernorat coordonnées
Ammaedara Haidra Kasserine 5 33 50 N
8 27 14 E
Lieu Type="Site Archéologique"
Nom antique Nom moderne Gouvernorat
Carthago Carthage Tunis
Lieu Type="musée"
nom situation
Océan port Carthage
graphique de
Salambo

<visites> 0.25
<responsable code="Mt025">Mohamed Tounsi</responsable> 0.5
<lieu type="siteArchelogique"> 0.25
<NomAntique>Ammaedara</NomAntique> 0.125
<NomModerne>Haidra</NomModerne> 0.125
<gouvernorat>Kasserine</gouvernorat> 0.125
<coordonnees>35 33 50 N</coordonnees> 0.125
<coordonnees>8 27 14 E</coordonnees> 0.125
</lieu>
<lieu type="siteArchelogique"> 0.25
<NomAntique>Carthago</NomAntique> 0.125
<NomModerne>Carthage</NomModerne> 0.125
<gouvernorat>Tunis</gouvernorat> 0.125
</lieu>
<lieu type="musee"> 0.25
<Nom>Musee oceanographique de Salammbo</Nom> 0.125
<situation>port carthage</situation > 0.125
</lieu> </visites>
Page 4
Page 5

Vous aimerez peut-être aussi