0% ont trouvé ce document utile (0 vote)
16 vues3 pages

Application IMC avec PyQt5

Le document décrit un devoir de contrôle pour le développement d'une application graphique permettant d'enregistrer des données sur 10 personnes, calculer leur IMC et afficher leur statut selon l'OMS. Il inclut des instructions sur l'interface utilisateur et le traitement des données, ainsi qu'un exemple de code en Python utilisant PyQt5. Les fonctionnalités incluent l'ajout de personnes, l'affichage des résultats et la gestion des interprétations de l'IMC.

Transféré par

زهور الرجاء
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues3 pages

Application IMC avec PyQt5

Le document décrit un devoir de contrôle pour le développement d'une application graphique permettant d'enregistrer des données sur 10 personnes, calculer leur IMC et afficher leur statut selon l'OMS. Il inclut des instructions sur l'interface utilisateur et le traitement des données, ainsi qu'un exemple de code en Python utilisant PyQt5. Les fonctionnalités incluent l'ajout de personnes, l'affichage des résultats et la gestion des interprétations de l'IMC.

Transféré par

زهور الرجاء
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 PDF, TXT ou lisez en ligne sur Scribd

Devoir de Contrôle N°2

Prof Fredj Imed


L.S Manzel Ennour Durée 1H
Classe :3ème Sc Info
Trimestre 3

on veut développer une application avec interface graphique qui permet de saisir 10 personnes définis comme
suivants :
TDNT
Type
personne=ENREGISTREMENT
nom : chaine
prénom :chaine
taille :réel ( en mètre )
poids :réel ( en kilogramme )
FIN
Tab= tableau de 10 personne

dans un tableau T de 10 personne en affichant l'IMC et l'interprétation du


statut selon l'OMS de chaque personne saisie (voir interface )
puis sélectionner un statut et afficher les personnes concernées.

Remarque :
• liste des interprétations n'est activée qu'après la saisie des 10
personnes
• dans la liste des interprétations ajouter "tout" pour afficher les 10
personnes
• utiliser toujours deux chiffres après la virgule pour les réels ( utiliser la fonction : round(x,nb_decimal) )

6points
code :

from PyQt5.uic import loadUi


from PyQt5.QtWidgets import QApplication
from numpy import array 4pts
def inter(p): fonction qui calcule
l'interprétation d'une
personne p

return interpretation
1pts
def ajouter():
global ………………………………………………… 3pts

indice=indice+1
fn.nb.setText("NB :"+str(indice))
if indice==10:
fn.ajouter.setEnabled(False)

def quitter(): 1pts


…………………………………………………………………………………………………………………
def actualiser():
global indice
fn.resultat.setPlainText("")
if fn.liste.currentText()=="tout":
for i in range(indice):
ligne=T[i]['nom']+' '+T[i]['prénom']+' '+str(round(T[i]['taille'],2))+' '+str(round(T[i]['poid'],2))
fn.resultat.setPlainText(fn.resultat.toPlainText()+ligne+'\n')
else:

2pts

interpretations=["Dénutrition","Maigreur","corpulance normal","surpoid","Obésité","Obésité sévère","Obésité


morbide","tout"]
indice=0
T=array([{}for i in range(10)])
app=QApplication([])
fn=loadUi("interface.ui")
fn.liste.addItems(interpretations)
fn.ajouter.clicked.connect(…………………………..…..) 3pts
fn.quitter.clicked.connect(…………………….………….)
fn.liste.currentIndexChanged.connect(…………………………………………………)
fn.show()
app.exec_()

bonne chance
Correction
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication
from numpy import array
def inter(p): def ajouter():
imc=p['poid']/p['taille']**2 global indice
if imc<16.5: T[indice]['nom']=fn.nom.text()
interpretation="Dénutrition" T[indice]['prénom']=fn.prenom.text()
elif imc<=18.5: T[indice]['taille']=float(fn.taille.text())
interpretation="Maigreur" T[indice]['poid']=float(fn.poid.text())
elif imc<=25: imc=T[indice]['poid']/T[indice]['taille']**2
interprétation="corpulance normal" interpretation=inter(T[indice])
elif imc<=30: fn.imc.setText(str(round(imc,2)))
interpretation="surpoid" fn.interpretation.setText(interpretation)
elif imc<=35: indice=indice+1
interprétation="Obésité" fn.nb.setText("NB :"+str(indice))
elif imc<=40: if indice==10:
interpretation="Obésité sévère" fn.ajouter.setEnabled(False)
else:
interpretation="Obésité morbide"
return interpretation

def quitter():
fn.close()
def actualiser():
global indice
fn.resultat.setPlainText("")
if fn.liste.currentText()=="tout":
for i in range(indice):
ligne=T[i]['nom']+' '+T[i]['prénom']+' '+str(round(T[i]['taille'],2))+' '+str(round(T[i]['poid'],2))
fn.resultat.setPlainText(fn.resultat.toPlainText()+ligne+'\n')
else:
for i in range(indice):
if inter(T[i])==fn.liste.currentText():
ligne=T[i]['nom']+' '+T[i]['prénom']+' '+str(round(T[i]['taille'],2))+'
'+str(round(T[i]['poid'],2))
fn.resultat.setPlainText(fn.resultat.toPlainText()+ligne+'\n')

interpretations=["Dénutrition","Maigreur","corpulance normal","surpoid","Obésité","Obésité sévère","Obésité


morbide","tout"]
indice=0
T=array([{}for i in range(10)])
app=QApplication([])
fn=loadUi("interface.ui")
fn.liste.addItems(interpretations)
fn.ajouter.clicked.connect(ajouter)
fn.quitter.clicked.connect(quitter)
fn.liste.currentIndexChanged.connect(actualiser)
fn.show()
app.exec_()

Vous aimerez peut-être aussi