Devoir pratique STI n°9 : l'espace des notes, choisir la classe en JavaScript, les moyennes de la classe en PHP et MySQL
Écris tes programmes en Python ou en algorithme et vérifie-les tout de suite, puis ouvre la correction exercice par exercice.
Le travail se fait sur ordinateur, avec un serveur local (XAMPP) : chaque fichier est enregistré sous le nom donné, dans le même dossier. Les deux exercices construisent l'espace des notes du site du lycée : la page recherche.html vérifie le code de la classe avec le fichier recherche.js de l'exercice 1, puis l'envoie à la page notes.php de l'exercice 2. Barème sur 20 points.
Exercice 1 : choisir la classe (8 pts)
L'espace des notes du site du lycée commence par la page recherche.html suivante, reliée au fichier recherche.js : on y tape le code d'une classe, que le formulaire envoie à la page notes.php de l'exercice 2 par la méthode GET. Avant l'envoi, onsubmit="return verifier()" vérifie le code.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Espace des notes</title>
</head>
<body>
<h1>Espace des notes</h1>
<p><a href="classes.php">Toutes les classes</a></p>
<form action="notes.php" method="get" onsubmit="return verifier()">
<label for="classe">Code de la classe</label>
<input type="text" id="classe" name="classe">
<input type="submit" value="Voir les moyennes">
</form>
<p id="erreur"></p>
<script src="recherche.js"></script>
</body>
</html>
Les codes des classes vont de 4SI1 à 4SI4 : 4SI suivi d'un chiffre de 1 à 4. Écrire dans recherche.js, en JavaScript sans expression régulière :
- 1) la fonction classeValide(c) qui renvoie true si c a exactement 4 caractères, commence par 4SI et finit par un chiffre de 1 à 4 ; sinon false (4 pts) ;
- 2) la fonction verifier() qui lit le code tapé dans le champ classe : s'il n'est pas valide, elle écrit « Classe inconnue : de 4SI1 à 4SI4 » dans le paragraphe erreur et renvoie false ; sinon elle vide ce paragraphe et renvoie true (4 pts).
Exemples : classeValide("4SI2") donne true, classeValide("4si2") donne false et classeValide("4SI5") donne false.
Exercice 2 : les moyennes d'une classe (12 pts)
Le lycée garde ses élèves et leurs notes dans la base MySQL lycee, créée par le fichier base.sql. La connexion à la base est dans connexion.php, que chaque page inclut avec require. La page recherche.html de l'exercice 1 envoie le code de la classe à notes.php, et son lien ouvre classes.php.
CREATE DATABASE lycee;
USE lycee;
CREATE TABLE eleve (
num INT PRIMARY KEY,
nom VARCHAR(30) NOT NULL,
classe VARCHAR(10) NOT NULL
);
CREATE TABLE note (
id INT PRIMARY KEY,
num_eleve INT NOT NULL,
matiere VARCHAR(20) NOT NULL,
valeur INT NOT NULL,
FOREIGN KEY (num_eleve) REFERENCES eleve(num)
);
INSERT INTO eleve VALUES (1, 'Amri', '4SI1'), (2, 'Belhaj', '4SI2'), (3, 'Chebbi', '4SI1'), (4, 'Dridi', '4SI1'), (5, 'Ezzine', '4SI2');
INSERT INTO note VALUES
(1, 1, 'Algo', 14), (2, 1, 'STI', 17), (3, 1, 'Maths', 12),
(4, 2, 'Algo', 12), (5, 2, 'STI', 16),
(6, 3, 'Algo', 9), (7, 3, 'STI', 11),
(8, 4, 'Algo', 16), (9, 4, 'STI', 13), (10, 4, 'Maths', 18),
(11, 5, 'Algo', 8), (12, 5, 'STI', 10), (13, 5, 'Maths', 9);
<?php
$cnx = mysqli_connect("localhost", "root", "", "lycee");
?>
- 1) Écrire la page classes.php qui affiche le titre « Classes », puis un tableau HTML avec chaque classe et son nombre d'élèves, par ordre alphabétique de la classe (4 pts).
- 2) Écrire la page notes.php, appelée avec le code de la classe dans l'adresse (par exemple notes.php?classe=4SI1). Si le paramètre classe manque, elle affiche « Classe non indiquée ». Si la classe n'a aucun élève noté, elle affiche « Aucun élève ». Sinon elle affiche le titre « Classe 4SI1 » (avec le code reçu), puis un tableau HTML avec le nom de chaque élève et sa moyenne arrondie à l'entier, de la meilleure moyenne à la moins bonne (à égalité, par ordre alphabétique du nom) (8 pts).
Exemple : notes.php?classe=4SI2 affiche le titre Classe 4SI2, puis Belhaj 14 et Ezzine 9.
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 d'un devoir pratique d'informatique (4ème Sciences de l'informatique, technologies du web). Ce n'est pas un sujet officiel.
Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs