You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

213 lines
4.0 KiB

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "part2.h"
//##########################TABLEAU POINTEUR#####################################################
Choix lirechx (void){//Fonction qui va lire les choix de la ville et du departement demandé par le candidat
Choix chx;
printf("Saisir le choix de la ville \n");
fgets(chx.ville, 20, stdin);
chx.ville[strlen(chx.ville)-1]= '\0';
printf("Saisir le choix du departement d'étude\n");
fgets(chx.dptmt, 20, stdin);
chx.dptmt[strlen(chx.dptmt)-1]= '\0';
chx.dec = 0;
chx.valid = 0;
return chx;
}
Candidat lireCandidat(void)//fonction qui lit un candidat sur le clavier
{
Candidat c;
printf("Nom du candidat :\n");
fgets(c.nom, 20, stdin);
c.nom[strlen(c.nom)-1]= '\0';
printf("Prénom du candidat :\n");
fgets(c.prenom, 20, stdin);
c.prenom[strlen(c.prenom)-1]= '\0';
printf("Moyenne de maths :\n");
scanf("%f", &c.moymat);
printf("Moyenne de français :\n");
scanf("%f", &c.moyfr);
printf("Moyenne d'anglais :\n");
scanf("%f", &c.moyen);
printf("Moyenne de spécialité au choix :\n");
scanf("%f", &c.moyspe);
printf("Nombre de choix :\n");
scanf("%d%*c", &c.nbchx);
return c;
}
/*
Choix * chargeChoix(Choix *tchoix, TAILLE, nbchx){
}
*/
void AffC(Candidat c)
{
printf("%s \n %s\n", c.nom, c.prenom);
printf("%.2f\t%.2f\t%.2f\t%.2f\n", c.moymat,c.moyfr, c.moyen, c.moyspe);
printf("%d\n", c.nbchx);
}
Candidat lireFich1Cand (FILE * fe){
Candidat cand;
fgets(cand.nom, 20, fe);
cand.nom[strlen(cand.nom)-1]= '\0';
fgets(cand.prenom, 20, fe);
cand.prenom[strlen(cand.prenom)-1]= '\0';
fscanf(fe, "%f", &cand.moymat);
fscanf(fe, "%f", &cand.moyfr);
fscanf(fe, "%f", &cand.moyen);
fscanf(fe, "%f", &cand.moyspe);
fscanf(fe, "%d%*c", &cand.nbchx);
return cand;
}
//######################################### LISTES ##########################################
void AffListeCandidat (Listecand l){
if ( l == NULL) return;
AffC(l->cand);
AffListeCandidat(l->suivcand);
}
Listecand recherche (Listecand l, char *nom ){
if ( l == NULL ){ return l;}
if ( strcmp ( l->cand.nom, nom ) == 0) return l;
return recherche (l->suivcand, nom );
}
Listecand InsertT(Listecand list, Candidat c)//Insert en tête de la liste
{
Mailloncand *c1;
c1 = (Mailloncand*)malloc(sizeof(Mailloncand));
if (c1 == NULL){printf("pb malloc"); exit;}
strcpy(c1->cand.nom, c.nom);
strcpy(c1->cand.prenom, c.prenom);
c1->cand.moymat = c.moymat;
c1->cand.moyfr = c.moyfr;
c1->cand.moyen = c.moyen;
c1->cand.moyspe = c.moyspe;
c1->cand.nbchx = c.nbchx;
c1->suivcand = list;
return c1;
}
Listecand Insert(Listecand list, Mailloncand * c)//insert globalement
{
if (list == NULL){return InsertT(list, c);}
if (strcmp(list->departement, m->departement)>0){return InsertT(list, m);}
list->suiv = Insert(list->suiv, m);
return list;
}
void test (void){
int menu1, menugest1;
printf("Menu :\n");//Premier affichage menu pour choisir si on veut afficher le menu d'un candidat ou toutes les candidatures
printf("(1) Gestion Candidature\n(2) Affichage Candidature\n");
scanf("%d", &menu1);
printf("%d", menu1);
while (menu1 != 1 && menu1 !=2){// Traitement des erreurs
printf("Erreur de saisie veuillez refaire votre choix ! \n");
printf("(1) Gestion Candidature\n");
printf("(2) Affichage Candidature\n");
printf("(3) Quitter\n");
scanf("%d", &menu1);
}
if (menu1 == 1){
printf("Menu : \n");//Menu gestion ajout/modification/suppression d'une candidature
printf("(1) Ajouter une Candidature\n (2) Modifier une Candidature\n (3) Supprimer une Candidature");
scanf("%d", &menugest1);
if (menugest1 == 1)
//FONCTION INSERTION LISTE AVEC AFFICHAGE NOUVELLE LISTE
//else if (menugest1 == 2)
//FONCTION MISE A JOUR LISTE AVEC AFFICHAGE NOUVELLE LISTE
//else if (menugest1 == 3)
//FONCTION SUPPRESSION LISTE AVEC AFFICHAGE NOUVELLE LISTE
//}
//else if (menu1 == 2){
printf("");
}
}
//####################################### FILES #################################################