Salve a tutti, avevo intenzione di realizzare un programma in C++ utilizzando una classe.
È la prima volta che ne utilizzo una ed infatti ho riscontrato alcuni problemi che spero voi riusciate a risolvermi, aiutandomi ad imparare
Questa è la codifica:
codice:
#include <iostream.h>
using namespace std;
class alunno {
public:
int materie,materia;
float matrice[materie][3];
float GetMedia() {
for(int i=0;i<3;i++)
float media[materia]+=matrice[materia][i];
return media[materia];
}
float TotalMedia() {
for(int i=0;i<3;i++)
{
for(int k=0;k<materie;k++)
float mediaTot+=matrice[materia][i];
}
return mediaTot;
}
};
int main() {
alunno pallino;
cout << "Quante materie sono?" << endl;
cin >> pallino.materie;
cout << "Tra " << pallino.materie << "materie, con quale iniziamo? (indicare con 1 per la prima, 2 per la seconda e così via)" << endl;
cin >> pallino.materia;
for (int i=0;i<pallino.materie;i++)
{
switch(i)
{
case 0: cout << "Inserisci voto orale" << endl;break;
case 1: cout << "Inserisci voto scritto" << endl;break;
case 2: cout << "Inserisci voto pratico" << endl;break;
default: continue;
}
cin >> pallino.matrice[pallino.materia][i];
}
cout << "La media è " << GetMedia() << endl;
return 0;
}
I problemi in compilazione sono questi:
codice:
classe.cpp:6: error: invalid use of non-static data member ‘alunno::materie’
classe.cpp:7: error: from this location
classe.cpp:7: error: array bound is not an integer constant
classe.cpp: In member function ‘float alunno::GetMedia()’:
classe.cpp:10: error: expected initializer before ‘+=’ token
classe.cpp:11: error: ‘media’ was not declared in this scope
classe.cpp: In member function ‘float alunno::TotalMedia()’:
classe.cpp:17: error: expected initializer before ‘+=’ token
classe.cpp:19: error: ‘mediaTot’ was not declared in this scope
classe.cpp: In function ‘int main()’:
classe.cpp:38: error: ‘class alunno’ has no member named ‘matrice’
classe.cpp:40: error: ‘GetMedia’ was not declared in this scope
Come potrei risolvere?
Grazie a tutti per eventuali risposte!