0% ont trouvé ce document utile (0 vote)
22 vues11 pages

Devoir SN2-4STI

Ce document est un devoir de synthèse pour une épreuve en systèmes et technologies de l'informatique, comprenant plusieurs exercices sur HTML, PHP, JavaScript, et SQL. Les exercices portent sur la création d'applications web, la gestion de bases de données, et le développement de formulaires. Les étudiants doivent répondre à des questions théoriques et pratiques, ainsi que compléter des codes en PHP et JavaScript.

Transféré par

mohamedkhili515
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues11 pages

Devoir SN2-4STI

Ce document est un devoir de synthèse pour une épreuve en systèmes et technologies de l'informatique, comprenant plusieurs exercices sur HTML, PHP, JavaScript, et SQL. Les exercices portent sur la création d'applications web, la gestion de bases de données, et le développement de formulaires. Les étudiants doivent répondre à des questions théoriques et pratiques, ainsi que compléter des codes en PHP et JavaScript.

Transféré par

mohamedkhili515
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Devoir de synthèse N°2

Section : Sciences de l’Informatique


Commissariat Régional de
l’Education Tunis 1 Épreuve : Systèmes & Technologies de l’Informatique

Lycée Rue de Russie / Lycée Alaoui Enseignants: Ben Hsan Rim & Sellami Lobna

Date : Vendredi 15 Mars 2024 Durée : 2 H Niveau : 4ème année

N.B. : Le sujet comporte 11 pages à remettre à la fin de l’épreuve.

EXERCICE 1 (2pts)

Pour chacune des propositions suivantes mettre une croix devant la bonne réponse.

NB. Toute réponse contenant plus d’une croix est considérée erronée.

1) En HTML5 l’attribut type de l’élément input ne peut pas être


url

number

float

2) En PHP $_POST et $_GET:


sont deux méthodes d’envoi des données à travers un formulaire.

sont deux fonctions php pour récupérer les données d’un formulaire.

sont deux tableaux php prédéfinis.

3) En PHP la fonction mysqli_affected_rows():


Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE,
ou DELETE

Retourne le nombre de lignes affectées par la dernière requête SELECT.

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE,


DELETE ou SELECT.

4) En JS la méthode toString() permet:


convertir un objet date en une chaîne de caractères.

convertir une chaîne de caractères en un objet date.

modifier un objet date.

1
EXERCICE 2 (5pts)
On veut créer une application web permettant aux utilisateurs de partager leurs recettes de
cuisine avec d'autres membres de la communauté. L'application devra permettre aux
utilisateurs de créer un compte, de partager leurs recettes, de parcourir les recettes des
autres utilisateurs, de rechercher des recettes par catégorie ou par mot-clé, et de laisser des
commentaires sur les recettes.

Voici une proposition de la structure de base de données :

1) En se référant à la représentation graphique ci-dessus répondre par OUI ou NON à ces


affirmations.

Affirmations Oui/Non

1. Un user peut partager plusieurs recettes.

2. Un user peut poster un commentaire sur la même recette.

[Link] recette peut être d’une ou plusieurs catégories.

4. Une recette peut être créée par plusieurs users à la fois.

2) Le concepteur de la base propose deux règles de gestion.


R1: Un ingrédient peut être utilisé dans plusieurs recettes.
R2: Une recette peut être composée de plusieurs ingrédients.
Quelle est la règle respectée par chacune des propositions suivantes:

2
Règle respectée …………………………….

Règle respectée …………………………….

Règle respectée …………………………….

3) Pour chacune de ces situations répondre par V si la requête proposée répond à la


situation donnée et F dans le cas contraire:
a. Pour modifier le temps de cuisson par 0 de toutes les recettes de la catégorie soupe,
on exécute cette requête.
UPDATE Recette R, Categorie C SET [Link] = 0
WHERE R.category_id = C.category_id AND [Link] = “soupe”;

UPDATE Recette SET temps = 0


WHERE category_id = (SELECT category_id FROM Categorie WHERE name = “soupe”);

UPDATE Recette , Categorie SET temps = 0


WHERE Recette.category_id = Categorie.category_id AND titre”= “soupe”;

3
b. On veut supprimer de la base toutes les recettes qui contiennent du sucre pour avoir
un contenu diététique. On peut exécuter cette requête:
DELETE FROM Recette WHERE ingredients =”sucre”;

DELETE FROM Recette WHERE ingredients like “%sucre%”;

DELETE FROM Recette WHERE ingredients like “_sucre_”;

c. Pour afficher la liste des users spécialistes en dessert triés selon leurs nombres de
recettes de dessert partagés on exécute cette requête.
SELECT u .* , COUNT( user_id ) FROM user u, recette r, categorie c
WHERE u.user_id = r.user_id AND c.category_id = r.category_id
AND [Link]=”dessert” GROUP BY r.user_id ORDER BY COUNT( user_id )

SELECT u .* , COUNT( r.user_id ) FROM user u, recette r, categorie c


WHERE u.user_id = r.user_id AND c.category_id = r.category_id
AND [Link]=”dessert” GROUP BY user_id ORDER BY COUNT( r.user_id )

SELECT u .* , COUNT( r.user_id ) FROM user u, recette r, categorie c


WHERE u.user_id = r.user_id AND c.category_id = r.category_id
AND name=”dessert” GROUP BY r.user_id ORDER BY COUNT( r.user_id )

EXERCICE 3 (7pts)

Une clinique vétérinaire veut automatiser les visites de consultation, on veut créer une
application Web qui doit permettre de garder les données de chaque animal patient et de
faire des statistiques sur la fréquence des visites par mois.

Ci-dessous, la représentation textuelle simplifiée de cette base de données.

Proprietaire (Telp, Nomp, Adress)

Animal(Numa, Noma, Espece, Race, Sexe, Naiss, Telp#, Poids)

Visite (Numv, Numa#, Datvis, Cause, PoidsN)

NB: La clinique est capable de gérer simultanément plusieurs causes de visite tels que
vaccins, antipuces, vermifuges, ainsi que d'autres interventions lors d'une même visite.

4
Les champs des tables sont décrits comme suit:

Champ Type Description

Telp chaîne de 8 caractères Identifiant du propriétaire

Nomp chaîne de 20 caractères Nom du propriétaire

Adress chaîne de 50 caractères Adresse du propriétaire

Numa Entier auto-increment Identifiant de l’animal

Noma chaîne de 20 caractères Nom de l’animal

Espece chaîne de 20 caractères Espèce de l’animal

Race chaîne de 50 caractères Race de l’animal

Sexe chaîne de 20 caractères Sexe de l’animal

Naiss Date Date de naissance de l’animal

Poids Decimal Poids de l’animal

Numv Entier auto-increment Identifiant de la visite

Datevis DateTime Date de la visite

cause chaîne de 50 caractères Cause de la visite

PoidsN Decimal Nouveau poids animal (lors de la viste)

Partie A : Gestion de données


1) Ecrire les requête SQL permettant de répondre aux questions suivantes :

a) Quel est le nombre de visites du mois actuel pour chaque animal(Noma)?

……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………

b)Quels sont les chiens husky qui ont fait leurs vaccins?

……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………

5
c) Quels sont les propriétaires (Nomp,Adress) qui ont plus de deux animaux :

……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………….

Partie B : Développement Web


On se propose de créer les pages "[Link]" contenant le formulaire ci-dessous
permettant de remplir fiche Animal, Fiche propriétaire et enregistrer les informations de la
visite.

1) On se référant à l’interface de la page [Link] Répondre par V si le code HTML proposé


est juste et F dans le cas contraire.

6
Code HTML Réponse

Le code HTML pour les cases à cocher du champ Visite pour:


<input type="checkbox" name="c1" id="c1" value="Vaccin"> Vaccin
<input type="checkbox" name="c2" id="c2" value="Antipuce"> Antipuce
<input type="checkbox" name="c3" id="c3" value="Vermifuge"> Vermifuge
<input type="checkbox" name="c4" id="c4" value="Autre"> Autre

Le code HTML pour les boutons radio du champ Sexe:


<input type="radio" name="Sexe1" value="Male"> Male
<input type="radio" name="Sexe2" value="Femelle"> Femelle
<input type="radio" name="Sexe3" value="Sterilisé"> Stérilisé

Le code HTML pour le champ Poids:


<label for="poids"> Poids </label>
<input type="decimal" name="poids" id="poids">

Le code HTML pour le bouton Annuler l’inscrit:


<input type="reset" value="Annuler l’inscrit" class=”btn” hidden>

2) Répondre par V si le code CSS proposé est juste et F dans le cas contraire.
Pour mettre en forme les labels des radio et checkbox ayant comme classe html a:
label{ font-weight: bold; font-family: 'Courier New'; }

.a{ font-weight: bold; font-family: 'Courier New'; }

#a{ font-weight: bold; font-family: 'Courier New'; }

Pour appliquer une bordure aux boutons au clic par l’utilisateur:


.btn:active { border: 2px solid green; }

.btn:hover { border: double green; }

.btn:active{border: 2px green; }

Pour mettre en rouge les étoiles des champs obligatoires:


span{ color:red; }

div{ color:red; }

bloc{ color:red; }

7
3) Le fichier “[Link]” reçoit les données envoyées avec la méthode post par le formulaire
de la page “[Link]”.
On suppose que le propriétaire et son animal sont déjà inscrits dans la base.
Compléter le fichier "[Link]" ci-dessous par les instructions nécessaires pour ajouter les
données relatives à la visite dans la table Visite. Le champ relatif à la date visite est égale à la
date système.

Code PHP

#Importer le fichier “[Link]” qui contient les instructions de


connexion au serveur
..................................
#Récupérer données du formulaire
$numa=$_POST[“noma”]; //numéro animal
$nomp=$_POST[“nomp”]; //nom propriétaire
$c1=$_POST[“c1”]; //cause visite
$c2=$_POST[“c2”]; //cause visite
$c3=$_POST[“c3”]; //cause visite
$c4=$_POST[“c4”]; //cause visite
$poids=$_POST[“poids”]; //poids de l’animal
$d=........................... //date et heure système
#Ajout visite
$Q1=”INSERT INTO Visite
VALUES(.............................................................)”;
mysqli_query($con,$Q1);
#Mettre à jour poids animal après visite
$Q2=”UPDATE animal SET poids=............WHERE........................;
mysqli_query($con,$Q2);

8
EXERCICE 4 (7pts)

Dans le cadre d’une formation accélérée en développement web, un formateur a attribué à un


participant, un petit projet qui vise à développer un convertisseur de devises.

Le participant a développé la page "[Link]" suivante :

Ci-dessous, on présente un extrait de la page "[Link]" :

<form>
<fieldset>
<legend> Convertisseur de devises :</legend>
<label> Montant (TND): </label><br>
<label> Vers :</label>
<input type="text" id="mt1" name="mt1" class="c"><br><br>
<select id="devise" name="devise" class="c">
<option value=""></option>
<option value="0.32 - $"> USD - Dollar des États-Unis</option>
<option value="0.30 - €"> EUR - Euro</option>
<option value="0.28 - CHF"> CHF - Franc suisse</option>
<option value="0.25 - £"> GBP - Livre sterling</option>
<option value="47.65 - ¥"> JPY - Yen japonais</option>
</select>
<input type="button" value="Convertir">
<input type="text" id="mt2" name="mt2" class="c">
<span id="symb"></span>
</fieldset>
</form>

1- Le participant a développé deux fonctions JavaScript :

- La fonction Symbole() qui permet d’afficher le symbole de la devise choisie de la liste

déroulante dans la zone qui a comme id "symb"

- La fonction Conversion() qui permet de calculer et d’afficher le montant en devise choisie

correspondant au montant en Dinar Tunisien saisi dans la zone Montant (TND)


9
a. Compléter la balise utilisée, pour chaque fonction, en précisant l’événement qui déclenche

l’appel de cette fonction :

L’appel de la fonction Symbole() se déclenche lorsqu’on perd le focus du champ devise

<…………………………………………………………………………………………………………………………………………>

L’appel de la fonction Conversion() se déclenche lorsqu’on clique sur le bouton Convertir

<………………………………………………………………………………………………………………………………………..>

b. Sachant que le taux de change et le symbole de chaque devise choisie sont stockés dans les

attributs value des éléments de la liste déroulante, compléter le fichier "[Link]"

function symbole() {
// Récupération de la valeur de symbole à partir de la valeur de devise choisie
dev=[Link]("devise").value;
symb =...............................................................................................................;
// Affichage de symbole
[Link](“symb”)…………………………………….. = symb;
}
function conversion() {
// Récupération de la valeur de montant (TND)
mt1 = [Link]("mt1").value;
// Récupération de la valeur de taux à partir de la valeur de devise choisie
dev=[Link]("devise").value;
taux =………………………………………………………………………………………………………………
// Calcul et affichage du montant en devise dans la zone de saisie qui a l’id “mt2”
[Link](“mt2”)…………………………………….. = mt1*taux ;
}

2- En présentant son travail au formateur, ce dernier explique au participant que le taux de

change n’est pas fixe.

Pour résoudre ce problème, le participant a créé une base de données présentée par le

schéma textuel suivant :

Devise(Id_devise, Nom_devise, Symbole)

Taux(Id_change, Taux_change, HeureDate, Id_devise# )

Les deux tables sont remplies comme suit :

10
Le participant a modifié aussi le code de la page "[Link]" :

<form method="post" action="[Link]">


……
<input type="text" id="mt1" name="mt1" class="c"><br><br>
<select id="devise" name="devise" class="c">
<option value="1"> USD - Dollar des États-Unis</option>
<option value="2"> EUR - Euro</option>
<option value="3"> CHF - Franc suisse</option>
<option value="4"> GBP - Livre sterling</option>
<option value="5"> JPY - Yen japonais</option>
</select>
……
<input type="submit" value="Convertir">
</form>

Compléter le fichier « [Link] », donné ci-dessous, par les instructions nécessaires


qui permet de :
- Chercher le taux de change le plus récent (nouvelle date) correspondant à la devise choisie de
la liste
- Calculer et afficher le montant de conversion sous la forme suivante :
montant1 TND = montant2 symbole exemple: 100 TND=33.5€
Sachant que montant1 est le montant saisie en TND, montant2 est le montant en devise et
symbole est le symbole de devise
[Link]

Commentaires Instructions

// récupération des données du $mnt1=$_POST[“mt1”];


formulaire
$devise=......................

// Requête pour récupérer le taux


$req1=........................................
de change et le symbole de la
..............................................
devise
..............................................
$res1=mysqli_query($conn,$req1);

// Calcul de montant en devise


$r=mysqli_fetch_array($res1);
$mnt2= ..............................

//Affichage de montant en devise echo ..............................

11

Vous aimerez peut-être aussi