Contacts - Terminale

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âcheBarème
Menu2 points
Ajout d’un contact3 points
Suppression d’un contact1 point
Demande de confirmation avant la suppression1 point
Affichage de tous les contacts1 point
Affichage de tous les contacts dans l’ordre spécifié1 point
Recherche parmi les contacts2 points
Quitter l’application1 point
Sauvegarde dans un fichier / chargement depuis un fichier2 points
Code propre2 points
Code optimisé2 points
Commentaires2 points
Totals20

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']
Retour