From 85806826ec6918ec6b29d8f7e60ce14e898115ff Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Fri, 28 Oct 2022 09:27:49 +0200 Subject: [PATCH] Ajout des fonctions de Renaud --- saeN.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++- saeN.h | 18 +++++- saetest | Bin 0 -> 17480 bytes saetestN.c | 4 +- 4 files changed, 186 insertions(+), 5 deletions(-) create mode 100755 saetest diff --git a/saeN.c b/saeN.c index 306159d..aa9496f 100644 --- a/saeN.c +++ b/saeN.c @@ -1,6 +1,7 @@ #include #include -#include "sae.h" +#include "saeN.h" +#define TAILLE 50 int creeadherent(int *tNC,char *tN,char *tPR,int *tA,int *tCA,int *tPO, int Tmax) { @@ -85,4 +86,168 @@ void globale() n=creeadherent(tNC,tN,tPR,tA,tCA,tPO,250); affichageA(tNC,tN,tPR,tA,tCA,tPO, n); valtrouve=recherche(tNC,n,100,&trouve); -} \ No newline at end of file +} + +void gestionAvecMenu (void) +{ + int idSports[TAILLE], nbPtSpo[TAILLE], n, choix; + n = chargementSport(idSports,nbPtSpo,TAILLE); + printf("------------------------------------------------\n"); //tableau qui s'affiche en premier pour choisir + printf("| Gestion des activités |\n"); + printf("| |\n"); + printf("| 1. Affichage |\n"); + printf("| 2. Ajout d'une Activité |\n"); + printf("| 3. Suppression d'une Activité |\n"); + printf("| 4. Changer le prix d'une activité |\n"); + printf("| 9. Quitter |\n"); + printf("| |\n"); + printf("------------------------------------------------\n"); //tableau qui s'affiche en premier pour choisir + printf("Rentrez un chiffre : \n"); //choix de l'option + scanf("%d%*c",&choix); + if (choix == 1) + {printf("\n"),affichage(idSports,nbPtSpo,n); printf("\n");} + if (choix == 2) + {printf("\n"),ajoutSport(idSports,nbPtSpo,&n,TAILLE); printf("\n");} + if (choix == 3) + {printf("\n"),enlèveSport(idSports,nbPtSpo,&n);printf("\n");} + if (choix == 4) + {printf("\n"),changprix(idSports,nbPtSpo,n);printf("\n");} + if (choix == 9) //quitte le logiciel si l'utilisateur a rentré 9 + {printf("\n"); printf("Arrêt du logiciel"); printf("\n"); printf("\n");} + sauvegardeSports(idSports,nbPtSpo,n); + return; +} + +void sauvegardeSports (int *idSports, int *pt, int n) +{ + int i; + FILE *fw; + fw = fopen("sport.txt","w"); + for (i = 0; i < n; i++) + fprintf(fw,"%d\t%d\n",idSports[i],pt[i]); + fclose(fw); +} + +int chargementSport (int *idSports, int *nbPtSpo, int tmax) +{ + int idSportTemp, ptTemp, i = 0; + FILE *fr; + fr = fopen("sport.txt","r"); + if (fr == NULL) + { + printf("Problème à l'ouverture du fichier"); + fclose(fr); + return -1; + } + fscanf(fr,"%d%d",&idSportTemp,&ptTemp); + while (!feof(fr)) + { + if (i == tmax) + { + printf("Problème, tableau plein"); + return i; + } + idSports[i] = idSportTemp; + nbPtSpo[i] = ptTemp; + i++; + fscanf(fr,"%d%d",&idSportTemp,&ptTemp); + } + fclose(fr); + return i; +} + +void affichage (int *idSports, int *pt, int n) +{ + int i; + printf("Sport:\tPoints:\n"); + for (i = 0; i < n; i++) + { + printf("%d\t%d\n",idSports[i],pt[i]); + } +} + +int rechercheSport (int *tablchoisi ,int tailletabl, int valacherch, char *trouvoupas) +{ + int i; + for (i=1; i valacherch) //il est plus loin que la valeur a recherché donc a pas trouvé + { + *trouvoupas = 'N'; + return i; + } + } +} + +void ajoutSport (int *idSports, int *pt, int *n, int taillePhys) +{ + int nvSpo, nvNbPt, place, i; + char trouvoupas; + if (*n == taillePhys) //vérifie qu'il y a encore de la place dans le tableau + { + printf("Erreur: la table est pleine"); + return; + } + printf("Numéro du nouveau sport: \n"); + scanf("%d%*c",&nvSpo); + printf("Nombre de points du nouveau sport: \n"); + scanf("%d%*c",&nvNbPt); + place = rechercheSport(idSports,*n,nvSpo,&trouvoupas); //donne où il doit ajouter le sport ou si il existe pas déjà + if (trouvoupas == 'O') //si le sport existe déjà + { + printf("Erreur, le sport existe déjà\n"); + return; + } + for (i = *n - 1 ; i >= place; i--) //décale les sports après celui à ajouter + { + idSports[i+1] = idSports[i]; + pt[i+1] = pt[i]; + } + idSports[place] = nvSpo; //ajoute le sport a sa place + pt[place] = nvNbPt; //ajoute le nb de points a sa place + *n = *n + 1; //augmente la taille logique + return; +} + +void changprix (int *idSport, int *pt, int n) +{ + int nvPrix , SpoChoix, place; + char trouve; + printf("Changer le prix de quel sport ?\n"); + scanf("%d%*c",&SpoChoix); + place = rechercheSport(idSport,n,SpoChoix,&trouve); + if (trouve == 'N') + { + printf("Erreur, le sport n'existe pas\n"); + return; + } + printf("Veuillez rentrer le nouveau prix: \n"); + scanf("%d%*c",&nvPrix); + pt[place] = nvPrix ; +} + +void enlèveSport (int *idSport, int *pt, int *n) +{ + int place, i, supSpo; + char trouvoupas; + printf("Numéro du sport à supprimer: \n"); + scanf("%d%*c",&supSpo); + place = rechercheSport(idSport,*n,supSpo,&trouvoupas); //donne la place du sport et si il l'a trouvé + if (trouvoupas == 'N') //il ne l'a pas trouvé + { + printf("Erreur, le sport existe pas\n"); + return; + } + for (i = place ; i < *n - 1; i++) //décalle pour pouvoir supprimer le sport + { + idSport[i] = idSport[i+1]; + pt[i] = pt[i+1]; + } + *n = *n - 1; //réduit la taille logique + return; +} diff --git a/saeN.h b/saeN.h index f7f8ae1..fa757ca 100644 --- a/saeN.h +++ b/saeN.h @@ -32,4 +32,20 @@ int recherche(int*tNC,int n, int val, int*trouve); /* \brief: globale */ -void globale(); \ No newline at end of file +void globale(); + +int chargementSport (int *idSports, int *nbPtSpo, int tmax); + +void affichage (int *idSports, int *pt, int n); + +void enlèveSport (int *idSport, int *pt, int *n); + +void gestionAvecMenu (void); + +int rechercheSport (int *tablchoisi ,int tailletabl, int valacherch, char *trouvoupas); + +void sauvegardeSports (int *idSports, int *pt, int n); + +void ajoutSport (int *idSports, int *pt, int *n, int taillePhys); + +void changprix (int *idSport, int *pt, int n); diff --git a/saetest b/saetest new file mode 100755 index 0000000000000000000000000000000000000000..b4d23f3fd1111423840059759adf2486b4a38810 GIT binary patch literal 17480 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 int main(void) { globale(); return 0; -} \ No newline at end of file +}