0% encontró este documento útil (0 votos)
3 vistas17 páginas

Exa2 Leo

El documento presenta cinco programas en C++ que implementan diferentes clases y funcionalidades. Incluyen el cálculo de factoriales, el procesamiento de calificaciones, la generación de números aleatorios, el cálculo de áreas de cilindros y la demostración de herencia y polimorfismo en clases de mamíferos. Cada programa incluye métodos para interactuar con el usuario y gestionar la creación y destrucción de objetos.

Cargado por

Angel Jiménez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas17 páginas

Exa2 Leo

El documento presenta cinco programas en C++ que implementan diferentes clases y funcionalidades. Incluyen el cálculo de factoriales, el procesamiento de calificaciones, la generación de números aleatorios, el cálculo de áreas de cilindros y la demostración de herencia y polimorfismo en clases de mamíferos. Cada programa incluye métodos para interactuar con el usuario y gestionar la creación y destrucción de objetos.

Cargado por

Angel Jiménez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

CODIGO 1

#include <iostream>

using namespace std;

class CFac {

private:

int num; // Número para el que se calcula el factorial (0 < num <= 33)

float fact; // Factorial calculado del número

public:

// Constructor por defecto

CFac() : num(0), fact(1) {

cout << "Objeto creado." << endl;

// Método para leer el número

void ent() {

do {

cout << "Ingrese un número entero (1 <= num <= 33): ";

cin >> num;

} while (num < 1 || num > 33);

// Método para calcular el factorial e imprimir valores intermedios

void proc() {

fact = 1;
cout << "Cálculo del factorial: " << endl;

for (int i = 1; i <= num; ++i) {

fact *= i;

cout << "Intermedio (" << i << "): " << fact << endl;

// Método para imprimir el resultado del factorial

void sal() const {

cout << "El factorial de " << num << " es: " << fact << endl;

// Destructor

~CFac() {

cout << "Objeto destruido. Liberando recursos." << endl;

};

int main() {

CFac obj; // Crear el objeto de la clase

obj.ent(); // Leer el número

obj.proc(); // Calcular el factorial

obj.sal(); // Imprimir el factorial

return 0;

}
Programa 2

#include <iostream>

using namespace std;

class CCalProm {

private:

float calificaciones[5]; // Arreglo para almacenar las calificaciones

float promedio; // Variable para almacenar el promedio

int aprobadas; // Número de calificaciones aprobadas

int reprobadas; // Número de calificaciones reprobadas

public:

// Constructor por defecto

CCalProm() : promedio(0), aprobadas(0), reprobadas(0) {

cout << "Objeto creado." << endl;

// Método para procesar las calificaciones

void proc() {

char continuar;

do {

aprobadas = 0;

reprobadas = 0;

promedio = 0;

cout << "\nIngrese 5 calificaciones (0 <= calificación <= 10):" << endl;
for (int i = 0; i < 5; ++i) {

do {

cout << "Calificación " << i + 1 << ": ";

cin >> calificaciones[i];

if (calificaciones[i] < 0 || calificaciones[i] > 10) {

cout << "Error: La calificación debe estar entre 0 y 10." << endl;

} while (calificaciones[i] < 0 || calificaciones[i] > 10);

// Contar aprobadas y reprobadas

if (calificaciones[i] >= 6) {

aprobadas++;

} else {

reprobadas++;

promedio += calificaciones[i]; // Sumar para calcular el promedio

promedio /= 5; // Calcular el promedio

// Mostrar resultados

cout << "\nResultados:" << endl;

cout << "Promedio de calificaciones: " << promedio << endl;

cout << "Cantidad de aprobadas: " << aprobadas << endl;

cout << "Cantidad de reprobadas: " << reprobadas << endl;


// Preguntar si desea repetir el programa

cout << "\n¿Desea repetir el programa? (s/n): ";

cin >> continuar;

} while (continuar == 's' || continuar == 'S');

// Destructor

~CCalProm() {

cout << "Objeto destruido. Liberando recursos." << endl;

};

int main() {

CCalProm obj; // Crear un objeto de la clase

obj.proc(); // Procesar calificaciones y manejar repetición

cout << "Fin del programa." << endl;

return 0;

}
Programa 3

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

class RandomGenerator {

private:

int n; // Cantidad de números aleatorios entre 100 y 500

int ArrAle[500]; // Arreglo para almacenar los números aleatorios entre 0 y 10

int Arr0_10[11]; // Contador de números entre 0 y 10

char opc; // Opción para repetir el proceso

public:

// Método para imprimir un encabezado

void let() {

cout << "\nESIME - IE-2EM9\n" << endl;

// Método para leer la cantidad de números

void ent() {

do {

cout << "Ingrese la cantidad de números aleatorios a generar (entre 100 y 500):
";

cin >> n;

if (n < 100 || n > 500) {


cout << "Error: La cantidad debe estar entre 100 y 500." << endl;

} while (n < 100 || n > 500);

// Método para generar y procesar números aleatorios

void proc() {

// Inicializar la semilla para números aleatorios

srand(static_cast<unsigned>(time(0)));

// Inicializar contadores

for (int i = 0; i <= 10; ++i) {

Arr0_10[i] = 0;

// Generar números aleatorios y procesar

cout << "\nGenerando " << n << " números aleatorios entre 0 y 10:" << endl;

for (int i = 0; i < n; ++i) {

ArrAle[i] = rand() % 11; // Número aleatorio entre 0 y 10

cout << ArrAle[i] << " ";

Arr0_10[ArrAle[i]]++; // Incrementar el contador correspondiente

cout << endl;

// Método para mostrar resultados


void sal() {

cout << "\nResultados:" << endl;

// Mostrar el conteo de números entre 0 y 10

int total0_10 = 0;

for (int i = 0; i <= 10; ++i) {

total0_10 += Arr0_10[i];

cout << "Números " << i << ": " << Arr0_10[i] << endl;

cout << "Total de números generados entre 0 y 10: " << total0_10 << endl;

};

int main() {

char continuar;

do {

RandomGenerator obj; // Crear un objeto de la clase

obj.let(); // Imprimir encabezado

obj.ent(); // Leer la cantidad de números

obj.proc(); // Generar y procesar números

obj.sal(); // Mostrar resultados

// Preguntar si desea repetir el programa

cout << "\n¿Desea repetir el programa? (s/n): ";

cin >> continuar;


} while (continuar == 's' || continuar == 'S');

cout << "Fin del programa." << endl;

return 0;

Programa 4

#include <iostream>

#include <cmath>

using namespace std;

class CCilindro {

private:

float r; // Radio del cilindro

float h; // Altura del cilindro

public:

// Constructor

CCilindro() : r(0), h(0) {

cout << "Cilindro creado." << endl;

// Método para leer los valores del radio y la altura

void Leer(float radio, float altura) {

r = radio;
h = altura;

// Método para calcular e imprimir el área de la base

void areaBase() {

float area_base = M_PI * r * r;

cout << "Área de la base: " << area_base << " unidades cuadradas" << endl;

// Método para calcular el área total

float areaTotal() {

float area_base = M_PI * r * r;

float area_lateral = 2 * M_PI * r * h;

return 2 * area_base + area_lateral; // Área total: 2*base + lateral

// Método para mostrar los resultados

void dsp() {

cout << "\nResultados del Cilindro:" << endl;

cout << "Radio: " << r << endl;

cout << "Altura: " << h << endl;

areaBase(); // Imprime el área de la base

cout << "Área total: " << areaTotal() << " unidades cuadradas" << endl;

// Destructor
~CCilindro() {

cout << "Cilindro destruido. Liberando recursos." << endl;

};

int main() {

char opc;

do {

float radio, altura;

// Crear una instancia del objeto CCilindro dentro del main

CCilindro obj;

// Leer los datos

cout << "Ingrese el radio del cilindro: ";

cin >> radio;

cout << "Ingrese la altura del cilindro: ";

cin >> altura;

// Asignar los valores al objeto y mostrar resultados

obj.Leer(radio, altura);

obj.dsp();

// Preguntar si desea repetir el programa

cout << "\n¿Desea calcular otro cilindro? (s/n): ";


cin >> opc;

} while (opc == 's' || opc == 'S');

cout << "Fin del programa." << endl;

return 0;

Programa 5

/* P27HrMam.cpp */

#include <conio.h>

#include <cstdlib>

#include <cstring>

#include <iostream>

using namespace std;

class Mamifero {

protected:

char dieta[30], lugNac[30], raza[30];

int anioNac;

public:

Mamifero(char[], char[], char[], int);

virtual void imprime();

~Mamifero() {

cout << "\nMamifero destruido";

}
};

Mamifero::Mamifero(char d[], char ln[], char r[], int anio) {

strcpy(dieta, d);

strcpy(lugNac, ln);

strcpy(raza, r);

anioNac = anio;

cout << "\nMamifero construido";

void Mamifero::imprime() {

cout << "\n\nDieta: " << dieta

<< "\nLugar de Nacimiento: " << lugNac

<< "\nRaza: " << raza

<< "\nAño de Nacimiento: " << anioNac;

class Felino : public Mamifero {

protected:

char nomCirco[20];

public:

Felino(char[], char[], char[], int, char[]);

void cambiaCirco(char[]);

void imprime();

~Felino() {
cout << "\nFelino destruido";

};

Felino::Felino(char d[], char ln[], char r[], int anio, char nc[])

: Mamifero(d, ln, r, anio) {

strcpy(nomCirco, nc);

cout << "\nFelino construido";

void Felino::cambiaCirco(char nuevoCirco[]) {

strcpy(nomCirco, nuevoCirco);

void Felino::imprime() {

Mamifero::imprime();

cout << "\nNombre del Circo: " << nomCirco;

class Gato : public Felino {

private:

char duenio[20];

public:

Gato(char[], char[], char[], int, char[], char[]);

void cambiaDuenio(char[]);
void imprime();

~Gato() {

cout << "\nGato destruido";

};

Gato::Gato(char d[], char ln[], char r[], int anio, char nc[], char du[])

: Felino(d, ln, r, anio, nc) {

strcpy(duenio, du);

cout << "\nGato construido";

void Gato::cambiaDuenio(char nuevoDuenio[]) {

strcpy(duenio, nuevoDuenio);

void Gato::imprime() {

Felino::imprime();

cout << "\nDueño: " << duenio;

void usaHerenciaPolimorfismo() {

Mamifero* obj1;

Mamifero* obj2;

Felino objFel("Carnivoro", "Africa", "León", 2015, "Circo Roma");


Gato objGat("Carnivoro", "Mexico", "Siames", 2020, "Circo Sol", "Carlos");

obj1 = &objFel;

obj2 = &objGat;

cout << "\n\n--- Felino ---";

obj1->imprime();

obj1->Mamifero::imprime();

cout << "\n\n--- Gato ---";

obj2->imprime();

obj2->Mamifero::imprime();

cout << "\n\n\nMostrando objetos directamente:";

cout << "\n\nFelino:";

objFel.imprime();

cout << "\n\nGato:";

objGat.imprime();

int main() {

system("cls");

usaHerenciaPolimorfismo();

getch();

return 0;
}

También podría gustarte