Algorithme programme

Bonjour,
cela fait bientot deux jours que je suis entrain d'essayer de faire l'agorithme d un programme que jai terminer en langage c mais je ni arrive pas.
Voici la fonction:
void rechercher()
{
int Z;
int i,b,u;
char a[TAILLE_MAX];
i = 0;
u = 1;

while (u != 0)
{
system("CLS");
printf("----------------------------------------------------------------\n");
printf("| |\n");
printf("| RECHERCHER |\n");
printf("| |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n\n");
printf("\nRechercher un client a partir de son:\n");
printf("I: Identifiant\n");
printf("E: Entreprise\n");
printf("N: Nom Contact\n");
printf("\nS: Sortie\n");
printf("\n\n\nChoix:");
//printf("\n\t\tChoix <I,E,N,S>:\n");

fflush(stdin);
Z = getchar();

switch(Z)
{
case'I': case'i':

for (i = 0 ; i < nombreClient ; i++)
{
printf("Le client %d a pour identifiant:%s\n",i,listClient[i].idClient);
}
printf("\n");
printf("----------------------------------------------------------------\n");
printf("| Saisir l'identifiant du client. |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf(".Identifiant:");
fflush(stdin);
scanf("%s",a);

for (i = 0 ; i < nombreClient ; i++)
{
if(strcmp(a,listClient[i].idClient ) == 0)
{
printf("\n");
printf(" Vous recherchez le client:%d\n",i);
printf("\n");
printf(".Identifiant:%s\n",listClient[i].idClient);
printf(".Entreprise:%s\n",listClient[i].nomEntr);
printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville);
printf(".Nom contact:%s\n",listClient[i].nomContact);
printf(".Prenom:%s\n",listClient[i].prenomContact);
printf(".Mail:%s\n",listClient[i].mailContact);
printf(".Telephone:%s\n",listClient[i].telContact);
printf("\n");
system("PAUSE");
break;
}
}
break;

case 'E': case 'e':

for (i = 0 ; i < nombreClient ; i++)
{
printf("Le client %d est dans l'entreprise:%s\n",i,listClient[i].nomEntr);
}
printf("\n");
printf("----------------------------------------------------------------\n");
printf("| Saisir le nom de l'entreprise. |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf(".Entreprise:");
fflush(stdin);
scanf("%s",a);

for (i = 0 ; i < nombreClient ; i++)
{
if(strcmp(a,listClient[i].nomEntr ) == 0)
{
printf("\n");
printf(" Vous recherchez le client:%d\n",i);
printf("\n");
printf(".Identifiant:%s\n",listClient[i].idClient);
printf(".Entreprise:%s\n",listClient[i].nomEntr);
printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville);
printf(".Nom contact:%s\n",listClient[i].nomContact);
printf(".Prenom:%s\n",listClient[i].prenomContact);
printf(".Mail:%s\n",listClient[i].mailContact);
printf(".Telephone:%s\n",listClient[i].telContact);
printf("\n");
system("PAUSE");
break;
}
}
break;

case 'N': case 'n':
printf("Nombre de client:%d\n",nombreClient);

for (i = 0 ; i < nombreClient ; i++)
{
printf("Le client %d a pour nom:%s\n",i,listClient[i].nomContact);
}
printf("\n");
printf("----------------------------------------------------------------\n");
printf("| Saisir le nom du client. |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf(".Nom:");
fflush(stdin);
scanf("%s",a);

for (i = 0 ; i < nombreClient ; i++)
{
if(strcmp(a,listClient[i].nomContact ) == 0)
{
printf("\n");
printf(" Vous recherchez le client:%d\n",i);
printf("\n");
printf(".Identifiant:%s\n",listClient[i].idClient);
printf(".Entreprise:%s\n",listClient[i].nomEntr);
printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville);
printf(".Nom contact:%s\n",listClient[i].nomContact);
printf(".Prenom:%s\n",listClient[i].prenomContact);
printf(".Mail:%s\n",listClient[i].mailContact);
printf(".Telephone:%s\n",listClient[i].telContact);
printf("\n");
system("PAUSE");
break;
}
else
{
printf("niker"); //ATTTTTEEEENNNNNTTTTIIIIOOOOONNNNNN
}
}
break;

case 's': case 'S':

printf("----------------------------------------------------------------\n");
printf("| Voulez-vous vraiment sortir? |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf("0: Non\n");
printf("1: Oui\n");
printf("\n\n\nChoix:");
//printf("\n\t\tChoix <0,1>:\n");
scanf("%d",&b);

if(b == 1)
{
u = 0;
}
break;

default:
break;
}
}

}

voila merci beaucoup si quelqu un pouvais me montrer avec celle ci pour que je fasse les autres
ca serai vrt gentil
merci beaucoup
Configuration: Windows XP
Firefox 2.0.0.14

5 réponses

  1. ta liste client est un parametre global ?
    0
    1. je ne vois pas ce quipeut bugger, voici ton code un peu modifier, attention ta listeClient doit etre en parametre global, ainsi que nombreClient et TAILLE_MAX:

      void afficherClient(int i){
      
      	printf("\n"); 
      	printf(" Vous recherchez le client:%d\n",i); 
      	printf("\n"); 
      	printf(".Identifiant:%s\n",listClient[i].idClient); 
      	printf(".Entreprise:%s\n",listClient[i].nomEntr); 
      	printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville); 
      	printf(".Nom contact:%s\n",listClient[i].nomContact); 
      	printf(".Prenom:%s\n",listClient[i].prenomContact); 
      	printf(".Mail:%s\n",listClient[i].mailContact); 
      	printf(".Telephone:%s\n",listClient[i].telContact); 
      	printf("\n");
      
      
      }
      
      
      void rechercher() 
      { 
      	int Z; 
      	int i,b,u; 
      	char a[TAILLE_MAX]; 
      	i = 0; 
      	u = 1;
      
      	int sortie = 0; 
      
      	while (u != 0) 
      	{ 
      		system("CLS"); 
      		printf("----------------------------------------------------------------\n"); 
      		printf("| |\n"); 
      		printf("| RECHERCHER |\n"); 
      		printf("| |\n"); 
      		printf("----------------------------------------------------------------\n"); 
      		printf("\n\n\n"); 
      		printf("\nRechercher un client a partir de son:\n"); 
      		printf("I: Identifiant\n"); 
      		printf("E: Entreprise\n"); 
      		printf("N: Nom Contact\n"); 
      		printf("\nS: Sortie\n"); 
      		printf("\n\n\nChoix:"); 
      		//printf("\n\t\tChoix <I,E,N,S>:\n"); 
      
      
      		fflush(stdin); 
      		Z = getchar(); 
      
      		switch(Z){
       
      			case'I': case'i': 
      
      					for (i = 0 ; i < nombreClient ; i++) 
      					{ 
      						printf("Le client %d a pour identifiant:%s\n",i,listClient[i].idClient); 
      					} 
      					printf("\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("| Saisir l'identifiant du client. |\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("\n\n"); 
      					printf(".Identifiant:"); 
      					fflush(stdin); 
      					scanf("%s",a); 
      
      					i = 0;
      					while( (i < nombreClient) && !sortie)
      					{ 
      						if(strcmp(a,listClient[i].idClient ) == 0) 
      						{ 
      							afficherClient(i);
      							sortie = 1;
      						}
      
      					} 
      					break; 
      
      			case 'E': case 'e': 
      
      					for (i = 0 ; i < nombreClient ; i++) 
      					{ 
      						printf("Le client %d est dans l'entreprise:%s\n",i,listClient[i].nomEntr); 
      					} 
      					printf("\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("| Saisir le nom de l'entreprise. |\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("\n\n"); 
      					printf(".Entreprise:"); 
      					fflush(stdin); 
      					scanf("%s",a); 
      
      					i = 0;
      					while( (i < nombreClient) && !sortie)
      					{ 
      						if(strcmp(a,listClient[i].idClient ) == 0) 
      						{ 
      							afficherClient(i);
      							sortie = 1;
      						}
      
      					}
      					break; 
      
      
      			case 'N': case 'n': 
      					printf("Nombre de client:%d\n",nombreClient); 
      
      					for (i = 0 ; i < nombreClient ; i++) 
      					{ 
      						printf("Le client %d a pour nom:%s\n",i,listClient[i].nomContact); 
      					} 
      					printf("\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("| Saisir le nom du client. |\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("\n\n"); 
      					printf(".Nom:"); 
      					fflush(stdin); 
      					scanf("%s",a); 
      
      					i = 0;
      					while( (i < nombreClient) && !sortie)
      					{ 
      						if(strcmp(a,listClient[i].idClient ) == 0) 
      						{ 
      							afficherClient(i);
      							sortie = 1;
      						}
      
      					}
      					break;
      
      
      			case 's': case 'S': 
      
      					printf("----------------------------------------------------------------\n"); 
      					printf("| Voulez-vous vraiment sortir? |\n"); 
      					printf("----------------------------------------------------------------\n"); 
      					printf("\n\n"); 
      					printf("0: Non\n"); 
      					printf("1: Oui\n"); 
      					printf("\n\n\nChoix:"); 
      					//printf("\n\t\tChoix <0,1>:\n"); 
      					scanf("%d",&b); 
      
      					if(b == 1) 
      					{ 
      						u = 0; 
      					} 
      					break; 
      
      			default: 
      				break; 
      		} 
      	} 
      
      } 
      0
      1. merci beaucoup vachement sympa
        je lai placer dans mon programme et cest mieu sinon oui cest un parametre global
        mais ce que je cherche surtout a faire cest lagorithme de cette fonction je ni arrive pas du tout.
        et je cherche quelqun pour faire l algorithme de cette fonction histoire de me montrer parce que je dois le faire
        pour trois autre fonctions encore.
        merci beaucoup a vous
        0
    2. je ne comprend pas trop ce que tu veux dire par algorithme, chez moi c'est une suite d'instructions permettant de résoudre un probleme et l'algorithme que tu utilises dans ce programme est bidon car c'est une boucle dans la quelle à chaque tour tu demande quoi faire à l'utilisateur,

      peut me redire ce que tu veux ?

      cherche tu la complexité de ton algorithme ? si tel est le cas c'est linéaire car c'est l'utilisateur qui doit chercher quel client il veut voir afficher donc en O(1), car tu connait l'indice auquel il se situe.

      je t'écoute pour la suite
      0
      1. Voila
        ce qui nous ai demande cest de faire lalgorithme. Lagorithme cest un language qui permet au personne ayant aucune connaissance dans le domaine de la prgrammation de comprendre ce programme.
        Lalgorithme ce fait a base de afficher ; a<--valeur de.... enfin je sais plus excactement donc je cherche quelqun pour maider a faire les algo des fonctions de ce programme
        merci beaucoup.
        0
        1. et bien dans ce genre :

          tant que "utilisateur veut continuer" faire
          
              choix <- choisir le type de recherche d'un client
          
              si choix == (i ou I) alors
          
                  faire ...
          
              sinon
                si choix == (n ou N) alors
          
                     faire ...
          
                sinon
                  si choix == (s ou S) alors
          
                       quitter;
                  fin_de_si
                fin_de_si
               fin_de_si
          
          fin de tant que
          
          


          il te fallait un truc de ce genre ? je t'ai laissé les ... à remplir, mais reste simple si c'est ce qui était demandé, du genre "saisir l'identifiant" ou afficher la liste des clients, etc

          bon courage

          Cdlt
          0