0% ont trouvé ce document utile (0 vote)
3 vues9 pages

TP POO Python : Gestion Hôpital

Ce document présente un travail pratique sur le développement d'un système de gestion d'hôpital en Python, en utilisant les concepts de la programmation orientée objet. Il inclut la création de classes pour les personnes, médecins, patients et hôpitaux, avec des méthodes spécifiques pour gérer les informations et les interactions entre ces entités. Des exercices détaillent les attributs et méthodes à implémenter, ainsi qu'un programme de test pour vérifier les fonctionnalités du système.

Transféré par

wegir56630
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)
3 vues9 pages

TP POO Python : Gestion Hôpital

Ce document présente un travail pratique sur le développement d'un système de gestion d'hôpital en Python, en utilisant les concepts de la programmation orientée objet. Il inclut la création de classes pour les personnes, médecins, patients et hôpitaux, avec des méthodes spécifiques pour gérer les informations et les interactions entre ces entités. Des exercices détaillent les attributs et méthodes à implémenter, ainsi qu'un programme de test pour vérifier les fonctionnalités du système.

Transféré par

wegir56630
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

12/14/25, 1:00 PM TP POO - Python

ISET de Bizerte - Département Technologies de l'informatique


Matière : POO - Python Classe : RSI2
Type : Travaux Pratiques Date : Décembre 2024
Durée : 2h00 Nombre de pages : 4
Documents : Autorisés

TP : Système de Gestion d'un Hôpital

Objectif : Développer un système de gestion pour un hôpital utilisant les concepts de la POO (héritage,
encapsulation, polymorphisme).

📋 Exercice 1 : Classe de base Personne (3 points)


Créer une classe Personne avec les attributs suivants :

