#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", ¬esTmp[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;
}