Vous êtes sur la page 1sur 4

#include <stdio.

h>
#include <string.h>

#define maxSize 400

typedef struct module {


char libelle[15];
int coeff;
int credit;
} module;

//////////////////////////////////////////////////////////////
typedef struct etudiant {
int num;
char nom[20];
char prenom[20];
int groupe;
float moyenne;
int credit;
} etudiant;

//////////////////////////////////////////////////////////////
void saisirLesModules(module tabMod[]) {
int i;
puts("===============================");
puts("Saisie des listes des modules:");
puts("===============================");
for(i=0; i<7; i++) {
printf("Saisir le module n�: %d \n",(i+1));
printf("nom du module: ");
scanf("%s", &tabMod[i].libelle);
printf("le coefficient: ");
scanf("%d", &tabMod[i].coeff);
printf("credit: ");
scanf("%d", &tabMod[i].credit);
puts("");
}
puts("===============================");
}

/////////////////////////////////////////////////////////////

void saisirLesEtudiants(etudiant promo[], int nb) {

int i;
puts("===============================");
puts("Saisie des listes des etudiants:");
puts("===============================");
for(i=0; i<nb; i++) {
promo[i].num = i+1;
printf("Saisir l\'etudiant n�: %d \n",(i+1));
printf("nom: ");
scanf("%s", &promo[i].nom);
printf("prenom: ");
scanf("%s", &promo[i].prenom);
printf("groupe: ");
scanf("%d", &promo[i].groupe);
promo[i].moyenne = 0.0;
promo[i].credit= 0;
}
puts("===============================\n");
}

////////////////////////////////////////////////////////////////////////

float calculerMoy(float notes[], module Mods[]) {

int i, sommeCoeff = 0;

float somme = 0.0;


for(i=0; i<7; i++){
sommeCoeff = sommeCoeff + Mods[i].coeff;
somme = somme + (notes[i] * Mods[i].coeff);
}

return somme / sommeCoeff;


}

//////////////////////////////////////////////////////////////////////

int calculerCredit(float notes[], module Mods[]){


int i,sommeCredit = 0;

for(i=0; i<7; i++)


{
if(notes[i]>=10.0)
sommeCredit = sommeCredit + Mods[i].credit;
}

return sommeCredit;
}

//////////////////////////////////////////////////////////////////////
void remplirMoys(etudiant promo[], int nbEtudiants, module Mods[]) {

int i,j;
float notesTmp[7];

for(i=0; i<nbEtudiants; i++) {


puts("=======================================");
printf("Siaisie des notes, etudiant n�: %d\n", i+1);
puts("=======================================");
for(j=0; j<7; j++) {
printf("Saisir la note de %s: ", Mods[j].libelle);
scanf("%f", &notesTmp[j]);
}

promo[i].moyenne = calculerMoy(notesTmp, Mods);


if(promo[i].moyenne < 10.0)
promo[i].credit = calculerCredit(notesTmp, Mods);
else
promo[i].credit = 30;
}
}
///////////////////////////////////////////////////////////////////////

void afficherPromo(etudiant promo[], int nb){


int i;
for(i=0; i<nb; i++){
puts("===============================");
printf("= L\'etudiant N�: %d\n", i+1);
puts("===============================");
printf("Le NumID : %d\n",promo[i].num);
printf("Le Nom : %s\n",promo[i].nom);
printf("Le Prenom : %s\n",promo[i].prenom);
printf("Le Groupe : %d\n",promo[i].groupe);
printf("La Moyenne: %.2f\n",promo[i].moyenne);
printf("Le Credit : %d\n\n",promo[i].credit);
}

}
/////////////////////////////////////////////////////////////////////

etudiant * trouverLeMajor(etudiant promo[], int nb){


int i, indiceMajor = 0;
float maxMoy = promo[0].moyenne;
etudiant * pMajor = &promo[0];

for(i=1; i<nb; i++)


if(maxMoy < promo[i].moyenne)
{
maxMoy = promo[i].moyenne;
pMajor = &promo[i];
indiceMajor = i;
}

puts("\n=================================");
printf(" Le Major de Promo est:\n ");
puts("==================================");
printf("N� : %d\n", pMajor->num);
printf("nom : %s\n", pMajor->nom);
printf("prenom : %s\n", pMajor->prenom);
printf("groupe : %d\n", pMajor->groupe);
printf("moyenne : %.2f\n", pMajor->moyenne);
printf("credit : %d\n\n", pMajor->credit);

return pMajor;
}

int main() {
module listeDesModules[7];

int nbEtudiants;

saisirLesModules(listeDesModules);

puts("Combien d\'etudiants existent dans la promotion?");

do {
scanf("%d", &nbEtudiants);
} while(nbEtudiants>maxSize);
etudiant promotion[nbEtudiants];

saisirLesEtudiants(promotion, nbEtudiants);

remplirMoys(promotion, nbEtudiants, listeDesModules);

afficherPromo(promotion, nbEtudiants);

printf("Le major se trouve dans l\'adresse: %x \n", trouverLeMajor(promotion,


nbEtudiants));

printf("=========== Fin ===========");

return 0;
}