Python : Exercices sur les sous-programmes et collections

DAFS : Algorithmique et programmation

Xavier Crégut <prenom.nom@enseeiht.fr>

1 Gestion d’un laboratoire de recherche

L’objectif de cet exercice est de proposer un outil de gestion pour un laboratoire de recherche.

1.1 Version initiale

Dans un premier temps, on veut simplement recenser les personnes qui travaillent dans le laboratoire et, plus précisément, savoir quel bureau elles occupent.

Chaque personne occupe un et un seul bureau.

Une personne est caractérisée par son nom.

On veut donc pouvoir :

Un menu textuel doit donner accès à ces différentes possibilités.

  1. Donner l’architecture de l’application (premiers niveaux de raffinage)
  2. Indiquer les données manipulées et leur type
  3. Indiquer quels sous-programmes constitueront cette application.
  4. Programmer l’application en utilisant pytest (pour tester au fur et à mesure)

1.2 Occupation des bureaux

Une nouvelle fonctionnalité est demandée : la possibilité d’afficher l’occupation des bureaux (dans l’ordre lexicographique des bureau).

1.3 Amélioration des menus

Est-ce que les menus utilisés sont pratiques ? Peut-on facilement changer l’ordre des entrées dans le menu ? Peut-on facilement ajouter une nouvelle entrée ?…

Proposer une nouvelle implantation des menus réutilisables.

1.4 Vérification de cohérence

Pour vérifier la cohérence des informations données, en l’occurrence le numéro de bureau, on définira tous les bureaux possibles et on s’assurera que l’information saisie pour le numéro de bureau est cohérente.

1.5 Gestion de la persistence

Entre deux exécutions de l’application, on veut conserver les informations déjà renseignées. Pour ce faire un sauvegardera dans un ou plusieurs fichiers texte les informations de manière à pouvoir les charger à chaque lancement de l’application.

1.6 Informations supplémentaires sur un personnel

On veut pouvoir aussi enregistrer les informations suivantes sur un personnel :

Modifier l’application en conséquence

1.7 Script d’administration

Écrire des scripts de gestion du laboratoire qui ne fonctionnent que grâce aux arguments de la ligne de commande (donc non interactifs). On aura alors un script par fonctionnalité attendu. Par exemple, un script ‘arrivée’ qui prend en argument le laboratoire, le nom du nouvel arrivant et son numéro de bureau.

1.8 Gestion des équipes de recherche

Les personnels du laboratoire sont généralement attachés à une équipe de recherche. Il faut pouvoir de :

1.9 Responsables d’équipe

Chaque équipe a un responsable qui fait l’interface entre son équipe et le directeur du laboratoire. Il est demandé de gérer ces responsables et de pouvoir lister tous les responsables avec l’équipe dont ils sont responsables.

On souhaite disposer d’un organigramme graphique en utilisant graphviz/dot.