1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
void main()
{
DOSS *pdebD = NULL;
NAT *pdebN = NULL;
RANG *pdebR = NULL;
char nomlu[31];
int nbitot=0; //total nombre inscrit
int numdoss=0; //numéro de dossard qui s'incrémente
char code;
//-----------------------------------Prototype fonction--------------------------------------
void inscrire (char [],DOSS **,NAT **,int *, int *); // inscription du skieur
void desistement(char [],DOSS **, int *); // desinscription du skieur
//-------------------------------------------------------------------------------------------
gets (nomlu);
while(*nomlu !='*')
{
system ("cls");
printf ("Pour un desistement veuillez saisir la O/N\n\n");
code = getchar ();
if (code == 'n' || code == 'N')
{
inscrire (nomlu,&pdebD,&pdebN,&nbitot,&numdoss); // inscription
}
else
{
desistement (nomlu,&pdebD,&nbitot);
}
fflush (stdin);
system ("cls");
printf ("Veuillez saisir le nom du participant ou * pour passer a la phase II\n\n");
gets (nomlu);
}
void inscrire(char nomlu[],DOSS ** spD, NAT ** spN, int *nbitot, int *numdoss)
{
int rep;
DOSS ** cherchenom (char [],DOSS **,int *);
NAT * inscrirenat(char [],NAT **);
DOSS * pnouv;
NAT * pn;
spD = cherchenom (nomlu,spD,&rep);
if (rep==1)
{
printf("Participant déjà inscrit\n");
system ("pause");
return;
}
*nbitot++;
pnouv=(DOSS*)malloc (sizeof(DOSS));
pnouv->nom = strdup (nomlu);
pnouv->tps=-1;
*numdoss++;
pnouv->ndoss=*numdoss;
pnouv->psD= *spD;
*spD=pnouv;
printf("Veuillez inscrire la nationalite\n");
fflush(stdin);
char zl[51];
gets (zl); //lecture de la nationalité
pn = inscrirenat (zl,spN);
pnouv->pnat = pn;
}
DOSS ** cherchenom (char nomlu[],DOSS ** spD, int *rep)
{
int comp=1;
for (;*spD && (comp = strcmp (nomlu,(*spD)->nom))>0;spD = &((*spD)->psD));
if (comp==0) *rep=1; //Nom trouvé
else *rep=0;
return (spD);
} |
Partager