Bonjour à vous tous!
J'ai a faire un programme avec l'aide de fonction... Ce que je pense avoir bien réussi, mais au moment de l'affichage tout les données sont a 0. Pourquoi ?
Voici mon code :
# Déclaration et initialisation des constantes
# (Utilisable dans les fonctions et dans le programme principal)
TX_BONUS1 = 5
TX_BONUS2 = 10
TX_BONUS3 = 15
TX_AUGMENTATION1 = 1.5
TX_AUGMENTATION2 = 2.5
TX_AUGMENTATION3 = 3.5
MINIMUM_NOTE_EVALUATION = 1.00
MAXIMUM_NOTE_EVALUATION = 10.00
SALAIRE_MINIMUM = 0.0
GRAND_N = "N"
PETIT_N = "n"
GRAND_O = "O"
PETIT_O = "o"
# Description : Affichage d'une brève description de ce fait le logiciel
def presenterLogiciel ():
print ("BIENVENUE")
print ("Ce programme à pour but de calculer votre bonus et votre augmentation de salaire")
print ("--------------------------------------------------------------------------------")
# Description : Affichage d'un bref message à la fermeture du logiciel
def fermetureProgramme ():
print("Merci d'avoir utilisé ce programme")
print("Au revoir!")
# Description : Saisir, valider et retourner la réponse à une question.
# Retour : la réponse à la question à retourner.
def question():
# Variables locale
continuation = ""
continuation = input("Désirez-vous calculer votre bonus et votre augmentation? (O ou o = OUI, N ou n = NON) : ")
while (continuation != PETIT_N and continuation != GRAND_N and continuation != PETIT_O and continuation != GRAND_O) :
print(" Réponse invalide !")
continuation = input("Désirez-vous calculer votre bonus et votre augmentation? (O ou o = OUI, N ou n = NON) : ")
return continuation
# Description : Saisie et valide l'entré de la matricule
# Retour : Le matricule à retourner
def saisieMatricule():
# Variable locale
matricule = ""
while not(len(matricule)==6 and matricule[:4].isalpha() and matricule[-2:].isdigit()):
print("Le matricule doit commencer par 4 lettres et finir par 2 chiffres")
matricule = input("Entrer votre matricule:")
return matricule
# Description : Saisir la nom et la retourne
# Retour : Le nom à retourner
def saisieNom():
# Variable locale
nom = ""
execption = " '-"
while not(len(nom)<= 20 and len(nom)>= 3 and nom.isalpha()):
print("Doit avoir au minimum 3 lettres et au maximum 20")
nom = input("Entrer votre nom:")
return nom
# Description : Saisir la prenom et la retourne
# Retour : Le prénom à retourner
def saisiePrenom():
# Variable locale
prenom = ""
execption = " '-"
while not(len(prenom)<= 20 and len(prenom)>= 3 and prenom.isalpha()):
print("Doit avoir au minimum 3 lettres et au maximum 20")
prenom = input("Entrer votre prenom:")
return prenom
# Description : Saisir le salaire et la retourne
# Retour : Le salaire à retourner
def saisieSalaire():
# Variable locale
salaire = 0.00
while not(salaire > SALAIRE_MINIMUM):
salaire = float(input("Entrer votre salaire:"))
return salaire
# Description : Saisir la note de performance et la retourne
# Retour : Le note de performance à retourner
def saisieNotePerformance():
# Variable locale
notePerformance = 0.00
while not(notePerformance >= MINIMUM_NOTE_EVALUATION and notePerformance <= MAXIMUM_NOTE_EVALUATION):
print ("Doit etre supérieur à 1.00 et inférieur à 10.00")
notePerformance = float(input("Entrer votre nom d'évaluation:"))
return notePerformance
# Description : Calcul le montant du bonus et la retourne
# Paramètre : "notePerformance" est le critère pour choisir le taux d'augmentation à appliquer
# Paramètre: "salaire" est le salaire de l'employé
# Retour : Le montant du bonus à retourner
def calculMontantBonus(notePerformance, salaire):
# Variable Locale
montantBonus = 0.00
if notePerformance <= 4.99 :
montantBonus = salaire * (TX_BONUS1/100)
elif notePerformance >= 5 and note_performance <= 7.99:
montantBonus = salaire * (TX_BONUS2/100)
else:
montantBonus = salaire * (TX_BONUS3/100)
return montantBonus
# Description : Calcul le montant de l'augmentation et la retourne
# Paramètre : "salaire" est le salaire de l'employé
# Paramètre : "notePerformance" est le critère pour choisir le taux d'augmentation à appliquer
# Retour : Le montant de l'augmentation à retourner
def calculAugmentation(notePerformance, salaire):
# Variable Locale
montantAugmentation = 0.00
if notePerformance <= 4.99 :
montantAugmentation = salaire * (TX_AUGMENTATION1/100)
elif notePerformance >= 5 and note_performance <= 7.99:
montantAugmentation = salaire * (TX_AUGMENTATION2/100)
else:
montantAugmentation = salaire * (TX_AUGMENTATION3/100)
return montantAugmentation
# Description : Calcul le salaire après augmentation
# Paramètre : "salaire" est le salaire de l'employé
# Paramètre : "montantAugmentation" est le montant de l'augmentation de salaire de l'employé
# Retour : Le montant du salaire après augmentation à retourner
def calculSalaireTotal(montantAugmentation, salaire):
# Variable Locale
salaireTotal = 0.00
salaireTotal = montantAugmentation + salaire
return salaireTotal
# Description : Afficher les informations
# Paramètre : "achat" est le montant d'achat à afficher
# Paramètre : "tps" est la taxe TPS à afficher.
# Paramètre : "tvq" est la taxe TVQ à afficher.
# Paramètre : "total" est le total de la facture.
def affichage(matricule, nom, prenom, salaire, notePerformance, montantBonus, montantAugmentation, salaireTotal):
print("Votre matricule =",matricule, "Votre nom =" ,nom, "Votre prénom =" ,prenom,"Votre salaire = %.2f" %salaire, "Votre note d'évaluation = %.2f" %notePerformance, "Votre bonus =",montantBonus, "Votre augmenation = " ,montantAugmentation, "Votre salaire total =" ,salaireTotal, sep ="|")
#****************************************************************
# DÉBUT - PROGRAMME PRINCIPAL #
#****************************************************************
# Déclaration et initialisation des variables
continuation = ""
matricule = ""
nom = ""
prenom = ""
salaire = 0.00
notePerformance = 0.00
montantBonus = 0.00
montantAugmentation = 0.00
salaireTotal = 0.00
# Présentation du logiciel
presenterLogiciel()
# Demander à l’utilisateur s’il désire calculer un bonus et une augmentation
continuation = question()
while (continuation == GRAND_O) or (continuation == PETIT_O):
# Bloc de saisi
if (continuation == "O") or (continuation == "o"):
saisieMatricule()
saisieNom()
saisiePrenom()
saisieSalaire()
saisieNotePerformance()
# Bloc de calcul
calculMontantBonus(notePerformance, salaire)
calculAugmentation(notePerformance, salaire)
calculSalaireTotal(montantAugmentation, salaire)
# Bloc d'affichage
affichage(matricule, nom, prenom, salaire, notePerformance, montantBonus, montantAugmentation, salaireTotal)
print("----------------------------------------------------------------------------------------------------")
Partager