Está en la página 1de 7

UNIVERSIDAD MILITAR NUEVA GRANADA

DEPARTAMENTO DE TECNOLOGÍAS DEL CONOCIMIENTO


PROGRAMACIÓN II
HERENCIA

Elaborar un programa en C++, que permita obtener la nota definitiva de un estudiante,


teniendo en cuenta lo siguiente:

1. Existen dos clases de estudiantes según la modalidad de su metodología: presencial y


virtual.

2. Los estudiantes de la modalidad presencial obtienen su nota definitiva así: promedio


de su nota del examen y los trabajos; los estudiantes de la modalidad virtual obtienen su
nota definitiva así: promedio de la nota tareas y proyecto.

3. Para la resolución del ejercicio aplicar el concepto de:


a. Creación de las clases con su librería propia.
b. Constructor vacío, con parámetros y destructores.
c. Instanciamiento.
d. Herencia

4. Al ejecutar el programa se debe solicitar a qué tipo de modalidad pertenece el


estudiante y mostrar la nota definitiva.

Programación II Herencia Página 1


Estudiante.h

#ifndef _ESTUDIANTE_H
#define _ESTUDIANTE_H

#include <iostream>
#include <string>

using namespace std;

class Estudiante
{
protected:
string nombre;
string codigo;
public:
Estudiante();
Estudiante(string pnombre, string pcodigo);
~Estudiante();
void setnombre(string pnombre);
void setcodigo(string pcodigo);
string getnombre();
string getcodigo();
};
#endif

-------------------------------------//---------------------------------------------
//----

Estudiante.cpp

#include "Estudiante.h"

Estudiante::Estudiante()
{
nombre = "";
codigo = "";
}
Estudiante::Estudiante(string pnombre, string pcodigo)
{
nombre = pnombre;
codigo = pcodigo;
}
Estudiante::~Estudiante()
{
}
void Estudiante::setnombre(string pnombre) {
nombre = pnombre;
}
void Estudiante::setcodigo(string pcodigo) {
codigo = pcodigo;
}
string Estudiante::getnombre() {
return nombre;

Programación II Herencia Página 2


}
string Estudiante::getcodigo() {
return codigo;}
-------------------------------------//---------------------------------------------
//----

Presencial.h

#ifndef _PRESENCIAL_H
#define _PRESENCIAL_H

#include "Estudiante.h"

class Presencial : public Estudiante


{
private:
double trabajos;
double examen;
public:
Presencial();
Presencial(string pnombre, string pcodigo, double ptrabajos, double pexamen);
~Presencial();
void settrabajos(double ptrabajos);
void setexamen(double pexamen);
double gettrabajos();
double getexamen();
};
#endif

-------------------------------------//---------------------------------------------
//----

Presencial.cpp
#include "Presencial.h"

Presencial::Presencial() :Estudiante()
{
trabajos = 0;
examen = 0;
}
Presencial::Presencial(string pnombre, string pcodigo, double ptrabajos, double
pexamen)
:Estudiante(pnombre, pcodigo)
{
trabajos = ptrabajos;
examen = pexamen;
}
Presencial::~Presencial()
{ }
void Presencial::settrabajos(double ptrabajos)
{
trabajos = ptrabajos;
}
void Presencial::setexamen(double pexamen)

Programación II Herencia Página 3


{
examen = pexamen;
}
double Presencial::gettrabajos()
{
return trabajos;
}
double Presencial::getexamen()
{
return examen;
}
-------------------------------------//---------------------------------------------
//----

Distancia.h

#ifndef _DISTANCIA_H
#define _DISTANCIA_H

#include "Estudiante.h"

class Distancia : public Estudiante


{
private:
double tareas;
double proyecto;
public:
Distancia();
Distancia(string pnombre, string pcodigo, double ptareas, double pproyecto);
~Distancia();
void settareas(double ptareas);
void setproyecto(double pproyecto);
double gettareas();
double getproyecto();
};
#endif
-------------------------------------//---------------------------------------------
//----

Distancia.cpp

#include "Distancia.h"

Distancia::Distancia() :Estudiante()
{
tareas = 0;
proyecto = 0;
}
Distancia::Distancia(string pnombre, string pcodigo, double ptareas, double pproyecto)
: Estudiante(pnombre, pcodigo)
{
tareas = ptareas;
proyecto = pproyecto;
}

Programación II Herencia Página 4


Distancia::~Distancia()
{
}
void Distancia::settareas(double ptareas)
{
tareas = ptareas;
}
void Distancia::setproyecto(double pproyecto) {
proyecto = pproyecto;
}
double Distancia::gettareas() {
return tareas;
}
double Distancia::getproyecto() {
return proyecto;
}
-------------------------------------//---------------------------------------------
//----

Registro.h

#ifndef _REGISTRO_H
#define _REGISTRO_H

#include "Estudiante.h"

class Registro
{
private:
string tipo;
public:
Registro();
Registro(string ptipo);
~Registro();
void settipo(string ptipo);
string gettipo();
void DefinitivaPresencial(double trabajos, double examen);
void DefinitivaDistancia(double tareas, double proyectos);
};
#endif
-------------------------------------//---------------------------------------------
//----

Registro.cpp

#include "Registro.h"

Registro::Registro()
{
tipo = "";
}
Registro::Registro(string ptipo)
{

Programación II Herencia Página 5


tipo = ptipo;
}
Registro::~Registro() {
}
void Registro::settipo(string ptipo)
{
tipo = ptipo;
}
string Registro::gettipo()
{
return tipo;
}
void Registro::DefinitivaPresencial(double trabajos, double examen)
{
float defin = 0;
if (gettipo() == "presencial")
{
defin = (trabajos + examen) / 2;
cout << "Definitiva: " << defin;
}

}
void Registro::DefinitivaDistancia(double tareas, double proyectos)
{
float defin = 0;
if (gettipo() == "distancia")
{
defin = (tareas + proyectos) / 2;
cout << "Definitiva: " << defin;
}
}
-------------------------------------//---------------------------------------------
//----

Main.cpp

#include "Estudiante.h"
#include "Presencial.h"
#include "Distancia.h"
#include "Registro.h"

int main()
{
string vnombre, vcodigo, vtipo;
double vtrabajos, vexamen, vtareas, vproyecto;
cout << "Ingrese Nombre del Estudiante: ";
cin >> vnombre;
cout << "Ingrese Codigo del Estudiante: ";
cin >> vcodigo;
cout << "Ingrese Modalidad de la Carrera(Presencial - Distancia): ";
cin >> vtipo;
Registro ObjReg(vtipo);
if (vtipo == "presencial" || vtipo == "Presencial")

Programación II Herencia Página 6


{
cout << "Ingrese Nota Trabajos: ";
cin >> vtrabajos;
cout << "Ingrese Nota Examen: ";
cin >> vexamen;
Presencial ObjPre(vnombre, vcodigo, vtrabajos, vexamen);
ObjReg.DefinitivaPresencial(vtrabajos, vexamen);
}
else
{
if (vtipo == "distancia" || vtipo == "Distancia")
{
cout << "Ingrese nota tareas: ";
cin >> vtareas;
cout << "Ingrese nota proyecto: ";
cin >> vproyecto;
Distancia ObjDis(vnombre, vcodigo, vtareas, vproyecto);
ObjReg.DefinitivaDistancia(vtareas, vproyecto);
}
}
cout << endl;
system("pause");
}

Programación II Herencia Página 7

También podría gustarte