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. 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; 
    		} 
    	} 
    
    } 
    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
  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
    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.
      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