MP Curs 2018-19 Exercici 1 (Data Lliurament - 30 Abril A Les 23 - 55) Mostra La Tramesa

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

6/6/2020 MP Curs 2018-19 Exercici 1 (Data lliurament: 30 abril a les 23:55) Mostra la tramesa

MP Curs 2018-19
Tauler / Els meus cursos / MP18-19 / TEMA 2: ESTRUCTURES DE DADES DINÀMIQUES
/ Exercici 1 (Data lliurament: 30 abril a les 23:55)

Descripció

Mostra la tramesa

Tramès el dimarts, 30 abril 2019, 21:06 (Descarrega)


Avaluació automàtica[-]
Comentaris[-]
Compilacio del codi ...
Errors de compilacio

Titulacio.cpp: In member function ‘bool Titulacio::eliminaEstudiant(const string&)’:


Titulacio.cpp:45:23: error: lvalue required as left operand of assignment
(m_estudiants + j) = (m_estudiants + j + 1);
^
Titulacio.cpp: At global scope:
Titulacio.cpp:52:11: error: prototype for ‘Estudiant Titulacio::consultaEstudiant(const string&)’ does
not match any in class ‘Titulacio’
Estudiant Titulacio::consultaEstudiant(const string& niu)
^
In le included from Titulacio.cpp:1:0:
Titulacio.h:11:16: error: candidate is: Estudiant* Titulacio::consultaEstudiant(const string&)
Estudiant* consultaEstudiant(const string& niu);
^

Titulacio.cpp

https://caronte.uab.cat/mod/vpl/forms/submissionview.php?id=6760&userid=1512 1/4
6/6/2020 MP Curs 2018-19 Exercici 1 (Data lliurament: 30 abril a les 23:55) Mostra la tramesa

1 #include "Titulacio.h"
2 void Titulacio::afegeixEstudiant(const string& niu, const string& nom, int anyInici)
3 {
4 Estudiant* p;
5 p = new Estudiant(niu, nom, anyInici);
6 bool trobat = false;
7 int i = 0;
8 while ((i < m_nEstudiants) && !trobat)
9 {
10 if (m_estudiants[i] != nullptr)
11 {
12 if (niu < m_estudiants[i]->getNiu())
13 trobat = true;
14 else
15 {
16 i++;
17 }
18 }
19 }
20 for (int j = m_nEstudiants; j > i; j--)
21 *(m_estudiants + j) = *(m_estudiants + j - 1);
22 m_estudiants[i] = p;
23 m_nEstudiants++;
24 }
25 bool Titulacio::eliminaEstudiant(const string& niu)
26 {
27 bool trobat = false;
28 int i = 0;
29 while ((i < m_nEstudiants) && !trobat)
30 {
31 if (m_estudiants[i] != nullptr)
32 {
33 if (niu == m_estudiants[i]->getNiu())
34 trobat = true;
35 else
36 {
37 i++;
38 }
39 }
40 }
41 if (trobat)
42 {
43 delete m_estudiants[i];
44 for (int j = i; j < (m_nEstudiants - 1); j++)
45 (m_estudiants + j) = (m_estudiants + j + 1);
46 m_nEstudiants--;
47
48 }
49 return trobat;
50 }
51
52 Estudiant Titulacio::consultaEstudiant(const string& niu)
53 {
54 Estudiant* e;
55 e = new Estudiant;
56 bool trobat = false;
57 int i = 0;
58 while ((i < m_nEstudiants) && !trobat)
59 {
60 if (niu == m_estudiants[i]->getNiu())
61 trobat = true;
62 else
63 {
64 i++;
65 }
66 }
67 if (trobat)
68 e = m_estudiants[i];
69 else
70 e = nullptr;
71 return e;
72 }
73 bool Titulacio::afegeixAssignatura(const string& niu, const string& assignatura)
74 {

https://caronte.uab.cat/mod/vpl/forms/submissionview.php?id=6760&userid=1512 2/4
6/6/2020 MP Curs 2018-19 Exercici 1 (Data lliurament: 30 abril a les 23:55) Mostra la tramesa
75 bool trobat = false;
76 Estudiant* e;
77 e = new Estudiant;
78 e = consultaEstudiant(niu);
79 int i = 0;
80 if (e != nullptr)
81 {
82 trobat = true;
83 e->afegeixAssignatura(assignatura);
84 }
85 return trobat;
}

Titulacio.h
1 #pragma once
2 #include "Estudiant.h"
3 const int MAX_ESTUDIANTS = 300;
4
5 class Titulacio
6 {
7 public:
8 Titulacio(): m_nEstudiants(0) {}
9 void afegeixEstudiant(const string& niu, const string& nom, int anyInici);
10 bool eliminaEstudiant(const string& niu);
11 Estudiant* consultaEstudiant(const string& niu);
12 bool afegeixAssignatura(const string& niu, const string& assignatura);
13 private:
14 string m_nom;
15 Estudiant* m_estudiants[MAX_ESTUDIANTS];
16 int m_nEstudiants;
17 };

Estudiant.h
1 #pragma once
2 #include <string>
3 using namespace std;
4
5 class Estudiant
6 {
7 public:
8 Estudiant(): m_NIU(""), m_nom(""), m_anyInici(0), m_anyFinal(0), m_notaExpedient
9 Estudiant(const string& niu, const string& nom, int anyInici) : m_NIU(niu), m_nom(n
10 m_anyFinal(0), m_notaExpedient(0), m_nAssignatures(0) {}
11 string getNiu() const { return m_NIU; }
12 string getNom() const { return m_nom; }
13 int getAnyInici() const { return m_anyInici; }
14 void setNiu(const string& niu) { m_NIU = niu; }
15 void setNom(const string& nom) { m_nom = nom; }
16 void setAnyInici(int any) { m_anyInici = any; }
17 void afegeixAssignatura(const string& assignatura) { m_assignatures[m_nAssignatures
18 int getNAssignatures() const { return m_nAssignatures; }
19 string getAssignatura(int posicio) const { return m_assignatures[posicio]; }
20 private:
21 string m_nom;
22 string m_NIU;
23 int m_anyInici;
24 int m_anyFinal;
25 float m_notaExpedient;
26 string m_assignatures[100];
27 int m_nAssignatures = 0;
28 };

VPL

https://caronte.uab.cat/mod/vpl/forms/submissionview.php?id=6760&userid=1512 3/4
6/6/2020 MP Curs 2018-19 Exercici 1 (Data lliurament: 30 abril a les 23:55) Mostra la tramesa

Heu iniciat sessió com a Jesús Navío Enríquez (Surt)

© Universitat Autònoma de Barcelona, 2018

Català (ca)
Català (ca)
English (en)
Español - Internacional (es)

https://caronte.uab.cat/mod/vpl/forms/submissionview.php?id=6760&userid=1512 4/4

You might also like