Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lund
Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 4S.I. Lycée Attarine Ariana 2019-2020 Page 1/6 Lycee.attarine@gmail.com Une compagnie aérienne souhaite améliorer la gestion de ses vols à l’échelle nationale en créant un site web offrant les services suivants : L’ajout d’un pilote et l’édition d’un état statistique des vols réalisés par un pilote. TRAVAIL DEMANDÉ : A. Création de la base de données : 1) Créer une base de données intitulée "BD<votre numéro d’inscription>", puis créer les tables suivantes : Avion(IdAvion, Marque, NbrPlace) Pilote(Matricule, Nom, Prénom, Genre, Email) Vol(IdAvion#, DateDep, Durée, RefDep, RefDest, MatPilote#) Le dictionnaire de données ci-dessous indique la description des champs des tables : Table Champ Type Observation Avion IdAvion Chaîne de 4 caractères Identifiant de l’avion Marque Chaîne de 20 caractères NbrPlace Entier Nombre de places Pilote Matricule Chaîne de 4 caractères Matricule du pilote Nom Chaîne de 30 caractères Prénom Chaîne de 30 caractères Genre 1 Caractère “H” pour Homme “F” pour Femme Email Chaîne de 30 caractères Vol IdAvion Chaîne de 4 caractères DateDep Date et heure Date et heure de depart du vol Durée Entier Durée du vol exprimée en minutes RefDep Entier Référence de la ville de depart RefDest Entier Référence de la ville de destination MatPilote Chaîne de 4 caractères Matricule du pilote Remarque : RefDep et RefDest font référence à une table Aéroport (Ref, Ville) qu’on ne vous demande pas de créer. 2) Insérer les lignes suivantes dans les tables concernées : B. Création des pages Web : 1) Dans le dossier "WWW", créer un répertoire de travail intitulé "SW<votre numéro d’inscription>", où seront enregistrés tous les fichiers demandés. N.B. : Toutes les fonction JavaScript devront être crées dans un fichier intitulé "Controle.js". 2) Créer un document Flash et le publier au format HTML sous le nom "Menu.html" comportant deux boutons, de votre choix, de la bibliothèque commune, qui servirons de liens vers les pages "Ajout.html" et "Statistiques.html" comme indiqué ci-contre : Table Avion IdAvion Marque NbrPlace AB12 Airbus 2012 120 BO13 Boeing 2013 180 CN10 Concorde 2010 220 Table Vol IdAvion DateDep Durée RefDep RefDest MatPilote AB12 2015-01-12 13:40:00 75 1 5 BL68 CN10 2015-02-24 11:30:00 65 6 3 CN70 AB12 2015-01-15 15:45:00 125 5 1 BL68 BO13 2015-02-09 17:20:00 80 1 5 BL68 Table Pilote Matricule Nom Prénom Genre Email BL68 Bellili Lamine H bellili@laposte.net CN70 Chawachi Noura F noura@gmail.com KY75 Kefi Youssra F kefiyoussra@yahoo.fr Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 4S.I. Lycée Attarine Ariana 2019-2020 Page 2/6 Lycee.attarine@gmail.com 3) Créer le jeu de cadres ci-dessous et l’enregistrer sous le nom "Index.html" Cadre 1 : contiendra la page "Menu.html" Cadre 2 : contiendra par défaut la page "Ajout.html" et servira aussi à l’affichage des autres pages du site. 4) Créer la page "Ajout.html" contenant le formulaire suivant : N.B. : Le tableau de contrôle ci-dessous, résume les contrôles JavaScript à appliquer pour les zones de saisie du formulaire. Le clic sur le bouton "Annuler" permet d’initialiser les champs du formulaire. Le clic sur le bouton "Ajouter" fait appel à : a) Une fonction JavaScript permettant de contrôler le remplissage du formulaire en s’assurant de la sélection d’un "Genre" et en respectant les contraintes décrites dans le tableau de contrôle. b) Un script Php développé dans un fichier intitulé "Ajout.php" permettant : ✓ D’afficher le message "Pilote existant" dans le cas où la valeur de la matricule saisie existe déjà dans la base de données, Ou bien, ✓ D’insérer les données dans la table appropriée puis afficher un message de réussite de l’opération. 5) Créer la page "Statistiques.html" contenant le formulaire suivant : Le clic sur le bouton "Editer" fait appel à : a) Une fonction JavaScript permettant de vérifier le sélection d’un pilote. b) Un script Php développé dans un fichier intitulé "Statistiques.php", permettant d’afficher le total des durées (en heure) ainsi que le nombre des vols réalisés par le pilote sélectionné et ceci pour chaque marque d’avion, comme indiqué ci-dessous. <Nom><Prénom> "a effectué les vols suivants :" <Marque> [Total des durées] [Nombre des vols] Cadre 1 Cadre 2 Tableau de contrôle Zone de saisie Contrôle Matricule Deux lettres suivies de deux chiffres Nom Chaîne alphabétique non vide Prénom Chaîne alphabétique non vide Email Respecte le format suivant : Ch1@ch2.ch3 Avec : - Ch1, ch2 et ch3 sont trois chaînes alphabétiques non vides, - Ch3 comporte 2 ou 3 caractères. Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 4S.I. Lycée Attarine Ariana 2019-2020 Page 3/6 Lycee.attarine@gmail.com <head> <meta charset="utf-8"> <title>Ajout d'un Pilote</title> </head> <body> <head> <meta charset="utf-8"> <title>Statistiques</title> <script src="Controle.js"></script> </head> <body> Pilote: <select size="1" name="D1"> <option>Sélectionnez un pilote</option> <option value="BL68">Bellili Lamine</option> <option value="CN70">Chawachi Noura</option> <option value="KY75">Kefi Youssra</option> </select> <input type="submit" value="Editer" name="B1"> </form> </body> Ajout.html T1 T2 T3 R1 T4 Statistiques.html <script src="Controle.js"></script> <form name="F" method="POST" action="Ajout.php" onsubmit="return Verif_Ajout()"> <form name="F" method="POST" action="Statistiques.php" onsubmit="return Verif_Stat()"> Genre: <input type="radio" value="H" name="R1">Homme <input type="radio" value="F" name="R1">Femme Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 4S.I. Lycée Attarine Ariana 2019-2020 Page 4/6 Lycee.attarine@gmail.com function Verif_Ajout() { var Mat = F.T1.value; var Nom = F.T2.value; var Prenom = F.T3.value; var Mail = F.T4.value; //■■■■■■■■■■■■■■■■Vérif de la Matricule if (Mat.length != 4 || !Alpha(Mat.substr(0, 2)) || Mat[2] < '0' || Mat[2] > '9') { alert("Matricule: 2 lettres suivies de 2 chiffres!") return false; } //■■■■■■■■■■■■■■■■Vérif du Nom if (Nom.length == 0 || !Alpha(Nom)) { alert("Nom vide ou non alphabétique!") return false; } //■■■■■■■■■■■■■■■■Vérif du Prénom if (Prenom == '' || !Alpha(Prenom)) { alert("Prénom vide ou non alphabétique!") return false; } //■■■■■■■■■■■■■■■■Vérif de la sélection d'1 Genre if (!F.R1[0].checked && !F.R1[1].checked) { alert("Veuillez sélectionner un Genre") return false; } //■■■■■■■■■■■■■■■■Vérif de l'Email //Taille <= 50--------------------------------- < if (Mail.length > 50){ alert('Email: Taille > 50!'); return false; } //L'existence de l'arobase et du point -------- < if (Mail.indexOf('@') == -1 || Mail.indexOf('.') == -1){ alert("Email: Abscence du point ou de l'arobase!"); return false; } //Pos(.) > Pos(@) ----------------------------- < if (Mail.indexOf('.') < Mail.indexOf('@')){ alert("Email: Pos('.') doit être > Pos('@')!"); return false; } //Extraction de ch1, ch2 et ch3 --------------- < // Exemple: Email: a b c @ y y . c o m // Indices: 0 1 2 3 4 5 6 7 8 9 var at = Mail.indexOf('@'); // at = 3 var pt = Mail.indexOf('.'); // pt = 6 var ch1 = Mail.substr(0, at); // (0, 3) var ch2 = Mail.substr(at + 1, pt - at - 1); // (4, 2) var ch3 = Mail.substr(pt + 1); Fonction Verif_Ajout() Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 4S.I. Lycée Attarine Ariana 2019-2020 Page 5/6 Lycee.attarine@gmail.com //ch1, ch2 : non vides, ch3 comporte 2 ou 3 caratères if (ch1.length == 0 || ch2.length == 0 || ch3.length < 2 || ch3.length > 3) { alert("Email: Vérifier les longueurs des 3 parties de l'email!"); return false; } //ch1, ch2 et ch3 : chaînes alphabétiques if (!Alpha(ch1) || !Alpha(ch2) || !Alpha(ch3)) { alert("Email: Les 3 parties de l'email doivent être alphabétique!"); return false; } } /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ function Alpha(Ch) { Ch = Ch.toUpperCase(); for (var i = 0; i < Ch.length; i++) { if (Ch[i] < 'A' || Ch[i] > 'Z') { return false; } } return true; } <meta charset="utf-8"> <title>Ajouter le pilote</title> <?php mysql_connect("localhost", "root"); mysql_select_db("BD2015") or die("E1: " . mysql_error()); $Mat = $_POST["T1"]; $Nom = $_POST["T2"]; $Prenom = $_POST["T3"]; $Genre = $_POST["R1"]; //Valeur reçue: "H" ou "F" $Mail = $_POST["T4"]; $Q = "SELECT * FROM Pilote WHERE Matricule='$Mat'"; $R = mysql_query($Q) or die("E2: " . mysql_error()); if (mysql_num_rows($R) != 0) { die("Pilote existant"); } $Q = "INSERT INTO Pilote VALUES('$Mat','$Nom','$Prenom','$Genre','$Mail')"; mysql_query($Q) or die("E3: " . mysql_error()); echo "Opération Réussite"; ?> <html> <frameset rows="*,*"> <frame name="haut" src="Menu.html"> <frame name="bas" src="Ajout.html"> </frameset> </html> Ajout.php Index.html Examen du baccalauréat - Session de Juin 2015 - Épreuve pratique : T.I.C - Lundi 18 Mai 2015 à 8h30 4S.I. Lycée Attarine Ariana 2019-2020 Page 6/6 Lycee.attarine@gmail.com <meta charset="utf-8"> <title>Statistique</title> <?php mysql_connect("localhost", "root"); mysql_select_db("BD2015") or die("E1: " . mysql_error()); $Mat = $_POST["D1"]; $Q = "SELECT Nom, Prenom FROM Pilote WHERE Matricule='$Mat'"; $R = mysql_query($Q) or die("E2: " . mysql_error()); $T = mysql_fetch_array($R); echo "$T[0] $T[1] a effectué les vols suivants :<br>"; $Q = "SELECT Marque, SUM(Duree), COUNT(*) FROM Vol, Avion WHERE MatPilote='$Mat' AND Vol.IdAvion = Avion.IdAvion GROUP BY Vol.IdAvion"; $R = mysql_query($Q) or die("E3: " . mysql_error()); while ($T = mysql_fetch_array($R)) { echo "$T[0] | $T[1] | $T[2] <br>"; } ?> 1. Ouvrir Flash→Menu "Fenêtre"→"Bibliothèques communes" →"Boutons"→Choisir et insérer 2 boutons→ Clic droit sur un bouton→Scripts→Activer l'"Assistant de script" (→suivre les étapes indiquées dans les deux imprimes écran) 2. Répéter les étapes de l’ajout du script pour uploads/Voyage/ 2015bac-pratique-18052015-tic-8h.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 06, 2021
- Catégorie Travel / Voayage
- Langue French
- Taille du fichier 0.4184MB