Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Cjt_estudiants.hpp"
- typedef vector<Cjt_estudiants> quadri;
- void leer_vect_cjt_estudiants(vector<Cjt_estudiants> &v){
- for (int j=0; j<v.size(); ++j)
- v[j].llegir_cjt_estudiants();
- }
- void escribir_vect_double(const vector<double> &v){
- // Pre: v.size()>0
- for (int j=0; j<v.size()-1; ++j)
- cout << v[j] << " ";
- cout << v[v.size()-1] << endl;
- }
- double normalitzar_nota(const Estudiant &e){
- /* Pre: cap */
- /* Post: retorna la nota normalizada de l'estudiant, la seva nota si en te
- o -1 si no en te */
- if(e.te_nota()) return e.consultar_nota();
- return -1;
- }
- double maxima_nota(const Estudiant &e1, const Estudiant &e2){
- /* Pre: els dos estudiants tenen el mateix dni */
- /* Post: retorna la nota nota normalitzada més gran (o la segona en cas d'empat) dels dos estudiants */
- double nota_e1 = normalitzar_nota(e1);
- double nota_e2 = normalitzar_nota(e2);
- return (nota_e1 > nota_e2) ? nota_e1 : nota_e2;
- }
- vector<double> maximes_notes(const quadri &Q1, const quadri &Q2, const int &dni){
- /* Pre: Q1 i Q2 tenen la mateixa mida */
- /* Post: retorna un vector amb les millors notes per assignatura dels dos quadrimestres
- per a un dni donat. */
- vector<double> notes(Q1.size());
- for(int i = 0; i < Q1.size(); ++i){
- if(Q1[i].existeix_estudiant(dni) and Q2[i].existeix_estudiant(dni)){
- notes[i] = maxima_nota(Q1[i].consultar_estudiant(dni), Q2[i].consultar_estudiant(dni));
- }
- else if(Q1[i].existeix_estudiant(dni)){
- notes[i] = normalitzar_nota(Q1[i].consultar_estudiant(dni));
- }
- else if(Q2[i].existeix_estudiant(dni)){
- notes[i] = normalitzar_nota(Q2[i].consultar_estudiant(dni));
- }
- else notes[i] = -1;
- }
- return notes;
- }
- int main() {
- quadri Q1, Q2;
- int n = readint();
- Q1 = Q2 = quadri(n);
- leer_vect_cjt_estudiants(Q1);
- leer_vect_cjt_estudiants(Q2);
- int dni;
- while(dni = readint()){
- escribir_vect_double(maximes_notes(Q1,Q2,dni));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement