From b49d71b5e3b1448a9bb56ed141fe54261e3b844b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20LAVERGNE?= Date: Sun, 17 Dec 2023 22:58:03 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20fonction=20de=20recherche=20e?= =?UTF-8?q?t=20mise=20=C3=A0=20jour=20des=20fonction=20d'affichage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fonction1.c | 90 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 73 insertions(+), 17 deletions(-) diff --git a/src/fonction1.c b/src/fonction1.c index 92f141e..df32d99 100644 --- a/src/fonction1.c +++ b/src/fonction1.c @@ -1,10 +1,21 @@ #include "specification1.h" +//? ListeDevis ou ListeDevis* ? +ListeDevis rechListeDevis(char typeTravaux[], Offre *offre) +{ + if(strcmp(offre->travaux,typeTravaux) == 0) + return offre->listeDevis; + else + rechListeDevis(typeTravaux, offre->suivant); +} + //~~~~~~~~~~~~PARTIE 1~~~~~~~~~~~~ -void affiche(void) +void affiche(Offre *offre) { - int choix; + //TODO Optimiser cet étron de code + int choix + char typeTravaux[30], nomEntreprise[30]; printf("####################################################\n"); printf("1- Afficher les devis pour un type de travaux.\n"); printf("2- Afficher les devis par type pour une entreprise.\n"); @@ -14,39 +25,84 @@ void affiche(void) switch(choix) { case 1: - printf(""); + printf("Quel type de travaux voulez-vous afficher ?\n"); + scanf("%s",typeTravaux); //! Vérifier que la chaine de caractère ne peut pas disposer pas d'espace + + ListeDevis l = rechListeDevis(typeTravaux, offre); + AfficheDevis(l); break; case 2: - printf(""); + printf("Quel est le nom de l'entreprise ?\n"); + scanf("%s",nomEntreprise); //! Vérifier que la chaine de caractère ne peut pas disposer pas d'espace + + ListeDevis l = rechListeDevis(typeTravaux, offre); + AfficheDevisE(l, nomEntreprise); break; default: - printf("Choisissez entre 1 & 2.\n"); + printf("Vous ne pouvez choisir qu'entre 1 et 2.\n"); break; } } /** * \brief Afficher l'ensemble des devis pour un type de travaux -* \param[out] *l pointeur sur le maillonDevis -* \param[in] t tâche donné par l'utilisateur +* \param[out] *l pointeur sur le maillonDevis */ -//TODO Retirer le paramètre "t" -void AfficheDevis(ListeDevis l, char t) +void AfficheDevis(ListeDevis l) { - if(l==NULL) - return; - - + if(l == NULL) + { + printf("Liste vide.\n"); + } + else + { + while(l != NULL) + { + printf("Devis n°%d\n",l->devis.numDevis); + printf("Nom de l'entreprise : %s\n",l->devis.nomEntreprise); + printf("Type de travaux : %s\n",l->devis.typeTravaux); + printf("Montant du devis : %d\n",l->devis.montant); + printf("Date de création : %d/%d/%d\n",l->devis.dateDevis.jour,l->devis.dateDevis.mois,l->devis.dateDevis.annee); + printf("Date de début des travaux : %d/%d/%d\n",l->devis.dateDebutTravaux.jour,l->devis.dateDebutTravaux.mois,l->devis.dateDebutTravaux.annee); + printf("Date de fin des travaux : %d/%d/%d\n",l->devis.dateFinTravaux.jour,l->devis.dateFinTravaux.mois,l->devis.dateFinTravaux.annee); + printf("Etat du devis : %d\n",l->devis.etat); + printf("Commentaire : %s\n",l->devis.commentaire); + printf("####################################################\n"); + l = l->suivant; + } + } } /** * \brief Afficher le devis d'une entreprise donnée pour un type de travaux donnée -* \param[out] *l pointeur sur le maillonDevis -* \param[in] t tâche donné par l'utilisateur +* \param[out] *l pointeur sur le maillonDevis * \param[in] entr nom de l'entreprise */ //TODO Retirer le paramètre "t" -void AfficheDevisE(ListeDevis l, char entr, char t) +void AfficheDevisE(ListeDevis l, char entr) { - + if(l == NULL) + { + printf("Liste vide.\n"); + } + else + { + while(l != NULL) + { + if(strcmp(l->devis.nomEntreprise,entr) == 0) + { + printf("Devis n°%d\n",l->devis.numDevis); + printf("Nom de l'entreprise : %s\n",l->devis.nomEntreprise); + printf("Type de travaux : %s\n",l->devis.typeTravaux); + printf("Montant du devis : %d\n",l->devis.montant); + printf("Date de création : %d/%d/%d\n",l->devis.dateDevis.jour,l->devis.dateDevis.mois,l->devis.dateDevis.annee); + printf("Date de début des travaux : %d/%d/%d\n",l->devis.dateDebutTravaux.jour,l->devis.dateDebutTravaux.mois,l->devis.dateDebutTravaux.annee); + printf("Date de fin des travaux : %d/%d/%d\n",l->devis.dateFinTravaux.jour,l->devis.dateFinTravaux.mois,l->devis.dateFinTravaux.annee); + printf("Etat du devis : %d\n",l->devis.etat); + printf("Commentaire : %s\n",l->devis.commentaire); + printf("####################################################\n"); + } + l = l->suivant; + } + } } \ No newline at end of file