Projet filé : bulletin automatique

Mini projet bulletin automatique

Ce projet va durer dans le temps car nous y reviendrons en l'enrichissant de nos compétences, il faudra donc penser à le sauvegarder sur le réseau et faire une copie sur une clé ou sur votre espace perso!

Le but de ce mini projet et de créer un système de gestion de note ( type ecoledirecte) automatique qui permettra à l'utilisateur d'entrer des notes, de calculer la moyenne, d'affecter une appréciation selon la moyenne ,d'insérer une interface graphique...

Créer une fonction notes qui demande à l’utilisateur si il veut entrer une note puis demande de la saisir. Cette fonction devra permettre de rentrer plusieurs notes et devra renvoyer une liste
Créer une fonction moyenne qui prendra en paramètre une liste de notes et qui renverra la moyenne ( float)
Intégrer dans les deux fonctions précédentes, la notion de coefficient. La fonction notes devra renvoyer une "liste de tuple" où le premier élèment de chaque tuple est la note et le second, le coefficient, exemple: [(2,1),(15,3),(11,2)]

Avancement du projet

Le code ci-dessous est un exemple de correction, il existe différentes manières de résoudre les problèmes😉


def notes():
""" fonction notes qui demande à l’utilisateur si il veut entrer une note puis demande de la saisir.
précondition: fonction sans paramètre
Postcondition: la fonction renvoie une liste de tuples"""
    notes=[]
    rep="o"
    while rep=="o":

        coef=int(input("quel est le coefficient"))
        note=int(input("entrez votre note"))
        note_c=(note,coef)
        notes.append((note_c))
        rep=input("si vous souhaitez entrer une nouvelle note tapez o sinon tapez n")

    return notes
def moy(L):
"""fonction moy qui calcul la moyenne d'une liste de notes
précondition: L doit être du type list contenant des tuples
postcondition: la fonction renvoie une variable de type float
"""
    somme=0
    coeff=0
    for i in range(len(L)):
        somme+=L[i][0]*L[i][1]

        coeff+=L[i][1]

    return somme/coeff   

nsi={'Yaelle': [], 'Valentin':[], 'Matheo':[], 'Jade': [],'Léa':[],'Melvin':[],'Vinh':[],'Timéo':[],'Robin':[],'Camille':[],'Malo':[],'Mael':[],'Sacha':[],'Hermione':[],'Heloise':[],'Tanguy':[],'Aurore':[],'Jeremy':[],'Esteban':[],}

imaginons que nous disposons d'un dictionnaire contenant la liste d'élèves d'un groupe de NSI par exemple😉.

Vous devez modifier la fonction notes qui prendra en paramètre le dictionnaire d'élève ( nsi ) permettant d'affecter les notes saisies par l'utilisateur à un élève précis.

Pensez à vérifier que l'élève est bien présent dans le groupe

Pour les plus rapides

Pensez à renseigner les docstrings et insérer des asserts

Vous pouvez essayer de réfléchir à améliorer notre façon de "boucler", il faudrait limiter l'utilisateur à deux réponses o ou n .

Vous pouvez également proposer des évolutions ( notation, interface...). Nous verrons par la suite, la modification de la procédure de l'utilisateur sera modifiée mais ça ce sera dans l'épisode CSV😉