Clase Estudiante

Ejercicio 1 Clases y Objetos de: Fabian Chollet C.I:31.864.832
 avatar
unknown
c_cpp
15 days ago
5.7 kB
8
Indexable
#include <iostream>
#include <iomanip>
#include <locale.h>
using namespace std;

class Estudiante {
	private:
		int estdID, numCalif;
		double promEstd, califArray[5];
	public:
		Estudiante(int = 0, int = 0, double = 0); //Todo debe iniciar en cero, luego en main() el usuario ingresa los datos
		void setID(int);
		void subirNota(double);
		void calcProm();
		void mostrarDatosEstd();
};
Estudiante::Estudiante(int ID, int nCalifc, double prom){
	estdID = ID;
	numCalif = nCalifc;
	promEstd = prom;
	for (int i = 0; i <= 4; i++){
		califArray[i] = 0;
	}
}
void Estudiante::setID(int id){
	estdID = id;
	cout<<endl<<"Ahora la ID de este estudiante es: "<<estdID<<endl<<endl;
	return;
}
void Estudiante::subirNota(double Nota){
	if (numCalif < 5){
		califArray[numCalif] = Nota;
		numCalif++;
		cout<<"La nota "<<Nota<<" se ha cargado correctamente."
			<<endl<<"Número total de notas cargadas: "<<numCalif<<endl<<endl;
	} else {
		cout<<"Todas las notas están cargadas."<<endl<<endl;
	}
	return;
}
void Estudiante::calcProm(){
	double sumCalif = 0;
	if (numCalif > 0){
		for (int i = 0; i <= numCalif; i++){
			sumCalif += califArray[i];
		}
		promEstd = sumCalif/numCalif;
		cout<<"El promedio de "<<numCalif<<" nota(s) es de: "<<setw(4)<<fixed<<setprecision(2)<<promEstd<<endl<<endl;
	} else {
		cout<<"Aún no se ha cargado alguna nota."<<endl<<endl;
	}
	return;
}
void Estudiante::mostrarDatosEstd(){
	cout<<endl<<"////////////////////////////////////////////////////////\n"
			  <<"/// Datos del estudiante "<<estdID<<".                  \n"
			  <<"///                                                     \n"
			  <<"/// Número de notas cargadas: "<<numCalif<<"            \n"
			  <<"/// Promedio de notas: "<<setw(4)<<fixed<<setprecision(2)<<promEstd<<"\n"
			  <<"/// Lista de notas:                                     \n";
	for (int i = 0; i<=4 ; i++){
		cout<<"/// Nota "<<i + 1<<": ["<<califArray[i]<<"]                 "<<endl;
	}
	cout<<"////////////////////////////////////////////////////////"<<endl<<endl;
}

void caso1(Estudiante&, Estudiante&);
void caso2(Estudiante&, Estudiante&);
void caso3(Estudiante&, Estudiante&);
void caso4(Estudiante&, Estudiante&);
int main(){
	setlocale(LC_CTYPE,"Spanish");
	Estudiante E1(0, 0, 0), E2(0, 0, 0);
	bool MenuUsuario = true;
	int opcionUsuario, opcionEstd, ID;
	cout<<"/////////////////////////////////////////////////////////\n"
		<<"/// Bienvenido usuario. Aquí podrá actualizar los     ///\n"
		<<"/// datos de dos estudiantes. A continuación,         ///\n"
		<<"/// su menú de usuario:                               ///\n"
		<<"/////////////////////////////////////////////////////////\n"<<endl;
	while (MenuUsuario){
		cout<<"////////////////////////////////////////////////////////\n"
			<<"/// Opciones:                                        ///\n"
			<<"/// [Ingrese un número dependiendo de su opción]     ///\n"
			<<"///                                                  ///\n"
			<<"/// Ingresar nueva ID de estudiante [1]              ///\n"
			<<"/// Subir una nota nueva [2]                         ///\n"
			<<"/// Calcular promedio de notas [3]                   ///\n"
			<<"/// Mostrar datos del estudiante [4]                 ///\n"
			<<"/// Cerrar menú [5]                                  ///\n"
			<<"////////////////////////////////////////////////////////\n\n"
			<<"[...] "; cin>>opcionUsuario;
		cout<<"["<<opcionUsuario<<"]"<<endl<<endl;
		
		switch(opcionUsuario){ //Opcion del menu
			case 1:
				caso1(E1, E2);
				break;
			case 2:
				caso2(E1, E2);
				break;
			case 3:
				caso3(E1, E2);
				break;
			case 4:
				caso4(E1, E2);
				break;
			case 5:
				cout<<"Cerrando menú. Gracias por usar este servicio."<<endl;
				MenuUsuario = false;
				break;
			default:
				cout<<"Debe escoger una de las opciones dadas en el menú."<<endl;
		}
	}
	return 0;
}
void caso1(Estudiante& e1, Estudiante& e2){
	int ID, opcionEstd;
	cout<<"Elija al estudiante (1 ó 2) para ingresar su nueva ID: "; cin>>opcionEstd;
	switch (opcionEstd){ //Opcion entre los dos estudiantes
		case 1:
			cout<<"Ingrese la ID del estudiante 1."<<endl; cin>>ID;
			e1.setID(ID);
			break;
		case 2:
			cout<<"Ingrese la ID del estudiante 2."<<endl; cin>>ID;
			e2.setID(ID);
			break;
		default:
			cout<<"Debe elejir uno de los dos estudiantes disponibles (1 ó 2)."<<endl;
	}
	return;
}
void caso2 (Estudiante& es1, Estudiante& es2){
	int opcE;
	double nota;
	cout<<"Elija al estudiante (1 ó 2) para cargar su nueva nota: "; cin>>opcE;
	switch (opcE){
		case 1:
			cout<<"Ingrese la nota del estudiante 1: "; cin>>nota;
			es1.subirNota(nota);
			break;
		case 2:
			cout<<"Ingrese la nota del estudiante 2: "; cin>>nota;
			es2.subirNota(nota);
			break;
		default:
			cout<<"Debe elejir uno de los dos estudiantes disponibles (1 ó 2)."<<endl;
	}
	return;
}
void caso3(Estudiante& est1, Estudiante& est2){
	int opcEs;
	cout<<"Elija al estudiante (1 ó 2) para calcular su promedio de notas: "; cin>> opcEs;
	switch (opcEs){
		case 1:
			est1.calcProm();
			break;
		case 2:
			est2.calcProm();
			break;
		default:
			cout<<"Debe elejir uno de los dos estudiantes disponibles (1 ó 2)."<<endl;
	}
	return;
}
void caso4(Estudiante& estu1, Estudiante& estu2){
	int opcEst;
	cout<<"Elija al estudiante (1 ó 2) para mostrar sus datos: "; cin>> opcEst;
	switch (opcEst){
		case 1:
			estu1.mostrarDatosEstd();
			break;
		case 2:
			estu2.mostrarDatosEstd();
			break;
		default:
			cout<<"Debe elejir uno de los dos estudiantes disponibles (1 ó 2)."<<endl;
	}
	return;
}
Leave a Comment