@ -34,13 +34,13 @@ int chargementcandidat(Candidat *tcandidat[],int tmax){
fclose ( fe1 ) ;
return i ;
}
Candidat lireCandidat ( FILE * fe1 ) {
Candidat lireCandidat ( FILE * fe1 ) { //lire Candidat avec numero, nom, prenom, note et nb de departement demander
Candidat C ;
C . lchoix = NULL ;
fscanf ( fe1 , " %d %s %s %f %f %f %d " , & C . numero , C . nom , C . prenom , & C . note . Francais , & C . note . Maths , & C . note . Anglais , & C . nb_choix ) ;
return C ;
}
Choix lireChoix ( FILE * fe1 ) {
Choix lireChoix ( FILE * fe1 ) { // lire les demandes du candidat
Choix ch ;
fscanf ( fe1 , " %s %s %d %d " , ch . ville , ch . departement , & ch . decision , & ch . validation ) ;
return ch ;
@ -59,6 +59,7 @@ int chargementcandidat(Candidat *tcandidat[],int tmax){
ch - > suivant = ld ;
return ch ;
}
ListeC InsertionCandidat ( ListeC ld , char * ville , char * departement , int decision , int validation ) {
if ( ld = = NULL )
return InsertionTeteCandidat ( ld , ville , departement , decision , validation ) ;
@ -71,11 +72,11 @@ int chargementcandidat(Candidat *tcandidat[],int tmax){
void affichageCandidatchoix ( Candidat * tcandidat [ ] , int n ) {
int i ;
for ( i = 0 ; i < n ; i + + ) {
afficheCandidat ( tcandidat , i ) ;
affichageListeCandidatchoix ( tcandidat [ i ] - > lchoix ) ;
afficheCandidat ( tcandidat , i ) ; //affichage d'un candiat avec info
affichageListeCandidatchoix ( tcandidat [ i ] - > lchoix ) ; //affiche les demande du candidat
}
}
void afficheCandidat ( Candidat * tcandidat [ ] , int i ) {
void afficheCandidat ( Candidat * tcandidat [ ] , int i ) { //la fonction affichage pour les info du candidat
printf ( " \n %d \t " , tcandidat [ i ] - > numero ) ;
printf ( " %s " , tcandidat [ i ] - > nom ) ;
printf ( " %s \t " , tcandidat [ i ] - > prenom ) ;
@ -84,17 +85,17 @@ int chargementcandidat(Candidat *tcandidat[],int tmax){
printf ( " %.2f \t " , tcandidat [ i ] - > note . Anglais ) ;
printf ( " %d \n " , tcandidat [ i ] - > nb_choix ) ;
}
void affichageListeCandidatchoix ( ListeC ld ) {
void affichageListeCandidatchoix ( ListeC ld ) { // la fonction affichage des demande du candidat
while ( ld ! = NULL ) {
printf ( " %s \t " , ld - > ville ) ;
printf ( " %s \t " , ld - > departement ) ;
printf ( " %d \t " , ld - > decision ) ;
printf ( " %d \n " , ld - > validation ) ;
ld = ld - > suivant ;
ld = ld - > suivant ; //demande suivante
}
}
// Menu Candidat
void MenuCandidat ( Candidat * tcandidat [ ] , VilleIUT * tiut [ ] , int nc ) {
void MenuCandidat ( Candidat * tcandidat [ ] , VilleIUT * tiut [ ] , int nc ) { //Menu candidat
int Achoix , choix , i , j , comp , comp1 , numero , place ;
char Ncandidat [ 30 ] , PNcandidat [ 30 ] , departement [ 30 ] , newdepart [ 30 ] , Vmodif [ 30 ] , Ville [ 30 ] ;
printf ( " \n >--------------------------------------------------< \n " ) ;
@ -104,15 +105,17 @@ void MenuCandidat(Candidat *tcandidat[],VilleIUT *tiut[],int nc){
printf ( " \n >--------------------------------------------------< \n " ) ;
printf ( " \n \t Votre choix : " ) ;
scanf ( " \n %d " , & Achoix ) ;
system ( " cls " ) ;
system ( " clear " ) ;
while ( Achoix > 0 & & Achoix < 3 ) {
while ( Achoix = = 1 ) {
while ( Achoix = = 1 ) { //choix pour Candidat
printf ( " \n \n Veuillez saisir votre numero de Candidat(si revenir au menu - 0) \n : " ) ;
scanf ( " %d " , & numero ) ;
if ( numero = = 0 ) {
Achoix = 0 ;
break ;
}
place = verificationid ( tcandidat , numero , nc ) ;
place = verificationid ( tcandidat , numero , nc ) ; //Verifiaction de l'id du candidat
if ( place = = - 1 ) {
printf ( " pb numero inconnu " ) ;
exit ( 1 ) ;
@ -122,7 +125,7 @@ void MenuCandidat(Candidat *tcandidat[],VilleIUT *tiut[],int nc){
printf ( " \n 0-Revenir au menu \n 1-modifier \n 2-ajouter \n 3-supprimer \n : " ) ;
scanf ( " %d " , & choix ) ;
while ( choix > 0 ) {
if ( choix = = 1 ) {
if ( choix = = 1 ) { //Modifier demande
printf ( " \n Ville où voulez modifier : " ) ;
scanf ( " %s " , Ville ) ;
printf ( " \n Departement lier : " ) ;
@ -133,63 +136,65 @@ void MenuCandidat(Candidat *tcandidat[],VilleIUT *tiut[],int nc){
scanf ( " %s " , newdepart ) ;
tcandidat [ place ] - > lchoix = modifCandidat ( tcandidat [ place ] - > lchoix , departement , newdepart , Ville , Vmodif , nc ) ;
}
if ( choix = = 2 ) {
if ( choix = = 2 ) { //Ajout d'une demande
printf ( " \n Ville a ajouter : " ) ;
scanf ( " %s " , Ville ) ;
printf ( " \n Departement lier : " ) ;
scanf ( " %s " , departement ) ;
tcandidat [ place ] - > lchoix = ajoutCandidat ( tcandidat [ place ] - > lchoix , departement , Ville ) ;
}
if ( choix = = 3 ) {
if ( choix = = 3 ) { //Supprimer une demande
printf ( " \n Ville a supprimer : " ) ;
scanf ( " %s " , Ville ) ;
printf ( " \n Departement lier : " ) ;
scanf ( " %s " , departement ) ;
tcandidat [ place ] - > lchoix = suppressionCandidat ( tcandidat [ place ] - > lchoix , departement , Ville ) ;
}
affichageListeCandidatchoix ( tcandidat [ place ] - > lchoix ) ;
system ( " cls " ) ;
system ( " clear " ) ;
affichageListeCandidatchoix ( tcandidat [ place ] - > lchoix ) ; //affichage des demande du candidat
printf ( " \n 0-Revenir au menu \n 1-modifier \n 2-ajouter \n 3-supprimer \n : " ) ;
scanf ( " %d " , & choix ) ;
}
}
while ( Achoix = = 2 ) {
while ( Achoix = = 2 ) { //Choix pour le departement
printf ( " \n 0-Revenir au menu \n 1-Afficher Info pour un Candidat \n 2-Afficher tout les Candidat par departement \n 3-Afficher tout les Candidat avec leur information \n : " ) ;
scanf ( " \n %d " , & choix ) ;
if ( choix = = 0 ) {
Achoix = 0 ;
break ;
}
while ( choix > 0 ) {
if ( choix = = 1 ) {
while ( choix > 0 & & choix < 4 ) {
if ( choix = = 1 ) { //Afficher Info pour un Candidat
printf ( " \n nom du candidat: " ) ;
scanf ( " %s " , Ncandidat ) ;
printf ( " \n prenom du candidat: " ) ;
scanf ( " %s " , PNcandidat ) ;
for ( i = 0 ; i < nc ; i + + ) {
comp = strcmp ( tcandidat [ i ] - > nom , Ncandidat ) ;
comp = strcmp ( tcandidat [ i ] - > nom , Ncandidat ) ; //recherche du candidat
comp1 = strcmp ( tcandidat [ i ] - > prenom , PNcandidat ) ;
if ( comp = = 0 & & comp1 = = 0 ) {
afficheCandidat ( tcandidat , i ) ;
affichageListeCandidatchoix ( tcandidat [ i ] - > lchoix ) ;
afficheCandidat ( tcandidat , i ) ; //affiche du candidat
affichageListeCandidatchoix ( tcandidat [ i ] - > lchoix ) ; //affiche des demandse du candidat
}
}
}
if ( choix = = 2 ) {
if ( choix = = 2 ) { //afficher tout les candidat par departeent
printf ( " \n nom du departement souhaiter : " ) ;
scanf ( " %s " , departement ) ;
for ( i = 0 ; i < nc ; i + + ) {
if ( rechercheCandidatParDeaprtement ( tcandidat [ i ] - > lchoix , departement , nc ) = = 0 ) {
afficheCandidat ( tcandidat , i ) ;
if ( rechercheCandidatParDeaprtement ( tcandidat [ i ] - > lchoix , departement , nc ) = = 0 ) { //fonction recherche
afficheCandidat ( tcandidat , i ) ; //affichage des candidat
}
}
}
if ( choix = = 3 ) {
if ( choix = = 3 ) { //afficher tout les candidat avec leur demande
printf ( " \n \n \n \t \t Tableau Candidat et choix \n " ) ;
affichageCandidatchoix ( tcandidat , nc ) ;
}
printf ( " \n Voulez-vous choisir une autre fonction ? Sinon taper 0 pour valider : " ) ;
scanf ( " %d%*c " , & choix ) ;
if ( choix = = 0 ) {
if ( choix = = 0 ) { //Pour revenir au Menu
Achoix = 0 ;
break ;
}
@ -197,7 +202,7 @@ void MenuCandidat(Candidat *tcandidat[],VilleIUT *tiut[],int nc){
}
}
}
int rechercheCandidatParDeaprtement ( ListeC ld , char * departement , int nc ) {
int rechercheCandidatParDeaprtement ( ListeC ld , char * departement , int nc ) { //fonction de recherche pour les candidats par departement
int emp , i = 0 ;
while ( ld ! = NULL ) {
emp = strcmp ( departement , ld - > departement ) ;
@ -207,7 +212,7 @@ int rechercheCandidatParDeaprtement(ListeC ld,char *departement, int nc){
}
return - 1 ;
}
int rechercheCandidatParVille ( ListeC ld , char * departement , char * Ville , int nc ) {
int rechercheCandidatParVille ( ListeC ld , char * departement , char * Ville , int nc ) { //recherche de candidat par ville et departement
int emp , emp1 , i = 0 ;
while ( ld ! = NULL ) {
emp = strcmp ( Ville , ld - > ville ) ;
@ -218,7 +223,7 @@ int rechercheCandidatParVille(ListeC ld,char *departement ,char *Ville, int nc){
}
return - 1 ;
}
int verificationid ( Candidat * tcandidat [ ] , int numero , int nc ) {
int verificationid ( Candidat * tcandidat [ ] , int numero , int nc ) { //verification de l'id du candidat
int i ;
for ( i = 0 ; i < nc ; i + + ) {
if ( tcandidat [ i ] - > numero = = numero )
@ -232,14 +237,14 @@ ListeC modifCandidat(ListeC ld, char *departement, char *newdepart, char *Ville,
comp = strcmp ( ld - > departement , departement ) ;
comp1 = strcmp ( ld - > ville , Ville ) ;
if ( comp = = 0 & & comp1 = = 0 ) {
strcpy ( ld - > departement , newdepart ) ;
strcpy ( ld - > ville , newVille ) ;
strcpy ( ld - > departement , newdepart ) ; //modification de departement
strcpy ( ld - > ville , newVille ) ; //modification de la ville
return ld ;
}
ld = ld - > suivant ;
}
}
ListeC ajoutCandidat ( ListeC ld , char * departement , char * ville ) {
ListeC ajoutCandidat ( ListeC ld , char * departement , char * ville ) { //ajout d'un maillon pour le candidat
Choix * ch ;
ch = ( Choix * ) malloc ( sizeof ( Choix ) ) ;
if ( ch = = NULL ) {
@ -262,13 +267,13 @@ ListeC ajoutCandidat(ListeC ld, char *departement, char *ville){
}
return ld ;
}
ListeC suppressionTeteCandidat ( ListeC ld ) {
ListeC suppressionTeteCandidat ( ListeC ld ) { //supprimer le candidat
ListeC ldsvt ;
ldsvt = ld - > suivant ;
free ( ld ) ;
return ldsvt ;
}
ListeC suppressionCandidat ( ListeC ld , char * departement , char * ville ) {
ListeC suppressionCandidat ( ListeC ld , char * departement , char * ville ) { //recherche du candidat
if ( ld = = NULL )
return ld ;
if ( strcmp ( ld - > departement , departement ) = = 0 & & strcmp ( ld - > ville , ville ) = = 0 )