Encore qqs problèmes dans mon programme en C... Pouvez-vous m'aider? - C - Programmation
Marsh Posté le 15-04-2004 à 13:29:55
Pour le code postal tu fais gotoxy(3,9) tu reecris donc sur la meme ligne
je pense. Il n'y aura donc qu'un nom d'affiche a la fin. Il faut decaler
d'une ligne entre chaque nom trouve.
Marsh Posté le 16-04-2004 à 21:08:47
ouai je le pense aussi dans ce cas il suffit de déclarer 1 variable qui est incrémenté a chaque nom trouvé et pour ton affichage il n'y a pas d'attente donc si tu le lance a partir d'une fenetre dos forcement tu ne pas voir le résultat donc rajoute un getchar(); juste avant le dernier break
Marsh Posté le 16-04-2004 à 21:17:48
Code :
|
s'eu été trop facile d'utiliser l'affecation entre structure ...
Marsh Posté le 16-04-2004 à 21:43:56
ouai c sur que cela aurait été plus simple de ne pas passer par une autre structure temporaire mais bon ca ne doit pas être le seul truc optimisable au niveau du code et ca ne résout en rien le problème ;-)
Marsh Posté le 16-04-2004 à 23:38:34
non mais complexifier le code en utilisant 30 lignes au lieu de 3, ça détourne l'attention sur des conneries, de telles sorte que tu nages dans ton code
Marsh Posté le 17-04-2004 à 11:43:17
Taz a écrit : non mais complexifier le code en utilisant 30 lignes au lieu de 3, ça détourne l'attention sur des conneries, de telles sorte que tu nages dans ton code |
Je vais peut-être dire une connerie ...
Pourquoi ne pas utiliser la fonction qsort (en écrivant la fonction de comparaison qui va bien) ?
Marsh Posté le 17-04-2004 à 15:12:26
darkoli a écrit : |
ben parce que l'intérêt c'est clairement d'écrire un programme foireux le plus long possible
Marsh Posté le 09-04-2004 à 14:09:34
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.