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[i].nom[0]='v';
while(i<30 && tab_pers[i].nom[0] != '*')
{
clrscr();
gotoxy(20,2);printf("** Encodage **" );
gotoxy(20,3);printf(" ********" );
gotoxy(5,5); printf("Nom: \t" );
fflush(stdin);
gets(tab_pers[i].nom);
if(tab_pers[i].nom[0] != '*')
{
gotoxy(5,7); printf("Prenom: \t" );
fflush(stdin);
gets(tab_pers[i].prenom);
cpt++;
gotoxy(5,9); printf("Rue: \t" );
fflush(stdin);
gets(tab_pers[i].rue);
gotoxy(5,11); printf("Num?ro: \t" );
fflush(stdin);
scanf("%d",&tab_pers[i].num);
gotoxy(5,13); printf("Code Postal: \t" );
fflush(stdin);
scanf("%d",&tab_pers[i].cp);
gotoxy(5,15); printf("Localite: \t" );
fflush(stdin);
gets(tab_pers[i].loc);
gotoxy(5,17); printf("Age: \t" );
fflush(stdin);
scanf("%d",&tab_pers[i].age);
while(tab_pers[i].age<7 || tab_pers[i].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[i].age);
}
if(tab_pers[i].age>=1
{
cptage=cptage+1;
}
else
{
cpt18=cpt18+1;
}
gotoxy(5,19); printf("Sexe: \t" );
fflush(stdin);
scanf("%c",&tab_pers[i].sexe);
while(tab_pers[i].sexe!='h' && tab_pers[i].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[i].sexe);
}
if (tab_pers[i].sexe=='h')
{
totsexe=totsexe+1;
}
else
{
cptsexe++;
}
gotoxy(5,21); printf("Taille (cm): \t" );
fflush(stdin);
scanf("%d",&tab_pers[i].taille);
while(tab_pers[i].taille<100 || tab_pers[i].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[i].taille);
}
if (tab_pers[i].taille>=180)
{
tottaille=tottaille+1;
}
else
{
cpttaille++;
}
gotoxy(5,23); printf("Poids (kg): \t" );
fflush(stdin);
scanf("%d", &tab_pers[i].poids);
while(tab_pers[i].poids<1 || tab_pers[i].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[i].poids);
}
if (tab_pers[i].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[i].cp==codepost)
{
gotoxy(3,9);printf(" %s %s\n",tab_pers[i].nom,tab_pers[i].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.
Saylia.