I have to make some exceptions for possible errors, I would like if in the menu you type a letter you will see a writing error, and in the notes you will not type a note less than 0.0 and neither higher than 5.0. The exceptions must be in a daughter class.
I tried to do it but I really could not. I did it with header files.
#include<iostream>
#include "classpersona.h"
#include "estudiante.h"
#include "profesor.h"
#include "exception.h"
using namespace std;
void salir();
int opc;
int main(){
persona p(" "," ");
estudiante e(" "," "," ",0,0,0,0,0);
profesor pro(" "," "," "," "," ");
do{
system("cls");
cout<<"Bienvenido"<<endl;
cout<<"Digite una opcion"<<endl;
cout<<"1. Datos personales "<<endl;
cout<<"2.Datos del estudiante "<<endl;
cout<<"3.Datos del profesor "<<endl;
cout<<"4.mostrar "<<endl;
cout<<"5.salir"<<endl;
cin>>opc;
switch(opc){
case 1: p.ingresar();
break;
case 2: e.ingresar();
break;
case 3: pro.ingresar();
break;
case 4: e.mostrar(), p.mostrar(),pro.mostrar();
break;
case 5: salir();
break;
}
}while(opc!=5);
system("pause");
return(0);
}
void salir(){
cout<<"Buen dia"<<endl;
}
//1 archivo de cabecera.
#include<iostream>
using namespace std;
class persona{
public:
//atributos
string direccion;
string telefono;
//metodos
virtual void ingresar();
void mostrar();
//constructor
persona(string,string);
};
persona::persona(string _direccion, string _telefono){
direccion=_direccion;
telefono=_telefono;
};
void persona::ingresar(){
cout<<"Ingrese su direccion: "<<endl;
cin>>direccion;
cout<<"Ingrese su Telefono: "<<endl;
cin>>telefono;
system("pause");
}
void persona::mostrar(){
cout<<" "<<endl;
cout<<"La direccion del estudiante es: "<<direccion<<endl;
cout<<"El Telefono del estudiante es: "<<telefono<<endl;
}
//2 archivo de cabecera.
#include<iostream>
using namespace std;
class estudiante: public persona{
public:
//atributos
string materia;
float n1;
float n2;
float n3;
float n4;
float promedio;
//metodos
void ingresar();
void mostrar();
void promedio1();
//constructor
estudiante(string,string,string,float,float,float,float,float);
};
estudiante::estudiante(string _direccion, string _telefono,string _materia,float _n1,float _n2,float _n3,float _n4,float _promedio): persona(_direccion,_telefono){
materia=_materia;
n1=_n1;
n2=_n2;
n3=_n3;
n4=_n4;
promedio=_promedio;
};
void estudiante:: ingresar(){
cout<<"Ingrese la materia: "<<endl;
cin>>materia;
try{
cout<<"Ingrese la nota 1 "<<endl;
cin>>n1;
cout<<"Ingrese la nota 2 "<<endl;
cin>>n2;
cout<<"Ingrese la nota 3 "<<endl;
cin>>n3;
cout<<"Ingrese la nota 4 "<<endl;
cin>>n4;
if(n1||n2||n3||n4>5.0){
throw n1,n2,n3,n4;
;
}else{
}
catch(exception& e){}
}
}
void estudiante::promedio1(){
promedio=(n1+n2+n3+n4)/4;
}
void estudiante::mostrar(){
cout<<" "<<endl;
estudiante::promedio1();
cout<<"El promedio del estudiante es: "<<promedio<<endl;
cout<<"La materia que cursa es: "<<materia<<endl;
}
//3 archivo de cabecera.
#include<iostream>
using namespace std;
class profesor:public persona{
public:
//Atributos
string nombre;
string direccion1;
string telefono1;
//Metodos
void ingresar();
void mostrar();
//constructor
profesor(string,string,string,string,string);
};
profesor::profesor(string _direccion, string _telefono,string _nombre,string _direccion1,string _telefono1): persona(_direccion,_telefono){
nombre=_nombre;
direccion1=_direccion1;
telefono1=_telefono1;
};
void profesor::ingresar(){
cout<<"Ingrese el nombre del profesor"<<endl;
cin>>nombre;
cout<<"Ingrese la direccion del profesor: "<<endl;
cin>>direccion1;
cout<<"Ingrese el Telefono del profesor: "<<endl;
cin>>telefono1;
}
void profesor::mostrar(){
cout<<" "<<endl;
cout<<"El nombre del profesor es: "<<nombre<<endl;
cout<<"La direccion del profesor es: "<<direccion1<<endl;
cout<<"El Telefono del profesor es: "<<telefono1<<endl;
system("pause");
}
// archivo de cabecera de la exepcion
#include<iostream>
using namespace std;
class exception: public persona{
public:
catch(exception* e){
cout<<"Error"<<endl;
}
};