Aquí el código:
Código
#include <iostream> using namespace std; using namespace std; struct Fecha{ int dd,mm,aa; }; /* Estado civil: -1"soltero" 0 "casado" 1 "viudo" */ class Persona{ string nom_ape; int DNI, estado_civil; Fecha fecha_nacimiento; public: void Cargar_datos(string _nom, int _dni, int _civil, Fecha _d_nacimiento); int Edad(Fecha _actual){ //retorno la edad; int aux=_actual.aa-fecha_nacimiento.aa; return aux; } string Ver_nombre(){ return nom_ape; } }; void Persona:: Cargar_datos(string _nom, int _dni, int _civil, Fecha _d_nacimiento){ nom_ape=_nom; DNI=_dni; estado_civil=_civil; fecha_nacimiento=_d_nacimiento; } class Alumno: public Persona{ float promedio; int cantidad_aprovadas; public: void Agregar_prom(float _prom){ promedio=_prom; } void Materias_apro(int _apro){ cantidad_aprovadas=_apro; } float Ver_promedio(){ return promedio; } float Merito_academico(){ float aux=promedio*cantidad_aprovadas; return aux; } }; class Docente:public Persona{ Fecha ingreso; public: void Agregar_fecha_ingreso(Fecha _f){ ingreso=_f; } int Antiguedad(Fecha _actual){ int aux=ingreso.aa-_actual.aa; return aux; } }; class Curso{ string nombre_curso; Docente D; Alumno *A=nullptr; int size; public: Curso(int _i){ if(_i<=50){ size=_i; A=new Alumno [size]; }else{ cerr<<"Supero el limite maximo de alumnos (50)"<<endl; exit(1); } } void Agregar_docente(Docente _d){ D=_d; } void Agregar_alumno(Alumno _a, int _i){ A[_i]=_a; } void Nom_d_curso(string _nom){ nombre_curso=_nom; } Alumno Mejor_promedio(); }; Alumno Curso::Mejor_promedio(){ Alumno aux=A[0]; for(int i=1;i<size;i++) { if(aux.Ver_promedio()<A[i].Ver_promedio()){ aux=A[i]; } } return aux; } int main(int argc, char *argv[]) { int size; Alumno A; Docente D; cout<<"Ingrese la cantidad de alumnos en el curso: "; cin>>size; Curso C(size); cout<<"Seleccione la opcion para proceder :"; cout<<"1 -> Agregar alumnos"<<endl; cout<<"2 -> Agregar Docente a cargo"<<endl; cout<<"Presione cualquier numero para salir del programa"<<endl; int caso; cin>>caso; switch(caso){ case 1: cout<<"Ahora ingrese los datos de los alumnos:"<<endl; for(int i=0;i<size;i++) { string nom_ape; int dni,estado_civil,materias_apro; Fecha d_nacimiento; float promedio; cout<<"Ingrese el nombre y apellido: "; cin>>nom_ape; cout<<"Ingrese el DNI: "; cin>>dni; cout<<"Ingrese el estado civil: "; cin>>estado_civil; cout<<"Ingrese la fecha de nacimiento :"; cin>>d_nacimiento.dd; cin>>d_nacimiento.mm; cin>>d_nacimiento.aa; cout<<"Ingrese el promedio del alumno :"; cin>>promedio; cout<<"Ingrese la cantidad de materias aprovadas: "; cin>>materias_apro; cout<<"-----------------------------"<<endl; A.Cargar_datos(nom_ape,dni,estado_civil,d_nacimiento); A.Materias_apro(materias_apro); A.Agregar_prom(promedio); C.Agregar_alumno(A,i); } break; case 2: cout<<"Ingrese los datos del Docente"<<endl; string nom_ape; int dni,estado_civil; Fecha d_nacimiento, ingreso_laboral; cout<<"Ingrese el nombre y apellido: "; cin>>nom_ape; cout<<"Ingrese el DNI: "; cin>>dni; cout<<"Ingrese el estado civil: "; cin>>estado_civil; cout<<"Ingrese la fecha de nacimiento :"; cin>>d_nacimiento.dd; cin>>d_nacimiento.mm; cin>>d_nacimiento.aa; cout<<"Ingrese la fecha de ingreso laboral :"; cin>>ingreso_laboral.dd; cin>>ingreso_laboral.mm; cin>>ingreso_laboral.aa; cout<<"-------------------------------"<<endl; D.Cargar_datos(nom_ape,dni,estado_civil,d_nacimiento); D.Agregar_fecha_ingreso(ingreso_laboral); break; default: //Me da error... cout<<"Salio del programa"<<endl; break; } cout<<"El alumno con mejor promedio es: "; Alumno aux=C.Mejor_promedio(); cout<<aux.Ver_nombre(); return 0; }
al compilar me da este error:
Código
error: jump to case label [-fpermissive]