New Text Document
New Text Document
import tkinter as tk
from tkinter import messagebox, ttk
connexion.commit()
connexion.close()
# Validate input
if not (nom and prenom and date_naissance and email):
messagebox.showerror("Erreur", "Tous les champs doivent être remplis.")
return
# Insert student into the database
connexion = sqlite3.connect('gestion_etudiants.db')
curseur = connexion.cursor()
connexion.commit()
messagebox.showinfo("Succès", "Étudiant ajouté avec succès.")
clear_student_entries()
connexion.close()
# Validate input
if selected_student == "Sélectionner un étudiant":
messagebox.showerror("Erreur", "Sélectionnez un étudiant.")
return
# Extract student ID
student_id = [student[0] for student in students if f"{student[1]}
{student[2]}" == selected_student][0]
if note_cs:
try:
curseur.execute('''
INSERT INTO inscription (id_etudiant, id_module, note)
VALUES (?, (SELECT id_module FROM modules WHERE nom_module =
'Informatique'), ?)
ON CONFLICT(id_etudiant, id_module)
DO UPDATE SET note = excluded.note
''', (student_id, float(note_cs)))
except ValueError:
messagebox.showerror("Erreur", "La note doit être un nombre.")
connexion.close()
return
connexion.commit()
messagebox.showinfo("Succès", "Notes assignées avec succès.")
clear_grade_entries()
connexion.close()
connexion.close()
connexion = sqlite3.connect('gestion_etudiants.db')
curseur = connexion.cursor()
curseur.execute('''SELECT
e.nom AS nom_etudiant,
e.prenom AS prenom_etudiant,
MAX(CASE WHEN m.nom_module = 'Physique' THEN i.note ELSE NULL END) AS
Physique,
MAX(CASE WHEN m.nom_module = 'Mathématiques' THEN i.note ELSE NULL END) AS
Mathématiques,
MAX(CASE WHEN m.nom_module = 'Informatique' THEN i.note ELSE NULL END) AS
Informatique,
AVG(i.note) AS Moyenne_Generale
FROM
etudiants e
LEFT JOIN
inscription i ON e.id_etudiant = i.id_etudiant
LEFT JOIN
modules m ON i.id_module = m.id_module
GROUP BY
e.id_etudiant;''')
resultats = curseur.fetchall()
for ligne in resultats:
tree.insert("", tk.END, values=ligne)
connexion.close()
# Initialize database
initialize_db()
root.mainloop()