Bonjour à tous, j'ai un soucis avec mon programme, lorsque je surprime un client la suppression ne se fait pas et pourtant la fonction me semble logique.
J'ai pas mal cherché avant devenir poster ici donc merci à tous ceux qui pourraient m'apporter une aide éventuelle. (Code écrit sous "Code-Blocks").
Code :
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> struct _Date { short jour; short mois; short annee; }; typedef struct _Date Date; struct _Client { char nom[30]; char prenom[25]; int numero; Date naissance; float montant; }; typedef struct _Client Client; void InitialisationNom(Client*); void AjouterClient(Client*); void SupprimerClient(Client*); void AfficherToutTableau(Client*); int main() { Client listeclient[10]; short sChoix,cont=0; InitialisationNom(&listeclient[0]); do { system("CLS"); printf("MENU\n"); printf(" 1.Ajouter un client\n"); printf(" 2.Supprimer un client\n"); printf(" 3.Afficher tous les clients\n"); printf("Quel est votre choix ?: "); scanf("%hd", &sChoix); switch(sChoix) { case 1: AjouterClient(&listeclient[0]); break; case 2: SupprimerClient(&listeclient[0]); break; case 3: AfficherToutTableau(&listeclient[0]); break; } do { printf("Voulez vous continuer(0) ou quitter le programme(1) ?:"); scanf("%hd", &cont); }while(cont<0 || cont >1); }while(cont==0); return 0; } void InitialisationNom(Client*pMembre) { short i; char temp = '!'; for(i=0; i<10 ; i++) { strcpy(pMembre->nom,&temp); pMembre++; } } /* INPUT: *pMembre:Adresse du début du vecteur PROCESS:Permet d'ajouter un client dans la liste OUTPUT:/ */ void AjouterClient(Client *pMembre) { short i; char temp = '!'; system("CLS"); for(i=0; i<10 && (strcmp(pMembre->nom,&temp)!=0); i++) { pMembre++; } if(strcmp(pMembre->nom,&temp)==0 && i<10) { system("CLS"); printf("Nom: "); fflush(stdin); gets(pMembre->nom); printf("\nPrenom: "); fflush(stdin); gets(pMembre->prenom); printf("\nNumero de membre: "); scanf("%d", &(pMembre->numero)); printf("\nDate de naissance(sous la forme jj/mm/aaaa): \n"); scanf("%hd/%hd/%hd", &(pMembre->naissance.jour),&(pMembre->naissance.mois),&(pMembre->naissance.annee)); printf("\nMontant de l'ardoise a la cafeteria: "); scanf("%f", &(pMembre->montant)); } else { printf("\nPlus de place dans le tableau"); } } /* INPUT: *pMembre:Adresse du début du vecteur PROCESS:Permet d'afficher un client OUTPUT:/ */ void AfficherClient(Client *pMembre) { char NomClient[30]; short i,cmp = 1; system("CLS"); printf("Quel est le nom du client que vous voulez afficher ? : "); fflush(stdin); gets(NomClient); cmp = strcmp(NomClient,pMembre->nom); for(i=0; i<10 && cmp!=0; i++) { pMembre++; cmp = strcmp(NomClient,pMembre->nom); } if(cmp == 0) { printf("\nNom: %s", pMembre->nom); printf("\nPrenom: %s", pMembre->prenom); printf("\nNumero: %d", pMembre->numero); printf("\nDate de naissance: %hd/%hd/%hd", pMembre->naissance.jour, pMembre->naissance.mois, pMembre->naissance.annee); printf("\nMontant de l'ardoise: %.2f euros", pMembre->montant); printf("\n\n"); system("PAUSE"); } else printf("\nLe nom n'est pas present dans la liste"); } /* INPUT: *pMembre:Adresse du début du vecteur PROCESS:Permet d'afficher tous les clients OUTPUT:/ */ void AfficherToutTableau(Client* pMembre) { short i; char temp = '!'; system("CLS"); for(i=0 ; i<10; i++) { if(strcmp(pMembre->nom,&temp)!=0 ) { printf("\n"); printf("\nNom: %s", pMembre->nom); printf("\nPrenom: %s", pMembre->prenom); printf("\nNumero: %d", pMembre->numero); printf("\nDate de naissance: %hd/%hd/%hd", pMembre->naissance.jour, pMembre->naissance.mois, pMembre->naissance.annee); printf("\nMontant de l'ardoise: %.2f euros", pMembre->montant); printf("\n\n"); } pMembre++; } } /* INPUT: *pMembre:Adresse du début du vecteur PROCESS:Permet de supprimer un client OUTPUT:/ */ void SupprimerClient(Client* pMembre) { char NomClient[30], temp='!'; short cmp = 1,i; system("CLS"); printf("Quel est le nom du client que vous voulez supprimer ? : "); fflush(stdin); gets(NomClient); cmp = strcmp(NomClient,pMembre->nom); for(i=0; i<10 && cmp!=0; i++) { pMembre++; cmp = strcmp(NomClient,pMembre->nom); } if(cmp == 0) { strcpy(pMembre->nom,&temp); } else { printf("\nCe nom ne se trouve pas dans la liste ! "); } }
-----