Skip to content
Snippets Groups Projects
Commit d02b24ab authored by Derrode Stéphane's avatar Derrode Stéphane :dromedary_camel:
Browse files

Corrections sujet #1

parent f00e7686
No related branches found
No related tags found
No related merge requests found
Chers étudiants,
ce _repo_ contient l'ensemble des sujets de BE pour l'enseignement `INF-TC2` de l'École centrale de Lyon. Pour voir le sujet, il vous suffit de cliquer sur le fichier markdown (extension _.md_) du répertoire correspondant à la séance.
ce _repo_ contient l'ensemble des sujets de BE pour l'enseignement `INF-TC2` de l'École centrale de Lyon. Pour consulter le sujet, il vous suffit de cliquer sur le fichier markdown (d'extension _.md_) dans le répertoire correspondant à la séance.
Pour rappel (vu en cours), les BE #3 et #5 seront évalués par votre encadrant. Les consignes pour le rendu sont précisées dans les répertoires respectifs.
......
seance1_4h/figures/AllClasses.png

14.3 KiB

seance1_4h/figures/Emprunt.png

30.4 KiB

seance1_4h/figures/LivreLecteur.png

64.6 KiB

<mxfile host="Electron" modified="2020-08-24T05:34:03.311Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="JyznIXuSCOPoCPcxa0e5" version="13.6.2" type="device"><diagram name="Page-1" id="c4acf3e9-155e-7222-9cf6-157b1a14988f">7V19c5s2GP80vut2Z4537D9jJ223pVuu3dpm//SwkW21gDyQE7uffhIIg5BwnRiwc1XuerUeg4T0+/G86cUDaxpt3yT+evUOBSAcmHqwHVjXA9M0DN0l/1HJLpeMPCZYJjDIRXop+AC/A3ZnId3AAKRMloswQiGGa144R3EM5piT+UmCHvnLFigMOMHaXwJB8GHuh6L0EwzwivXC9Er5WwCXq6Jlwx3n38z8+bdlgjYxay9GMci/ifyiGtbHdOUH6LEism4G1jRBCOefou0UhHRY+RF73fDt/pETEONjbvhrsn1zf319Zf728Pbz/VWY/HkfDk2bPRzeFWMBAjI0rAjCGXq8KQWTrKuA1qiTEkrwCi1R7Ie3CK2J0CDCrwDjHYPY32BERFk1pPgAEgzJqBPRCkchuwFsIf5Ma9Q8hxXvWQP08/W2WtgVhTi4osCTYgD9CFEAqPA1DIt6U5ygb3s8bSIRh4yNYoo2yZz13/F062Pw7+6Ph9lvNykcfv5iXA8Ni7HST5YAH3EhHcVKEwySNwBFACc7ckECQh/DB56APuPxcn9dCSj5wDB9Cr7OBeGrwH02uN7rT8vVv5/m5upd4mzu8Mehlw6N0UFwS/ROR1gCp1GFU3N+ACjp7+dqoXIXLZa3ZaXivpRAgtmTmC7PjEzVVmlBb/i6idbs+pHAEvM0logkkaNyURwprM+DH274pmqsufVnoPbi+iFcxuTznIwVSIigeL+v2BcRDIKcVCCF3/1ZVh+FYY1gjLOuOJOBcy0d94OUpi2BLfe8zPazVjgjyo0ru2uoa2NDZ9XtuJqOHnlW+R3tTeUStFikhAJ1aPbPcAJahoCWrmm//hSA6dpIN3m8hhcPmDE+iwou1Klxgjq1jlCnov6sKdh2jW4/+rRGEkY/09I57lmGw1eR94jdVfWzaxVZpsVX5Np8RXmPhYpa0yHmi9Mh4/Z0iGe57gvT+dbLstCtgUUs9Mj2vIvHxxPwEeGRBSwVnEQ9WnrEmqOPq2rc0Mpygx4vI+YnBcyV8ImUKlo8q/0OJJCMFaVRdsNRqv2Qxq5qdmlwWmjYH6r2xzIn4zAtvaqkYwrZiRbA1j1ec1ij51kA2+ErGtXq6doAFC5ZRaFctgHYv2ItGADHsZzT6FA4n47menrlz+Rr6FDjjAUAL9yCtwcgMQqea7SEoNEBYodyAxXAbkmfwSYRMEsfYRT6mau9QDEuAoWjcMM0PJjMVzAMbv0d2lBEiEs//1aUJiuUwO+kWr80PLUESnnFB3onAz4jArgrYDZqonf+lrvw1k8xE8xRGPrrFM723YiIdoPxBGGMInbRghieKQpRko2BtVgszPl8bxYr3wTuzHXcQ8ZHyrDsEUA1Md7IL9OxOd3s2Mx4VGyMJ7ExpvtD9r2nNI+XZCCe1Jrhypqza9rGDwknYh+DCQ0e0y5ILMYNA5MAoccUx6uMxgmMlwKlCR5YAJOFk1XkmaigeQgWuJHk6dqfk7Zus2uy9C6TvGdjREWI3LsIM69rRVQaiLPYGvu4UaVNyFBPqddElJs5JWWjLGf6bk2i8SmKSV98mDEPEKo/Akp3CScP6oI6UUVK7nhqncDAY1OE0gd2GnBfk44q6DuF3jHPC73bAL0fEEWfAoV9h9h7o/NiL4a1Q6rsNxFIUA58EZ8o1NtD3dDt88IuZpsEjEOYYccnLYxnAbwPNRiif2cZ7qEhoG6JqFsShEMa7tyhFGKIaP1Jfq0kcjkLuNZxzuSoI2ztBnU+z8Zhk0UkrzRN+0W91q0jf2ZtLuZ8cuhJwPsl1+mvyGAo4FsH3j2zPhdzRTnwyxJ4vFuDX5RJ74wC49NTCCdRwGiK3P3FAs5X4JV67VuP2Y0zB+2G6MfdwocECEirhON5E46Oy/IrB1KAjvs05jQnHI9pTZ5wHNdWKfSQcDSa/FUMcQL+2jwk2bJtlYM4Wo1ZDZx9Su7xqWQ8TY01JR9jFF1tshkUhX+H+EsSkP3iL2YgsyzU7GYLonXow4RuC1Gea0fwS3KQ/cKvkpBnwV2WhewXeFm+QqUh24JXkoeUwdtVHtJoSkqoRGQP2J9Zp0t2nKhUZD/QS3KR/UIvroNSyci+SSDJRvZLgqZsZPb+Vx17pQa6ieklucl+GSCbY96rAY4BShN0yINiDeHZeNCU31PzEt2B7vbn/h3a/FHB/CZaJxvJC65mJs47M2Hr7K5DS6Fbm5k4pjXDlTVn1Nprd2ZCvp9BIHGZlvoSsqX9ynIJzDyoEU5aEN2rChP9lyr82TSrAr8j8GVLonsFX3RaKPgB0TdfALNkGfhUotBvGX3Zoug+0VerY7vDVrr0uZustPSB1erYsyFvnFmpN60yKPOShVenMhId0kC2SLpPGjRtd6rSgHp3igQdkkC2YLpPEsiO8yhIQH26Anzl33WBvmytdEfov4839/dvR1ej63+MWfTnAv4ef5WkpwSMTzrMxRtZA/4wF9ceXPJpLi/tlBZnVN9Sb2pujS3HHtRC6tJcmz8vyvYcbVz96+z0Lik/xczT5ZzdcvCF+umObpGOhhg/Xs7JLd3Cd/EHt0i7L4sJ2zQHpmvy5sAwfnRI4+Uc7nXsMbgvwWxYI0/jDxd1bJ1X9M+zIZZpa3sFs7chxO7rVll1zT51bEPEaPfCbUjxFiobQkdDjFIv3Ia0Bt/F2xC5phPwmsBZCBFegf82akPeM6e9A5gQ5uR5bOA3BKUtzYRbozGvv3XGwerctN7eqWBFEFwExcUhqJXm9vvxetykJ/8FCYmHpE4FO5QpOagkTpkEfzIFT/rpEFmytIbxTzgV1g64kkluKbgtTIVJH7gpB6qmwrpG3pWseur1tW46KMb/ShyI/SxYodSnFQVf/6xWb3fAj9G51X7j1q0VSOi/giL8Vh499wWaTr1VrDiNFbIJ9H5pUfxS3xG8QJFEfSiOdM4Ryex6zxyRb/+amoOrYsl/wZJUrf1vnwCSmfWeCSAPFnMC5P5FtrzigEehXIvu+CGZe++ZH/KNYRk/SjtCKSL3LqQHXClanJhokGwX7JkW8pWZMlpkJ0O9ElwKRYwuiCHZP9gzMeTrNnmHgmKv3IkuEpDd+ZOkWP7wdZ6pLn9Y3Lr5Hw==</diagram></mxfile>
\ No newline at end of file
seance1_4h/figures/LivreLecteurBiblio.png

36.2 KiB

......@@ -37,15 +37,15 @@ On doit pouvoir gérer le fond documentaire d'une bibliothèque identifiée par
- Son adresse,
- Un numéro (entier positif attribué de manière unique par les bibliothécaires).
1. On doit pouvoir ajouter un lecteur à tout moment et, bien sûr, rechercher un lecteur (par son numéro de lecteur).
1. On doit pouvoir ajouter un lecteur à tout moment et rechercher un lecteur (par son numéro de lecteur).
On doit également pouvoir ajouter des ouvrages (acquisition de livres), et rechercher un ouvrage (par numéro).
1. Tout lecteur peut emprunter des livres dans la bibliothèque. Un lecteur peut emprunter plusieurs livres différents simultanément ou à des dates différentes et un même livre peut être emprunté par plusieurs lecteurs (s’il existe plusieurs exemplaires). Au moment de l’emprunt, il faut donc vérifier qu’un exemplaire de l'ouvrage est bien disponible et qu'il n'a pas été emprunté par le même lecteur. De manière symétrique, il faut également gérer le retour des livres.
1. Tout lecteur peut emprunter des livres dans une ou plusieurs bibliothèques. Un lecteur peut emprunter plusieurs livres différents simultanément ou à des dates différentes et un même livre peut être emprunté par plusieurs lecteurs (s’il existe plusieurs exemplaires). Au moment de l’emprunt, il faut donc vérifier qu’un exemplaire de l'ouvrage est bien disponible et qu'il n'a pas été emprunté par le même lecteur. De manière symétrique, il faut également gérer le retour des livres.
1. On désire également pouvoir éditer des états détaillés :
- Liste de tous les lecteurs
- Liste de tous les livres
- Liste de tous les emprunts
- Liste de tous les lecteurs d'une bibliothèque
- Liste de tous les livres d'une bibliothèque
- Liste de tous les emprunts d'une bibliothèque
1. Da manière facultative, on souhaite pouvoir retirer un lecteur s'il n'a plus d'emprunt en cours, et retirer un exemplaire non emprunté d'un livre (désherbage ou vol). Un livre qui n'aurait plus d’exemplaire ne doit plus apparaître dans la liste des livres à disposition de la bibliothèque.
......@@ -53,7 +53,7 @@ Cet énoncé a pour objectif de vous accompagner pour répondre au cahier des ch
_Remarque_ : Dans chaque titre de chapitre, vous verrez figurer un temps entre parenthèses : celui-ci correspond au temps approximatif à passer pour répondre aux questions du chapitre. Si vous prenez trop retard par rapport à ces _milestones_, demandez de l'aide à votre encadrant!
_Remarque_ : Même si ce n'est pas pas obligatoire, il vous est demandé de développer chaque classe dans un fichier python séparé (tous les fichiers seront enregistrés dans le même répertoire).
_Remarque_ : Même si ce n'est pas pas obligatoire, il vous est demandé de développer chaque classe dans un fichier python séparé (pensez à enregistrer tous les fichiers dans le même répertoire).
---
......@@ -97,10 +97,10 @@ Un programme principal typique aura l'allure suivante:
if __name__ == '__main__':
# Des livres
B1 = Livre('Le Père Goriot', 'Honoré de Balzac', 2,101)
B2 = Livre('Les Hauts de Hurlevent','Émilie Bronte', 2,102)
B3 = Livre('Le Petit Prince', 'Antoine de Saint-Éxupery',2,103)
B4 = Livre("L'Étranger", 'Albert Camus', 2,104)
B1 = Livre('Le Père Goriot', 'Honoré de Balzac', 2,101)
B2 = Livre("Léon l'Africain", 'Amin Maalouf', 2,102)
B3 = Livre('Le Petit Prince', 'Antoine de Saint-Éxupery',2,103)
B4 = Livre("L'Étranger", 'Albert Camus', 2,104)
print('B1 -->', B1)
print('B2 -->', B2)
......@@ -113,7 +113,7 @@ Un programme principal typique aura l'allure suivante:
**Points 3. et 5. du cahier des charges**
1. Un bibliothèque gère une collection de livres et un répertoire de lecteurs (et des emprunts, mais nous verrons cela plus tard). Quels liens entre les classes __Bibliotheque__, __Livre__ et __Lecteur__ vous semblent les plus adaptés pour exprimer ces relations ? Dessinez alors le schéma UML entre ces 3 classes sur une feuille de papier. N'oubliez pas d'ajouter les cardinalité de part et d'autre des liens.
1. Un bibliothèque gère une collection de livres et un répertoire de lecteurs (et des emprunts, mais nous verrons cela plus tard). Quels liens entre les classes __Bibliotheque__ et __Livre__ d'une part, et __Bibliotheque__ et __Lecteur__ vous semblent les plus adaptés pour exprimer ces relations ? *Tip* Si un Livre appartient à une bibliothèque, un lecteur peut s'inscrire dans plusieurs bibliothèques (vous voyez la différence?)! Dessinez alors le schéma UML entre ces 3 classes. N'oubliez pas d'ajouter les cardinalités de part et d'autre des liens.
Dessinez ensuite le détail de la boîte UML de la classe __Bibliothèque__, de manière à répondre au point 3. du cahier des charges.
1. Dans un nouveau fichier appelé _Bibliotheque.py_, commencez par coder le constructeur de la classe __Bibliotheque__, en choisissant la structure de données adéquate pour gérer les lecteurs et les livres. Créez un programme principal, dans lequel vous créerez une bibliothèque (de nom _Michel Serre_ ?). Codez ensuite la méthode `__str__` qui affiche simplement le nom de la bibliothèque. Testez dans votre programme principal.
......@@ -126,7 +126,7 @@ Dessinez ensuite le détail de la boîte UML de la classe __Bibliothèque__, de
N'oubliez pas de tester chacune des méthodes avant de passer à la suivante! N'hésitez pas à compléter la classe __Lecteur__ s'il vous manque des méthodes...
1. Faites de même avec les livres. On ne vérifiera pas si le livre déjà présent dans la collection avant de l'ajouter.
1. Faites de même avec les livres. On ne vérifiera pas si le livre est déjà présent dans la collection avant de l'ajouter.
## Les emprunts (90 minutes)
......@@ -228,6 +228,7 @@ Un emprunt sera modélisé par un objet qui associe un lecteur (connu par son id
```
## Questions ouvertes supplémentaires
**Point 6. (facultatif) du cahier des charges**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment