Dev - C++ - En dónde quedaría la sumatoria? - POO

 
Vista:
sin imagen de perfil

En dónde quedaría la sumatoria? - POO

Publicado por Diego (3 intervenciones) el 07/11/2014 04:59:11
Saludos!

Mi duda es la siguiente, teniendo este código; necesito que la suma de las notas se guarde en una variable para posteriormente sacar el promedio. Quiero saber en dónde (Cuál sector del código expuesto) puedo agregar el código para guardar dicha sumatoria?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
 
class estudiante{
	private:
		string nombre;
		string asignatura;
		float notas;
		float promedio;
	public:
		estudiante(){
			nombre = new char[0]; nombre = "";
			asignatura = new char[0]; asignatura = "";
			notas = 0.0;
			promedio = 0.0;
		}
		void ponernombre(char*s){nombre = s;}
		void ponerasignatura(char*s){asignatura = s;}
		void ponernotas(float s){notas = s;}
		string obtenernombre(){return nombre;}
		string obtenerasignatura(){return asignatura;}
		float obtenernotas(){return notas;}
		float obtenerpromedio(){  //No estoy seguro de esta parte...
		int n;
		for (n=0; n<5; n++){
			if (n<5)
			promedio = n/3;}
		}
		void leerdatos();
		void visualizardatos();
		~estudiante(){cout << "Objeto destruido" << endl;}
};
void estudiante::leerdatos()
{
	char nombre[50], *s;
	long int n;
	cout << "\nIntroduzca nombre: ";
	cin.getline(nombre,49);
	s = new char(strlen(nombre)+1); //Memoria dinámica
	strcpy(s,nombre);
	ponernombre(s);
	cout << "\nIntroduzca asignatura: ";
	cin.getline(nombre,49);
	s = new char(strlen(nombre)+1); //Memoria dinámica
	strcpy(s,nombre);
	ponerasignatura(s);
	cout << "Intruduzca notas: ";
	cin >> n;
	for (n=0; n<3; n++)
	cin.getline(nombre,2); //Limpiar buffer de entrada
	ponernotas(n);
	cout << "\nEl promedio es: " << endl;
}
void estudiante::visualizardatos()
{
	cout << "\nNombre = " << obtenernombre() << endl;
	cout << "Asignatura = " << obtenerasignatura() << endl;
	cout << "notas = " << obtenernotas() << endl;
	cout << "Promedio = " << obtenerpromedio() << endl;
}
 
int main(){
	estudiante Estudiante[10];
	estudiante notas[3];
	int i;
	cout << "Digite los datos del estudiante" << endl;
	for (i=0; i<10; i++)
	Estudiante[i].leerdatos();
	cout << "\nLos datos del estudiante son: " << endl;
	for (i=0; i<10; i++)
	Estudiante[i].visualizardatos();
	system("pause");
	return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de vangodp
Val: 73
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

En dónde quedaría la sumatoria? - POO

Publicado por vangodp (287 intervenciones) el 07/11/2014 07:58:17
si la variable va relacionada con cada estudiante la deberias meter dentro de la clase. Y si lo que quieres es respetar la forma de programar en POO lo maximo, deberia estar dentro de private.
class estudiante{
private:
string nombre;
string asignatura;
float notas;
float promedio;
float sumaNotas; <-----Aqui puede ser


Luego tienes que hacer las funciones miembros que necesites geters/seters y otras.
Vas a necesitar una que se encargue de hacer la suma de las notas, otra para sacar el promedio. Y esas van en la parte publica de la clase.
Puedes que necesites mas funciones pero depende de que quieras hacer realmente. Solo has preguntado donde irian pues eso ya te lo he contestado.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar