Mission Carthage العربية
اقرا الصفحة هذي بالتونسي

Accueil › Devoirs › Bac SI

Devoir pratique STI n°9 : l'espace des notes, choisir la classe en JavaScript, les moyennes de la classe en PHP et MySQL

Bac Sciences de l'informatique, 3ème trimestre. Durée : 1 heure. Sur 20 points.

É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 :

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");
?>

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.

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 paie

Sujet 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