Merge branch 'master' of https://codefirst.iut.uca.fr/git/roxane.rossetto/algo2
commit
35946b3a52
@ -0,0 +1,166 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include"part4.h"
|
||||||
|
|
||||||
|
|
||||||
|
Filechx initchx (void){// initialise une file choix a NULL
|
||||||
|
Filechx f;
|
||||||
|
f.kechx = NULL;
|
||||||
|
f.ttchx = NULL;
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Filecand initcand (void){// initialise une file candidat a NULL
|
||||||
|
Filecand f;
|
||||||
|
f.kecand = NULL;
|
||||||
|
f.ttcand = NULL;
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
int testVideCand (Filecand f){// fonction test si la Filecand est vide return 1 sinon 0
|
||||||
|
if (f.ttcand == NULL) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int testVideChx (Filechx f){// fonction test si la Filechx est vide return 1 sinon 0
|
||||||
|
if (f.ttchx == NULL) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Choix lireC(FILE *fe)//fonction extraite de la partie 2
|
||||||
|
{
|
||||||
|
Choix c;
|
||||||
|
fscanf(fe, "%s%*c", c.ville);
|
||||||
|
fgets(c.dptmt, 26, fe);
|
||||||
|
c.dptmt[strlen(c.dptmt)-1]= '\0';
|
||||||
|
fscanf(fe, "%d %d%*c", &c.dec, &c.valid);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Listechx InsertTC(Listechx list, Choix m)//Insert en tête de la liste
|
||||||
|
{
|
||||||
|
Maillonchx *mchx;
|
||||||
|
mchx = (Maillonchx*)malloc(sizeof(Maillonchx));
|
||||||
|
if (mchx == NULL){printf("pb malloc"); exit(-1);}
|
||||||
|
mchx->chx = m;
|
||||||
|
mchx->suivchx = list;
|
||||||
|
return mchx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Listechx InsertC(Listechx list, Choix m)//insert globalement dans liste de choix
|
||||||
|
{
|
||||||
|
if (list == NULL){return InsertTC(list, m);}
|
||||||
|
if (strcmp(list->chx.dptmt, m.dptmt)>0){return InsertTC(list, m);}
|
||||||
|
list->suivchx = InsertC(list->suivchx, m);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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;}
|
||||||
|
c1->cand.nEtu = c.nEtu;
|
||||||
|
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.noteDoss = c.noteDoss;
|
||||||
|
c1->cand.nbchx = c.nbchx;
|
||||||
|
c1->cand.lchx = c.lchx;
|
||||||
|
c1->suivcand = list;
|
||||||
|
return c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Listecand Insert(Listecand list, Candidat c)//insert globalement
|
||||||
|
{
|
||||||
|
if (list == NULL){return InsertT(list, c);}
|
||||||
|
if (strcmp(list->cand.nom, c.nom)>0){return InsertT(list, c);}
|
||||||
|
list->suivcand = Insert(list->suivcand, c);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
Listecand InsertN(Listecand list, Candidat c)//insert globalement en fonction de la note
|
||||||
|
{
|
||||||
|
if (list == NULL){return InsertT(list, c);}
|
||||||
|
if (list->cand.noteDoss <=+ c.noteDoss){return InsertT(list, c);}
|
||||||
|
list->suivcand = InsertN(list->suivcand, c);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Listecand Chargementlistecandidat(FILE *fe, Listecand lC, int *nbC)// fonction de chargement de la liste des candidats
|
||||||
|
{
|
||||||
|
int cpt, j;
|
||||||
|
fscanf(fe, "%d", nbC);
|
||||||
|
for (j = 1; j <= *nbC; j++)
|
||||||
|
{
|
||||||
|
Candidat Ca;
|
||||||
|
fscanf(fe, "%d %s%*c", &Ca.nEtu, Ca.nom);
|
||||||
|
fgets(Ca.prenom, 26, fe);
|
||||||
|
Ca.prenom[strlen(Ca.prenom)-1]= '\0';
|
||||||
|
fscanf(fe,"%f %f %f %f %f %d%*c", &Ca.moymat, &Ca.moyfr, &Ca.moyen, &Ca.moyspe, &Ca.noteDoss, &Ca.nbchx);
|
||||||
|
Ca.lchx=NULL;
|
||||||
|
|
||||||
|
for (cpt = Ca.nbchx; cpt >= 1; cpt--)
|
||||||
|
{
|
||||||
|
Choix c;
|
||||||
|
c = lireC(fe);//lire le maillon avec la fonction plus haut
|
||||||
|
Ca.lchx = InsertC(Ca.lchx, c);//insert le maillon à sa bonne place
|
||||||
|
}
|
||||||
|
lC = Insert(lC, Ca);
|
||||||
|
}
|
||||||
|
return lC;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void test (void {
|
||||||
|
|
||||||
|
})
|
@ -0,0 +1,53 @@
|
|||||||
|
4
|
||||||
|
36
|
||||||
|
Dupont
|
||||||
|
Jeannine
|
||||||
|
10.20 15.65 12.45 18.00 13.00
|
||||||
|
2
|
||||||
|
Clermont-Ferrand
|
||||||
|
Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
Aurillac
|
||||||
|
Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
35
|
||||||
|
Durand
|
||||||
|
Jean Jacques
|
||||||
|
15.75 12.25 9.50 17.00 9.50
|
||||||
|
3
|
||||||
|
Aurillac
|
||||||
|
Bio-Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
Clermont-Ferrand
|
||||||
|
Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
Grenoble
|
||||||
|
Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
38
|
||||||
|
Henry
|
||||||
|
Bertrand
|
||||||
|
5.20 14.65 11.23 14.00 12.00
|
||||||
|
2
|
||||||
|
Clermont-Ferrand
|
||||||
|
Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
Aurillac
|
||||||
|
Informatique
|
||||||
|
0
|
||||||
|
0
|
||||||
|
37
|
||||||
|
Thérèse
|
||||||
|
Francoise
|
||||||
|
10.50 12.65 14.45 16.00 18.00
|
||||||
|
1
|
||||||
|
Clermont-Ferrand
|
||||||
|
Bio-Informatique
|
||||||
|
0
|
||||||
|
0
|
@ -0,0 +1,50 @@
|
|||||||
|
typedef struct {
|
||||||
|
char ville[26];//ville choisie
|
||||||
|
char dptmt[26];//département choisi
|
||||||
|
int dec;//décision du choix
|
||||||
|
int valid;//validation du candidat
|
||||||
|
}Choix;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct Listchx{
|
||||||
|
Choix chx;
|
||||||
|
struct Listchx * suivchx;
|
||||||
|
}Maillonchx;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
Maillonchx *ttchx;
|
||||||
|
Maillonchx *kechx;} Filechx;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int nEtu;//numéro d'étudiant
|
||||||
|
char nom[26];//nom de l'étudiant
|
||||||
|
char prenom[26];//prénom de l'étudiant
|
||||||
|
float moymat;//moyenne en maths
|
||||||
|
float moyfr;//moyenne en français
|
||||||
|
float moyen;//moyenne en anglais
|
||||||
|
float moyspe;//moyenne en spécialité
|
||||||
|
float noteDoss;//note après étude du dossier
|
||||||
|
int nbchx;//nombre de choix
|
||||||
|
Listechx lchx;
|
||||||
|
}Candidat;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct Mailloncand{
|
||||||
|
Candidat cand;
|
||||||
|
struct Mailloncand * suivcand;
|
||||||
|
}Mailloncand;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
Mailloncand *ttcand;
|
||||||
|
Mailloncand *kecand;} Filecand;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Filechx initchx (void);// initialise une file choix a NULL
|
||||||
|
Filecand initcand (void);// initialise une file candidat a NULL
|
||||||
|
int testVideCand (Filecand f);// fonction test si la Filecand est vide return 1 sinon 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue