Commit 6b8539d2 authored by Francois Foltete's avatar Francois Foltete
Browse files

ajout moyenne

parent 367e050a
......@@ -101,6 +101,21 @@ class Student : public Actor {
*/
void clickPopup() const override;
/**
* @brief calcule la moyenne générale de l'élève
*
* @return double moyenne générale de l'élève
*/
double moyenneGenerale() const;
/**
* @brief cacule la moyenne d'une matière d'un élève
*
* @param subject matière concerné
* @return double moyenne d'une matière
*/
double moyenneMatiere(Subject * subject) const;
};
#endif
#include <assert.h>
#include "imgui/imgui-SFML.h"
#include "imgui/imgui.h"
......@@ -43,3 +44,30 @@ void
Student::infoSheet() const{
// TODO
}
double
Student::moyenneGenerale() const{
double res = 0;
double sommeCoeff =0;
for( const auto& kv : grades){
sommeCoeff += kv.first->getCoeff();
res += moyenneMatiere(kv.first) * kv.first->getCoeff();
}
return res/sommeCoeff; // on divise la moyenne par la somme des coeffs
}
double Student::moyenneMatiere(Subject * subject) const {
assert(grades.count(subject) > 0);
double moyMatiere;
const std::vector<double> &notes = grades.at(subject);
std::vector<double>::size_type vecsize = notes.size();
for(std::vector<double>::size_type i = 0; i < vecsize; i++)
moyMatiere += notes[i]; // somme des notes de la matiere
moyMatiere /= vecsize; // divise par le nombre de notes
return moyMatiere;
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment