Sujet type bac pratique STI n°1 : la bibliothèque numérique du lycée
Écris tes programmes en Python ou en algorithme et vérifie-les tout de suite, puis ouvre la correction exercice par exercice.
Toutes les ressources se trouvent dans le dossier Ressources. Créer, dans le dossier du serveur web local (www ou htdocs), un dossier de travail où seront enregistrés tous les fichiers à réaliser. La bibliothèque du lycée veut une partie de son site web : l'inscription d'un lecteur et la liste de ses livres. Barème sur 20 points.
Partie A : création de la base de données (6 pts)
Le site utilise une base de données décrite par la représentation textuelle suivante :
- lecteur (idLec, nomLec, classe, email, mdp)
- livre (idLiv, titre, auteur, nbEx)
- emprunt (idEmp, #idLec, #idLiv, dateEmp)
Description des champs :
- idLec : entier auto-incrémenté, identifiant d'un lecteur ; nomLec : chaîne de 50 caractères, obligatoire ; classe : chaîne de 10 caractères, obligatoire ; email : chaîne de 50 caractères, obligatoire et unique ; mdp : chaîne de 6 caractères, obligatoire.
- idLiv : chaîne de 4 caractères, identifiant d'un livre ; titre : chaîne de 60 caractères, obligatoire ; auteur : chaîne de 40 caractères, obligatoire ; nbEx : entier obligatoire, nombre d'exemplaires, positif ou nul.
- idEmp : entier auto-incrémenté, identifiant d'un emprunt ; idLec et idLiv, obligatoires, désignent le lecteur et le livre emprunté ; dateEmp : date de l'emprunt, obligatoire.
Lignes à insérer :
- lecteur : (Rim Trabelsi, 4SI1, [email protected], r1m2b3), (Sami Ben Ali, 4SI2, [email protected], s4m1x9) ;
- livre : (L001, Les Misérables, Victor Hugo, 3), (L002, La Statue de sel, Albert Memmi, 2), (L003, Les Chants de la vie, Abou el Kacem Chebbi, 4), (L004, Agar, Albert Memmi, 1) ;
- emprunt : (1, L001, 2026-04-02), (2, L001, 2026-04-05), (1, L003, 2026-04-09), (2, L002, 2026-04-12).
- 1) Créer la base de données bibliotheque, ses tables et leurs relations, puis insérer les lignes données (4 pts).
- 2) Écrire la requête qui affiche le titre de chaque livre emprunté et son nombre d'emprunts, du plus emprunté au moins emprunté (à égalité, par ordre alphabétique du titre) (2 pts).
Partie B : création des documents web (14 pts)
Consignes : toutes les fonctions JavaScript sont enregistrées dans mesControles.js ; toutes les règles CSS sont dans le fichier mesStyles.css, donné ci-dessous ; toutes les pages HTML sont reliées à mesStyles.css, et inscription.html est aussi reliée à mesControles.js. Le bouton « Annuler » d'un formulaire efface ses champs.
body { font-family: Arial, sans-serif; margin: 0; }
header { background-color: #1a5276; color: white; padding: 10px; }
nav { width: 24%; display: inline-block; }
section { width: 49%; display: inline-block; }
aside { width: 24%; display: inline-block; }
footer { text-align: center; }
iframe { width: 100%; height: 400px; border: none; }
- 1) Créer la page index.html reliée à mesStyles.css : un élément <header> contient le titre de niveau 1 « Bibliothèque du lycée » ; un élément <nav> contient deux liens, « Inscription d'un lecteur » vers inscription.html et « Nos livres » vers livres.html, qui s'ouvrent dans le cadre zone ; un élément <section> contient le cadre (iframe) de nom zone, qui affiche par défaut inscription.html ; un élément <aside> contient l'image biblio.jpg ; un élément <footer> contient l'adresse [email protected] (3 pts).
- 2) Créer la page inscription.html, reliée à mesStyles.css et à mesControles.js, avec un formulaire qui envoie ses champs à ajout.php par la méthode POST et appelle verifier() avant l'envoi (onsubmit="return verifier()") : nom (nomLec), classe (liste classe : 4SI1, 4SI2, 4SI3), e-mail (email), mot de passe de 6 caractères au plus (mdp), et les boutons « Envoyer » et « Annuler » (3 pts).
- 3) Écrire dans mesControles.js la fonction nomValide(nom), vraie si nom n'est pas vide et n'a que des lettres et des espaces, et la fonction mdpValide(mdp), vraie si mdp a exactement 6 caractères dont au moins un chiffre et au moins une lettre ; puis la fonction verifier() qui affiche un message (alert) et renvoie false si l'un des deux champs n'est pas valide (4 pts).
- 4) Écrire la page ajout.php, qui travaille sur la base de la partie A (connexion dans connexion.php, donné) : si l'e-mail reçu est déjà celui d'un lecteur, elle affiche « Adresse déjà utilisée » ; sinon elle ajoute le lecteur et affiche « Inscription réussie : lecteur n°3 » avec son identifiant (4 pts).
<?php
$cnx = mysqli_connect("localhost", "root", "", "bibliotheque");
?>
Pour essayer la page PHP sans la partie A, voici la base sur laquelle elle est vérifiée (les colonnes des tables, sans leurs contraintes) :
CREATE DATABASE bibliotheque;
USE bibliotheque;
CREATE TABLE lecteur (idLec INT AUTO_INCREMENT PRIMARY KEY, nomLec VARCHAR(50), classe VARCHAR(10), email VARCHAR(50), mdp CHAR(6));
INSERT INTO lecteur (nomLec, classe, email, mdp) VALUES ('Rim Trabelsi', '4SI1', '[email protected]', 'r1m2b3'), ('Sami Ben Ali', '4SI2', '[email protected]', 's4m1x9');
Correction détaillée
La correction de ce devoir est réservée aux abonnés. Elle donne l'analyse, l'algorithme en notation tunisienne, le programme Python vérifié et les erreurs fréquentes de chaque exercice. Avec un compte gratuit, tu peux ouvrir 3 corrections de ton choix.
Connecte-toi d'abord : créer un compte ou me connecter.
Tu as encore 0 correction(s) gratuite(s) à utiliser.
Il te faut un abonnement actif pour les autres corrections. Voir les tarifs ou demander un code sur WhatsApp, Instagram ou Facebook.
Les corrections gratuites de cet appareil ont déjà été utilisées, avec ce compte ou un autre : chaque appareil a droit à 3 corrections gratuites, quel que soit le nombre de comptes. Pour les autres corrections, il faut un abonnement. Voir les tarifs ou écrire sur WhatsApp.
Mission Carthage est en période de test : le site s'ouvre avec un code d'accès. Demande ton code sur WhatsApp, Instagram ou TikTok, puis tape-le sur missioncarthage.tn.
Cette correction n'est pas encore publiée. Reviens bientôt.
Impossible de charger la correction. Vérifie ta connexion et réessaie.
Toutes les corrections jusqu'au devoir de synthèse3 mois pour 20 TND, offre jusqu'au 30 novembre 2026 Envoyer à un parent pour qu'il paieSujet original écrit pour Mission Carthage, dans le format de l'épreuve pratique de Systèmes et Technologies de l'Informatique du bac Sciences de l'informatique (2 heures, partie A base de données, partie B documents web). Ce n'est pas un sujet officiel.
Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs