Título: Acceder a miembros de objetos
Publicado por: acega en 9 Octubre 2013, 17:44 pm
Hola pues resulta que estoy varado con este programa, el cual al ingresarle calificaciones de 2 materias para n alumnos debe arrojar el promedio grupal mi pregunta es como puedo acceder al promedio parcial que esta encapsulado en el objeto?? o hay otra forma de poder sacar el promedio general para los n alumnos?? #include <iostream.h> #include <conio.h> #include <stdio.h> #include <iomanip.h>
class Calificaciones {
public:
Calificaciones();
void acceder(); void ingresar(); void ingresar2(); void calcular(); void calcular2(); void mostrar(); //void mostrarDatos(); void validar();
private:
float c1; float c2; float c3; float c4; float c5; float c6; int nc; float prom; float prom2; float promParcial;
};
Calificaciones::Calificaciones() {
c1=c2=c3=c4=c5=c6=prom=prom2=promParcial=0.0; nc=0;
}
void Calificaciones::acceder() { cout<<"\n\n\tIngrese numero de cuenta: "; cin>>nc;
while( nc>999999 || nc<99999 ) { cout<<"\n\t\aNumero de cuenta incorrecto, verifiquelo e ingrese de nuevo: "; cin>>nc; }
} void Calificaciones::ingresar() { cout<<"\nMATERIA 1:"<<endl; cout<<"\n\tIngrese calificacion de primer parcial: "; cin>>c1; cout<<"\n\tIngrese calificacion de segundo parcial: "; cin>>c2; cout<<"\n\tIngrese calificacion de tercer parcial: "; cin>>c3;
} void Calificaciones::ingresar2() { cout<<"\nMATERIA 2:"<<endl; cout<<"\n\tIngrese calificacion de primer parcial: "; cin>>c4; cout<<"\n\tIngrese calificacion de segundo parcial: "; cin>>c5; cout<<"\n\tIngrese calificacion de tercer parcial: "; cin>>c6; clrscr();
}
void Calificaciones::validar() { c1 = (c1>=0&&c1<=10) ? c1 : 0; c2 = (c2>=0&&c2<=10) ? c2 : 0; c3 = (c3>=0&&c3<=10) ? c3 : 0; c4 = (c4>=0&&c4<=10) ? c4 : 0; c5 = (c5>=0&&c5<=10) ? c5 : 0; c6 = (c6>=0&&c6<=10) ? c6 : 0; }
void Calificaciones::calcular() {
cout<<"\n\n\n\n\n\n\n\n\n\n\tEl promedio del alumno: "<<nc<<" se esta calculando..."; validar(); prom=(c1+c2+c3)/3;
} void Calificaciones::calcular2() {
//cout<<"\n\n\n\n\n\n\n\n\n\n\tEl promedio del alumno: "<<nc<<" se esta calculando..."; //validar(); prom2=(c4+c5+c6)/3; promParcial=(prom+prom2)/2; //return promParcial;
}
void Calificaciones::mostrar() { //cout<<nc//cuenta que no se repita?? cout<<endl<<" "<<nc<<" "; cout<<setprecision(2) <<setiosflags( ios::fixed || ios::showpoint ) <<" "<<c1 <<" "<<c2 <<" "<<c3
<<" "<<prom <<( prom < 7 ? " NA" : " A") <<" "<<c4 <<" "<<c5 <<" "<<c6 <<" "<<prom2 <<( prom2 < 7 ? " NA" : " A") <<" "<<promParcial;
}
main () {
Calificaciones c[' '];
int ans,n,i,j,k; //porque no reconoce i,j,k?? char regreso='M'; char ciclo='s';
cout<<"\n\n\n\t\t\tCuantos alumnos va a ingresar?\t "; cin>>n;
while (ciclo=='s') {
cout<<"\n\n\n\t\t\tQue desea hacer?\n" <<"\n\t\t1.-Ingresar\n" <<"\n\t\t2.-Calcular\n" <<"\n\t\t3.-Mostrar\n" <<"\n\t\t4.-Salir\t\t"; cin>>ans; clrscr();
switch (ans) {
case 1:
for ( i=1; i<=n; i++) { regreso='J'; cout<<"\n\t\tInstrucciones: Ingrese valores enteros o decimales\n " <<" \t\t\t\tcon el rango del 0 al 10\n" <<"\t\tPara el numero de cuenta deberan ser de 6 digitos...\0";
c[i].acceder(); c[i].ingresar();
c[i].ingresar2(); }
break;
case 2:
clrscr(); for ( j=1; j<=n; j++) {
if(regreso=='M') { cout<<"\n\aPrimero ingrese calificaciones para despues calcular!"; } else { clrscr(); cout<<endl; c[j].calcular(); //clrscr(); c[j].calcular2(); //promGral[j]=?????
}
getchar();
} clrscr();
break;
case 3:
clrscr(); cout<<endl<<"ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛMATERIA1ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ" <<"MATERIA2ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"<<endl<<endl; //cout<<"\t\tMATERIA1\t\t\t\tMATERIA2 "<<endl; cout<<"ÛNo_CtaÛ" <<" ÛC1Û" <<" ÛC2Û" <<" ÛC3Û" <<" ÛPromÛ" <<" ÛC1Û" <<" ÛC2Û" <<" ÛC3Û" <<" ÛPromÛ" <<" ÛPGralÛ";
for ( k=1; k<=n; k++) {
if(regreso=='M') { cout<<"\n\a\nNO hay datos para mostrar!!!"; } else { //mat1[k].mostrarDatos(); //cout<<" "; c[k].mostrar(); /*cout<<" "; mat2[k].mostrar();*/ }
getchar();
} clrscr();
break;
case 4:
clrscr(); cout<<"\n\n\t\tSaliendo...\a\a\a"; ciclo='a';
break;
default:
cout<<"\n\n\n\n\t\t\aOpcion invalida vuelva a intentarlo...";
break;
}
}
getchar();
Título: Re: Acceder a miembros de objetos
Publicado por: vangodp en 9 Octubre 2013, 18:34 pm
pues si lo que quieres es acceder a la variable miembro de la clase float promParcial;
en public pones esta funcion: float getProm() const{ return promParcial; }
y llamala desde donde quiera :huh:
o sino se mas especifico XD
|