Skip to content
Snippets Groups Projects
Commit b38fac1d authored by Jean-Marie Place's avatar Jean-Marie Place
Browse files

compléments ReadMe

parent 88cd16a6
No related branches found
No related tags found
No related merge requests found
...@@ -71,17 +71,31 @@ Un certain nombre d'amis (appelés participants) font une sortie. L'application ...@@ -71,17 +71,31 @@ Un certain nombre d'amis (appelés participants) font une sortie. L'application
* Afficher au fur et à mesure le montant total des dépenses par poste (il y a 5 postes: TRANSPORT, HEBERGEMENT, RESTAURATION, LOISIRS, AUTRES) * Afficher au fur et à mesure le montant total des dépenses par poste (il y a 5 postes: TRANSPORT, HEBERGEMENT, RESTAURATION, LOISIRS, AUTRES)
* Au final afficher pour chaque participant le montant qu'il doit payer (ou recevoir) pour que chacun ait participé équitablement. * Au final afficher pour chaque participant le montant qu'il doit payer (ou recevoir) pour que chacun ait participé équitablement.
L'exemple du jeu d'essai fourni est le suivant: L'exemple du jeu d'essai fourni est le suivant (<b>les valeurs calculées par le modèle sont en bleu</b>):
<style>
b { color: blue }
api { color: blue; font-familly: monospace; }
</style>
<div style="float:left; width:35%">
liste des participants liste des participants
| Participants | | Participants | <b> Solde | <b> Détail du calcul |
|:-------------| |:-------------|----------------:|:-----------------------|
| Ahmed | | Ahmed | <b> 10.50 € | <b> 37.50 - 27.00 |
| Bruno | | Bruno | <b> -27.50 € | <b> 37.50 + 27.50 |
| Celine | | Celine | <b> -6.00 € | <b> 37.50 - 43.50 |
| Déborah | | Déborah | <b> 23.00 € | <b> 37.50 - 14.50 |
**_NOTE_** Calcul:
cumul_total / nb_participants - cumul_participant
</div>
<div style="float:left;width:35%">
liste des opérations liste des opérations
| Participant | Poste | Montant | | Participant | Poste | Montant |
...@@ -92,27 +106,23 @@ liste des opérations ...@@ -92,27 +106,23 @@ liste des opérations
| Ahmed | AUTRES | 12.00 € | | Ahmed | AUTRES | 12.00 € |
| Déborah | RESTAURATION | 14.50 € | | Déborah | RESTAURATION | 14.50 € |
Les calculs sont effectués par le modèle déjà fourni. </div>
Le cumul par poste donne:
| Poste | Cumul | <div style="float:left;width:30%">
|:-------------|-------------:| liste des postes
| TRANSPORT | 58.50 € |
| HEBERGEMENT | 65.00 € |
| RESTAURATION | 14.50 € |
| LOISIRS | 0.00 € |
| AUTRES | 12.00 € |
| **TOTAL** | **150.00 €** |
| Poste | <b> Cumul |
|:-------------|--------------------:|
| TRANSPORT | <b> 58.50 € |
| HEBERGEMENT | <b> 65.00 € |
| RESTAURATION | <b> 14.50 € |
| LOISIRS | <b> 0.00 € |
| AUTRES | <b> 12.00 € |
| **TOTAL** | <b> **150.00 €** |
</div>
Et le solde par participant: (calculé comme 150/4 - ce qui a été payé par le participant)
| Participant | Solde | Détail du calcul | <div style="clear:both"></div>
|:-------------|---------:|:-----------------|
| Ahmed | 10.50 € | 37.50 - 27.00 |
| Bruno | -27.50 € | 37.50 + 27.50 |
| Celine | -6.00 € | 37.50 - 43.50 |
| Déborah | 23.00 € | 37.50 - 14.50 |
## Interface de l'application ## Interface de l'application
...@@ -145,41 +155,35 @@ La seconde activité présente la liste des opérations et permet d'afficher ...@@ -145,41 +155,35 @@ La seconde activité présente la liste des opérations et permet d'afficher
Le modèle complet de données vous est fourni (vous n'aurez donc à priori à modifier aucune des classes `ModelApplication`, `Operation` ou `Participant`. Le modèle complet de données vous est fourni (vous n'aurez donc à priori à modifier aucune des classes `ModelApplication`, `Operation` ou `Participant`.
Ce modèle est intégré dans la version initiale (et partielle) de l'application android. Ce modèle est intégré dans la version initiale (et partielle) de l'application android.
Vous pouvez utiliser les méthodes suivantes du modèle (la classe `ModelApplication`). ## Tâches à réaliser.
* `addParticipant(String)`: ajouter un participant. L'application qui vous est fournie avec ce projet est incomplète.
* `getParticipant(int)`: accès à un participant par sa position. Dans le cadre de ce DS, vous devez réaliser les tickets suivants:
* `removeParticipant(String)`: supprimer un participant. (pour chaque ticket et en bleu, les méthodes vous fournissant les données)
* `getNbParticipants`: lire le nombre de participants. 1. Afficher le cumul des dépenses par poste.
* `addOperation(String, String, double)`: ajouter une opération. <api>getSumOperations(string)`: affiche le cumul des opérations pour un poste.</api>
* `getOperation(int)`: accès à une opération par son numéro. 2. Completer les classes internes `ParticipantAdapter` et `ParticipantViewHolder` pour afficher les noms des participant dans `R.id.text1`.
* `removeOperation(int)`: supprimer une opération. <api>getNbParticipants: lire le nombre de participants.</api>
* `getNbOpérations`: lire le nombre d'opérations. <api>getParticipant(int)`: accès à un participant par sa position.</api>
* `getSum(String)`: lire le cumul pour un poste (désigné par son nom). <api>Participant.getName()`: accesseur sur le nom du paticipant.</api>
* `computeBalance()`: calcule les soldes et totaux. 3. Afficher le solde par participant en dessous de chaque nom (utiliser le champ `TextView` dont l'id est `R.id.text2`)
* `getNbOperations()`: affiche le nombre d'opérations totales. <api>getBalance(String participant): accesseur sur le solde du participant</api>
* `getNbOperations(string)`: affiche le nombre d'opérations pour un poste. 4. Ajouter un participant.
* `getSumOperation()`: affiche le cumul des montants. L'EditText `R.id.new_participant` permet la saisie du pseudo.
* `getSumOperations(string)`: affiche le cumul des opérations pour un poste. Le bouton `R.id.add_participant` effectuera l'ajout.
<api>addParticipant(String): ajouter un participant.</api>
## Tâches à réaliser 5. Si l'ajout de participant est impossible (si un participant de même pseudo existe déjà) une exception est levée.
L'application qui vous est fournie avec ce projet est incomplète.
Dans le cadre de ce DS, vous devez réaliser les tickets suivants:
1. Afficher le cumul des dépenses par poste.
2. Completer les classes internes `ParticipantAdapter` et `ParticipantViewHolder` pour afficher les noms des participant dans `R.id.text1`.
3. Afficher le solde par participant en dessous de chaque nom.
Utiliser le champ `TextView` dont l'id est `R.id.text2`
et la méthode `getBalance(String participant)` de l'application.
4. Ajouter un participant. L'`EditText` `R.id.new_participant` permet la saisie du pseudo.
Le bouton `R.id.add_participant` effectuera l'ajout.
5. Si l'ajout de participant est impossible (si un participant de même pseudo existe déjà) une exception est levée.
Compléter la question précédente pour que ces exceptions soient récupérées et affichent une annonce (`Toast`) affichant le message lié à l'exception. Compléter la question précédente pour que ces exceptions soient récupérées et affichent une annonce (`Toast`) affichant le message lié à l'exception.
6. Ajouter un menu contextuel sur la liste des participants qui comporte un seul item qui permet de supprimer un participant. 6. Ajouter un menu contextuel sur la liste des participants qui comporte un seul item qui permet de supprimer un participant.
7. Créer une seconde activité qui sera lancée par n'importe lequel des boutons libellé `STATS...` <api>removeParticipant(String): supprimer un participant.</api>
Cette activité se présentera sous la forme affichée ci-dessus (faire le layout complet) mais seul les statistiques générales seront présentées. 7. Créer une seconde activité qui sera lancée par n'importe lequel des boutons libellé `STATS...`
Cette activité se présentera sous la forme affichée ci-dessus (faire le layout complet) mais seul les statistiques générales seront présentées.
<api>getNbOperations(): affiche le nombre d'opérations totales</api>
<api>getSumOperation(): affiche le cumul des montants.</api>
8. Faire en sorte que l'appui sur le bouton `Fermer` fasse revenir sur l'activité initiale. 8. Faire en sorte que l'appui sur le bouton `Fermer` fasse revenir sur l'activité initiale.
9. Complétez le projet de sorte que les statistiques propres à un poste soient affichées sur la partie inférieure (selon le bouton `STATS...` choisi). 9. Complétez le projet de sorte que les statistiques propres à un poste soient affichées sur la partie inférieure (selon le bouton `STATS...` choisi).
<api>getSum(String): lire le cumul pour un poste (désigné par son nom)</api>
<api>getNbOperations(string): affiche le nombre d'opérations pour un poste</api>
......
img/Screenshot_1.png

25.6 KiB

img/Screenshot_2.png

18 KiB

img/offlline.png

11 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment