Contacts
Prérequis
- structures de contrôle ;
- boucles ;
- tableaux ;
- fonctions ;
- programmation orientée objet.
Présentation
L'objectif de ce projet est de créer un répertoire contenant les noms, prénoms et numéros de téléphone de personnes. Pour ne pas trop le complexifier, le programme fonctionnera sans interface graphique avec un menu permettant de choisir des actions comme celui-ci :
Que voulez-vous faire ?
1 - Ajouter un contact
2 - Supprimmer un contact
3 - Afficher tous les contacts
4 - Chercher un contact
5 - Quitter
Choix :
Vous utiliserez obligatoirement la programmation orientée objet pour réaliser ce projet.
C'est à dire que vous devez avoir une classe Repertoire
et une classe Contact
.
La classe Repertoire
aura une méthode run()
(parmi d'autres) qui lancera le programme.
Ce projet se fera si possible en binôme et sera noté. Pour avoir les détails concernant la notation consultez la page sur l'évaluation des projets et le tableau ci-dessous.
Cahier des charges
Voici les fonctionalités que votre projet doit implémenter :
- un menu (identique à celui ci-dessus) pour choisir les différentes actions
- ajout d'un contact ;
- suppression d'un contact avec demande de confirmation (trouvez une façon simple de le faire) ;
- affichage de tous les contacts par ordre alphabétique des noms puis des prénoms ;
- recherche parmis les contacts (nom et prénom) ;
- quitter l'application
- sauvegarde des contacts dans un fichier texte et chargement depuis un fichier texte au démarrage de l'application
Il vous est demandé de bien utiliser les fonctionalités de la programmation orientée objet.
Pour commencer, vous pouvez créer la classe Contact
avec une méthode affiche()
.
Puis vous pouvez vous attaquer à la classe Repertoire
qui devra stocker une liste de contacts.
Tableau du barème
Tâche | Barème |
---|---|
Menu | 2 points |
Ajout d'un contact | 3 points |
Suppression d'un contact | 1 point |
Demande de confirmation avant la suppression | 1 point |
Affichage de tous les contacts | 1 point |
Affichage de tous les contacts dans l'ordre spécifié | 1 point |
Recherche parmi les contacts | 2 points |
Quitter l'application | 1 point |
Sauvegarde dans un fichier / chargement depuis un fichier | 2 points |
Code propre | 2 points |
Code optimisé | 2 points |
Commentaires | 2 points |
Totals | 20 |
Aides
Lire et écrire dans un fichier
Pour la dernière partie du projet vous aurez besoin de lire et écrire dans un fichier, voici donc comment procéder :
# Écriture
f = open("fichier.txt", "a") # Ouvre un fichier ou le crée et se place à la fin
f.write("Une ligne\n") # Écrit dans le fichier et va à la ligne (avec le « \n »)
f.close() # Ferme le fichier (important pour ne pas perdre des infos)
# Lecture
f = open("fichier.txt", "r") # Ouvre en lecture le fichier
for line in f: # Parcourt toute les lignes
print(line,end="") # Affiche chaque ligne
Récupérer des données séparées par « : »
Lorsqu'on récupère des données dans un fichier, génralement ses données sont rangées par ligne et séparée par un caractère (par exemple « : »).
Pour séparer ses donnée, il suffit d'utiliser split()
:
>>> "123:456:789".split(":")
['123', '456', '789']