0% ont trouvé ce document utile (0 vote)
18 vues6 pages

Python

Le document présente des améliorations apportées à une application de délibération automatisée, notamment l'ajout de commentaires explicatifs, une meilleure gestion des erreurs, une fonctionnalité de réinitialisation des champs et une fonction pour calculer les moyennes des notes. Les modifications visent à rendre le code plus compréhensible et convivial. La version améliorée est plus robuste et facilite l'utilisation pour les utilisateurs.

Transféré par

luteterichard3
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues6 pages

Python

Le document présente des améliorations apportées à une application de délibération automatisée, notamment l'ajout de commentaires explicatifs, une meilleure gestion des erreurs, une fonctionnalité de réinitialisation des champs et une fonction pour calculer les moyennes des notes. Les modifications visent à rendre le code plus compréhensible et convivial. La version améliorée est plus robuste et facilite l'utilisation pour les utilisateurs.

Transféré par

luteterichard3
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

Pour améliorer le code fourni, nous allons apporter quelques modifications et ajouter des commentaires

explicatifs afin de mieux comprendre le fonctionnement de l'application de délibération automatisée.


Voici les principales améliorations que nous allons apporter :

1. **Structuration du Code** : Ajout de commentaires pour expliquer chaque section.

2. **Gestion des Erreurs** : Amélioration de la gestion des erreurs lors de la récupération des notes.

3. **Fonctionnalité de Reset** : Ajout d'un bouton pour réinitialiser les champs de saisie.

4. **Calcul des Moyennes** : Ajout d'une fonction pour calculer la moyenne des notes.

Voici le code modifié avec des commentaires :

```python

from tkinter import *

############# GLOBAL VARIABLE #################

# Création de la fenêtre principale

root = Tk()

[Link]("Deliberation App")

frame_main = Frame(root)

frame_bas = Frame(frame_main, bg='white')

# Fonction pour donner une mention selon le score

def donnerMention(point):

mention = ''

if 0 < point < 40:

mention = 'NAF'
elif 39.9 < point < 50:

mention = 'A'

elif 49.9 < point < 70:

mention = 'S'

elif 69.9 < point < 80:

mention = 'D'

elif 79.9 < point < 90:

mention = 'GD'

elif 89.9 < point < 100:

mention = 'PGD'

else:

mention = 'Erreur dans les cotes'

return mention

# Fonction principale pour créer l'interface utilisateur

def main():

##### AFFICHAGE FENETRE TOP ##############

frame_haut = Frame(frame_main, height=120, bg='white')

# Configuration GRID Display

frame_haut.grid_columnconfigure(0, weight=1, minsize=125)

frame_haut.grid_rowconfigure(0, weight=1, minsize=125)

label_title = Label(frame_haut, text="Deliberation App",

font=("Courrier", 40), fg='#39c3fa', bg='white')

label_title.grid(row=0, column=1, padx=5, pady=5, sticky="nsew")


frame_haut.pack(side='top', fill='x')

# Menu pour les noms des étudiants

frame_menu = Frame(frame_main, bg='lightblue', height=80)

lbl_nom = Label(frame_menu, text='Nom Etudiant', font=('Arial', 14))

lbl_nom.grid(row=0, column=0, padx=65, pady=5, sticky="nsew")

# Ajout des labels pour les matières

subjects = ['Python', 'Java', 'Web II', 'Management', 'English 2']

for i, subject in enumerate(subjects):

Label(frame_menu, text=subject, font=('Arial', 14)).grid(row=0, column=i+1, padx=35, pady=5,


sticky="nsew")

frame_menu.pack(side='top', fill='x')

# Saisie des noms d'étudiants

frame_mid = Frame(frame_main)

frame_mid.pack()

frame_left = Frame(frame_mid, bg='lightblue', width=300)

frame_left.pack(side='left', fill='y')

entries = []

for i in range(4):

entry = Entry(frame_left, highlightcolor='white', bd=5, bg='lightblue', font=('Arial', 20))

[Link](pady=5)
[Link](entry)

# Configuration du cadre pour les notes

frame_right = Frame(frame_mid, bg='white')

frame_right.pack(side='right', fill='y')

# Création des champs de saisie pour les notes

for i in range(20):

widget = Entry(frame_right, bg="white", borderwidth=2, relief="groove")

[Link](row=i//5, column=i%5, padx=5, pady=5, sticky="nsew")

# Création des boutons

frame_btn = Frame(frame_main, bg='white')

btn_submit = Button(frame_btn, text='Deliberer', bg='#39c3fa', fg='white', font=("Courrier", 16),

command=lambda: calcul_points(entries))

btn_submit.pack(side='right')

# Bouton pour réinitialiser les champs

btn_reset = Button(frame_btn, text='Réinitialiser', bg='red', fg='white', font=("Courrier", 16),

command=lambda: reset_fields(entries))

btn_reset.pack(side='right', padx=5)

frame_btn.pack(fill='x')

label_bas = Label(frame_bas, text="Résultats Délibération",


font=("Courrier", 30), fg='#39c3fa', bg='yellow')

label_bas.pack()

frame_bas.pack(side='bottom')

frame_main.pack(expand=YES)

[Link]()

# Fonction pour calculer les points et afficher les résultats

def calcul_points(entries):

for i, entry in enumerate(entries):

total = 0

for j in range(4): # Supposons 4 matières

try:

score = float([Link]())

total += score

except ValueError:

total += 0 # Gestion des erreurs si la note n'est pas un nombre

mention = donnerMention(total)

lbl = Label(frame_bas, text=f"{[Link]()} a obtenu : {total} %, avec une mention : {mention}",

font=('Arial', 16))

[Link](side='bottom', fill='x')

# Fonction pour réinitialiser les champs

def reset_fields(entries):

for entry in entries:


[Link](0, END) # Efface le contenu de chaque champ

if __name__ == '__main__':

main()

```

### Explications des Modifications :

1. **Commentaires** : Chaque fonction et section du code est maintenant commentée pour faciliter la
compréhension.

2. **Gestion des Erreurs** : Lors de la récupération des notes, nous utilisons un `try` pour éviter une
erreur si l'utilisateur entre une valeur non numérique.

3. **Bouton de Réinitialisation** : Ajout d'un bouton pour effacer rapidement tous les champs de saisie.

4. **Calcul des Notes** : La fonction `calcul_points` est modifiée pour traiter les notes et afficher les
résultats correctement.

Cette version améliorée du code est plus robuste et conviviale pour l'utilisateur.

Vous aimerez peut-être aussi