cin (numéro de carte d'identité)


nom
prenom
age
telephone

Méthodes à implémenter :

__init__() : constructeur
afficher() : affiche les informations de la personne

[Link] 1/9
12/14/25, 1:00 PM TP POO - Python

est_majeur() : retourne True si age >= 18

👨‍⚕️ Exercice 2 : Classe Medecin (4 points)


Créer une classe Medecin qui hérite de Personne avec :

matricule (identifiant unique du médecin)


specialite (exemple : "Cardiologie", "Pédiatrie")
liste_patients (liste des patients suivis)

Méthodes à implémenter :

ajouter_patient(patient) : ajoute un patient à la liste


nombre_patients() : retourne le nombre de patients
afficher() : surcharge pour inclure matricule et spécialité
Méthode de classe compter_medecins() : compte le nombre total de médecins créés

🏥 Exercice 3 : Classe Patient (4 points)


Créer une classe Patient qui hérite de Personne avec :

numero_dossier (numéro unique)


date_admission (date d'entrée à l'hôpital)
diagnostic (description de la maladie)
medecin_traitant (référence vers un objet Medecin ou None)

Méthodes à implémenter :

assigner_medecin(medecin) : assigne un médecin au patient


[Link] 2/9
12/14/25, 1:00 PM TP POO - Python

afficher() : surcharge pour inclure les infos patient


est_hospitalise() : retourne True si le patient a un médecin assigné

[Link] 3/9
12/14/25, 1:00 PM TP POO - Python

🏢 Exercice 4 : Classe Hopital (5 points)


Créer une classe Hopital avec :

nom (nom de l'hôpital)


ville
medecins (liste des médecins)
patients (liste des patients)

Méthodes à implémenter :

recruter_medecin(medecin) : ajoute un médecin (vérifier qu'il n'existe pas déjà)


admettre_patient(patient) : ajoute un patient
rechercher_medecin_par_specialite(specialite) : retourne la liste des médecins de cette spécialité
rechercher_patient_par_numero(numero_dossier) : recherche un patient
statistiques() : affiche le nombre de médecins, patients, et patients hospitalisés
afficher_personnel_medical() : liste tous les médecins
afficher_patients() : liste tous les patients

🧪 Exercice 5 : Programme de test (4 points)


Créer un programme principal qui teste toutes les fonctionnalités :

Programme à implémenter :

[Link] 4/9
12/14/25, 1:00 PM TP POO - Python

# Création de l'hôpital
hopital = Hopital("Hôpital Central", "Tunis")

# Création des médecins


med1 = Medecin("12345678", "Bouzidi", "Ahmed", 45, "98765432",
"M001", "Cardiologie")
med2 = Medecin("87654321", "Trabelsi", "Fatma", 38, "98123456",
"M002", "Pédiatrie")
med3 = Medecin("11223344", "Slimani", "Karim", 52, "97111222",
"M003", "Cardiologie")

# Recrutement des médecins


hopital.recruter_medecin(med1)
hopital.recruter_medecin(med2)
hopital.recruter_medecin(med3)
hopital.recruter_medecin(med1) # Tentative de doublon

# Création des patients


pat1 = Patient("22334455", "Ben Ali", "Mohamed", 30, "55123456",
"P001", "15/12/2024", "Hypertension")
pat2 = Patient("33445566", "Mahmoud", "Sarra", 8, "55234567",
"P002", "14/12/2024", "Grippe")
pat3 = Patient("44556677", "Hamdi", "Amine", 55, "55345678",
"P003", "13/12/2024", "Problème cardiaque")

# Admission des patients


hopital.admettre_patient(pat1)
hopital.admettre_patient(pat2)
hopital.admettre_patient(pat3)

# Assignation des médecins aux patients


pat1.assigner_medecin(med1)
pat2.assigner_medecin(med2)
pat3.assigner_medecin(med3)

[Link] 5/9
12/14/25, 1:00 PM TP POO - Python

# Ajout des patients aux listes des médecins


med1.ajouter_patient(pat1)
med2.ajouter_patient(pat2)
med3.ajouter_patient(pat3)

print("="*70)
print("PERSONNEL MÉDICAL")
print("="*70)
hopital.afficher_personnel_medical()

print("\n" + "="*70)
print("LISTE DES PATIENTS")
print("="*70)
hopital.afficher_patients()

print("\n" + "="*70)
print("RECHERCHE DES CARDIOLOGUES")
print("="*70)
cardiologues = hopital.rechercher_medecin_par_specialite("Cardiologie")
for med in cardiologues:
[Link]()

print("\n" + "="*70)
print("STATISTIQUES")
print("="*70)
[Link]()
print(f"Nombre total de médecins créés : {Medecin.compter_medecins()}")

print("\n" + "="*70)
print("RECHERCHE PATIENT P002")
print("="*70)
patient_trouve = hopital.rechercher_patient_par_numero("P002")
if patient_trouve:
patient_trouve.afficher()
[Link] 6/9
12/14/25, 1:00 PM TP POO - Python

else:
print("Patient non trouvé")

[Link] 7/9
12/14/25, 1:00 PM TP POO - Python

Résultat d'exécution attendu :

====================================================================== PERSONNEL MÉDICAL


====================================================================== Dr. Ahmed Bouzidi -
Matricule: M001 - Spécialité: Cardiologie - Patients: 1 Dr. Fatma Trabelsi - Matricule:
M002 - Spécialité: Pédiatrie - Patients: 1 Dr. Karim Slimani - Matricule: M003 -
Spécialité: Cardiologie - Patients: 1 ❌ Le médecin M001 existe déjà dans l'hôpital
====================================================================== LISTE DES PATIENTS
====================================================================== Patient: Mohamed
Ben Ali - Dossier: P001 - Diagnostic: Hypertension ➤ Médecin traitant: Dr. Ahmed Bouzidi
(Cardiologie) Patient: Sarra Mahmoud - Dossier: P002 - Diagnostic: Grippe ➤ Médecin
traitant: Dr. Fatma Trabelsi (Pédiatrie) Patient: Amine Hamdi - Dossier: P003 -
Diagnostic: Problème cardiaque ➤ Médecin traitant: Dr. Karim Slimani (Cardiologie)
====================================================================== RECHERCHE DES
CARDIOLOGUES ====================================================================== Dr.
Ahmed Bouzidi - Matricule: M001 - Spécialité: Cardiologie - Patients: 1 Dr. Karim Slimani
- Matricule: M003 - Spécialité: Cardiologie - Patients: 1
====================================================================== STATISTIQUES
====================================================================== Hôpital: Hôpital
Central (Tunis) 📊 Nombre de médecins: 3 📊 Nombre de patients: 3 📊 Patients
hospitalisés: 3 Nombre total de médecins créés : 3
====================================================================== RECHERCHE PATIENT
P002 ====================================================================== Patient: Sarra
Mahmoud - Dossier: P002 - Diagnostic: Grippe ➤ Médecin traitant: Dr. Fatma Trabelsi
(Pédiatrie)

📝 Consignes importantes :
Respecter l'héritage entre les classes
Utiliser super() correctement
[Link] 8/9
12/14/25, 1:00 PM TP POO - Python

Implémenter tous les attributs et méthodes demandés


Gérer les cas d'erreur (doublons, recherches infructueuses)
Tester toutes les fonctionnalités
Commenter votre code

💡 Conseils :
Commencez par la classe Personne, puis Medecin et Patient
Testez chaque classe individuellement avant d'intégrer
La classe Hopital utilise la composition (contient des listes)
N'oubliez pas la méthode de classe pour compter les médecins

--- Bon travail ---

[Link] 9/9

Vous aimerez peut-être aussi