Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 85 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Programme en C: petiis problèmes... POuvez-vous m'aider?

 
n°7377
say
Profil : Jeune recrue
Posté le 09-04-2004 à 15:47:28  profilanswer
 

Bonjour.
 
J'ai réalisé mon programme mais il y a qqs problèmes, pouvez-vous m'aider?  
 
La dernière page , qui doit indiquer que j'ai réalisé ce programme ne s'affiche pas lors de la saisie 0 (aussi , j'aimerais que cela s'affiche en bleu)  
 
Ensuite, pour la recheche par code postal : si deux personnes ont le même code postal, ce programme n'indique qu'une seule personne !  
 
J'espère que vous me suivez!  
 
 
---------------------------------------------  
 
Voici :  
 
#include<stdio.h>  
#include<conio.h>  
#include<stdlib.h>  
#include<string.h>  
 
 
struct s_personne  
{  
char nom[25];  
char prenom[20];  
char rue[25];  
int num;  
short cp;  
char loc[25];  
short age;  
char sexe;  
int taille;  
int poids;  
};  
 
void main()  
 
{  
int choix;  
struct s_personne tab_pers[30];  
struct s_personne tmp;  
int i=0, cptsexe=0, cptage=0, cpttaille=0, cptpoids=0, cpt18=0, cpt=0;  
int j,k,nbr,ligne;  
int totsexe=0, tottaille=0, totpoids=0, menu=1;  
int codepost;  
while (menu==1)  
{  
 
clrscr();  
gotoxy(5,2); printf("** MENU **" );  
gotoxy(5,3); printf(" **** " );  
gotoxy(18,6); printf("1: Encodage" );  
gotoxy(18,7); printf("-----------" );  
gotoxy(18,10); printf("2: Statistique" );  
gotoxy(18,11); printf("--------------" );  
gotoxy(18,14); printf("3: Recherche par Code Postal" );  
gotoxy(18,15); printf("----------------------------" );  
gotoxy(18,1; printf("4: Recherche des personnes majeures" );  
gotoxy(18,19); printf("-----------------------------------" );  
gotoxy(18,22); printf("0: Quitter" );  
gotoxy(18,23); printf("----------" );  
gotoxy(55,25); printf(" Entrez votre choix : " ); scanf("%d",&choix);  
 
while ((choix!=0) && (choix!=1) && (choix!=2) && (choix!=3) && (choix !=4))  
{  
gotoxy(3,26);  
printf("ERREUR -> Entrer une option valable" );  
getch();  
gotoxy(3,26); clreol();  
gotoxy(3,26); printf("\nEntrer votre choix : " ); scanf("%d",&choix);  
}  
switch(choix)  
{  
case 1:  
i=0;  
tab_pers.nom[0]='v';  
while(i<30 && tab_pers.nom[0] != '*')  
{  
clrscr();  
gotoxy(20,2);printf("** Encodage **" );  
gotoxy(20,3);printf(" ********" );  
gotoxy(5,5); printf("Nom: \t" );  
fflush(stdin);  
gets(tab_pers.nom);  
if(tab_pers.nom[0] != '*')  
{  
gotoxy(5,7); printf("Prenom: \t" );  
fflush(stdin);  
gets(tab_pers.prenom);  
cpt++;  
gotoxy(5,9); printf("Rue: \t" );  
fflush(stdin);  
gets(tab_pers.rue);  
gotoxy(5,11); printf("Num‚ro: \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.num);  
gotoxy(5,13); printf("Code Postal: \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.cp);  
gotoxy(5,15); printf("Localite: \t" );  
fflush(stdin);  
gets(tab_pers.loc);  
gotoxy(5,17); printf("Age: \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.age);  
while(tab_pers.age<7 || tab_pers.age>77)  
{  
gotoxy(2,24);  
printf("Erreur d'encodage : L'ƒge doit ˆtre compris entre 7 et 77 ans" );  
getch();  
gotoxy(2,24); clreol();  
gotoxy(5,17); printf("Age: \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.age);  
}  
if(tab_pers.age>=1  
{  
cptage=cptage+1;  
}  
else  
{  
cpt18=cpt18+1;  
}  
gotoxy(5,19); printf("Sexe: \t" );  
fflush(stdin);  
scanf("%c",&tab_pers.sexe);  
while(tab_pers.sexe!='h' && tab_pers.sexe!='f')  
{  
gotoxy(3,24); printf("Erreur d'encodage: Entrer F ou H pour le sexe de la personne" );  
getch();  
gotoxy(3,24); clreol();  
gotoxy(5,19); printf("Sexe: \t" );  
fflush(stdin);  
scanf("%c",&tab_pers.sexe);  
}  
if (tab_pers.sexe=='h')  
{  
totsexe=totsexe+1;  
}  
else  
{  
cptsexe++;  
}  
gotoxy(5,21); printf("Taille (cm): \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.taille);  
while(tab_pers.taille<100 || tab_pers.taille>250)  
{  
gotoxy(3,24); printf("Erreur d'encodage: La taille doit ˆtre comprise entre 140 et 250" );  
getch();  
gotoxy(3,24); clreol();  
gotoxy(5,21); printf("Taille (cm): \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.taille);  
}  
if (tab_pers.taille>=180)  
{  
tottaille=tottaille+1;  
}  
else  
{  
cpttaille++;  
}  
 
gotoxy(5,23); printf("Poids (kg): \t" );  
fflush(stdin);  
scanf("%d", &tab_pers.poids);  
while(tab_pers.poids<1 || tab_pers.poids>140)  
{  
gotoxy(3,25); printf("Erreur d'encodage: Le poids doit ˆtre compris entre 1 et 140" );  
getch();  
gotoxy(3,24); clreol();  
gotoxy(5,23); printf("Poids (kg): \t" );  
fflush(stdin);  
scanf("%d",&tab_pers.poids);  
}  
if (tab_pers.poids>=1)  
{  
totpoids=totpoids+1;  
}  
else  
{  
cptpoids++;  
}  
i++;  
}  
 
}  
 
break;  
 
case 2: clrscr();  
gotoxy(20,2);printf("** STATISTIQUE **" );  
gotoxy(20,3);printf (" *********** " );  
gotoxy(3,6);printf("Nombre d'hommes : ____________________________________ %d",totsexe);  
gotoxy(3,;printf("Nombre de femmes : ___________________________________ %d",cptsexe);  
gotoxy(3,10);printf("Nombre de personnes majeures : _______________________ %d",cptage);  
gotoxy(3,12);printf("Nombre de personnes mineures : _______________________ %d",cpt18);  
gotoxy(3,14);printf("Nombre de personnes dont la taille est <1m80 :________ %d",cpttaille);  
gotoxy(3,16);printf("Nombre de personnes dont la taille est >= 1m80 :______ %d",tottaille);  
gotoxy(3,1;printf("Nombre de personnes dont le poids est <= 100kg;_______ %d",totpoids);  
gotoxy(3,20);printf("Nombre de personnes dont le poids est >100kg:_________ %d",cptpoids);  
getch();  
break;  
 
case 3: clrscr();  
gotoxy(20,2);printf("** RECHERCHE PAR CODE POSTAL **" );  
gotoxy(20,3);printf(" ************************* " );  
gotoxy(3,7);printf("Entrez Code Postal : " );  
scanf("%d",&codepost);  
for(i=0;i<=cpt;i++)  
{  
if(tab_pers.cp==codepost)  
{  
gotoxy(3,9);printf(" %s %s\n",tab_pers.nom,tab_pers.prenom);  
}  
}  
getch();  
break;  
case 4: clrscr();  
gotoxy(20,2);printf("** RECHERCHE DES PERSONNES MAJEURES **" );  
gotoxy(20,3);printf(" ******************************** " );  
for(j=1;j<cpt-2;j++)  
{  
for(k=0;k<j;k++)  
{  
if(strcmp(tab_pers[k].nom,tab_pers[j].nom)>0)  
{  
strcpy(tmp.nom,tab_pers[k].nom);  
strcpy(tmp.prenom,tab_pers[k].prenom);  
tmp.age=tab_pers[k].age;  
strcpy(tmp.rue,tab_pers[k].rue);  
tmp.num=tab_pers[k].num;  
tmp.cp=tab_pers[k].cp;  
strcpy(tmp.loc,tab_pers[k].loc);  
tmp.sexe=tab_pers[k].sexe;  
tmp.taille=tab_pers[k].taille;  
tmp.poids=tab_pers[k].poids;  
 
strcpy(tab_pers[k].nom,tab_pers[j].nom);  
strcpy(tab_pers[k].prenom,tab_pers[j].prenom);  
tab_pers[k].age=tab_pers[j].age;  
strcpy(tab_pers[k].rue,tab_pers[j].rue);  
tab_pers[k].num=tab_pers[j].num;  
tab_pers[k].cp=tab_pers[j].cp;  
strcpy(tab_pers[k].loc,tab_pers[j].loc);  
tab_pers[k].sexe=tab_pers[j].sexe;  
tab_pers[k].taille=tab_pers[j].taille;  
tab_pers[k].poids=tab_pers[j].poids;  
 
strcpy(tab_pers[j].nom,tmp.nom);  
strcpy(tab_pers[j].prenom,tmp.prenom);  
tab_pers[j].age=tmp.age;  
strcpy(tab_pers[j].rue,tmp.rue);  
tab_pers[j].num=tmp.num;  
tab_pers[j].cp=tmp.cp;  
strcpy(tab_pers[j].loc,tmp.loc);  
tab_pers[j].sexe=tmp.sexe;  
tab_pers[j].taille=tmp.taille;  
tab_pers[j].poids=tmp.poids;  
}  
}  
}  
 
nbr=1;  
ligne=5;  
for(j=0;j<cpt;j++)  
{  
if(tab_pers[j].age>=1  
{  
if(nbr<16)  
 
{  
gotoxy(4,ligne);puts(tab_pers[j].nom);  
gotoxy(30,ligne);puts(tab_pers[j].prenom);  
ligne++;  
}  
else  
{  
ligne--;  
gotoxy(40,16-ligne);puts(tab_pers[j].nom);  
gotoxy(65,16-ligne);puts(tab_pers[j].prenom);  
 
}  
nbr++;  
}  
}  
 
getch();  
break;  
 
case 0: /* quitter */  
clrscr();  
menu=0;  
gotoxy(20,10);printf("ce prog a ete realise par C.M." );  
 
break;  
 
}  
 
 
}  
 
}  
 
 
----------------------------------------------------  
 
Merci de m'aider.
 
Say.

n°7410
marc_ba
Hein ?
Profil : Membre
Posté le 12-04-2004 à 18:56:36  profilanswer
 

Salut
 
En regardant 15 secondes :  
- pour la recherche par CP, tu compares toujours à la première case de ton tableau ...  
 
if(tab_pers.cp==codepost)  
{  
gotoxy(3,9);printf(" %s %s\n",tab_pers.nom,tab_pers.prenom);  
}  
 
au lieu de
 
if(tab_pers[i].cp==codepost)  
{  
gotoxy(3,9);printf(" %s %s\n",tab_pers.nom,tab_pers.prenom);  
}  
 
- Pour la saisie 0, essaie de faire un flush de ta sortie ...Je me souviens pas de la commande mais c'est peut-être juste flush() ?

n°7417
say
Profil : Jeune recrue
Posté le 13-04-2004 à 11:33:25  profilanswer
 

Bonjour,  
 
En effet, tu as raison mais cela n'est qu'une erreur dans mon copier-coller car je l'ai dans mon programme ce qui veut dire que le problème est toujours là.
 
Merci beaucoup.
 
Say


Aller à :
Ajouter une réponse