Tarea 2 - 01 Constructor

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN

Nombre del alumno: Alvarez Rios Daniela


Nombre del profesor: De Santillana Verdín Atalo
Grupo: 2AM6
Fecha de inicio: 05/Oct/2023
Fecha de entrega: 12/Oct/2023
Tarea 2_01 Constructor
DESARROLLO
En cada uno de los ejercicios comente las líneas de código (//) y adicione un método
portado que incluya sus datos, el diagrama UML y describa qué hace el programa

Realice los ejercicios 127, 128 y 129 de ATS

//ejercicio127
#include<iostream> //bibliotecas
#include<cstdlib>
using namespace std; //uso del namespace para no utitilizar el "std"

class Persona { //inicializacion de la clase class


private: //datos privados
int edad;
string nombre;
public: //datos publicos
Persona(int, string); //constructor
void programa(); //se establece el metodo
void accion(); //se establece el metodo
void portada(); //se establece un metodo para la portada
void diagramauml(); // se establece un metodo para el diagrama uml
void descripcion(); //se establece un metodo en el que se describira el programa
};
Persona::Persona(int _edad, string _nombre) { //se utiliza el constructor para poder inicializar los datos
edad = _edad;
nombre = _nombre;
}
void Persona::programa() {
cout << "Soy " << nombre << " y estoy haciendo un programa" << "con " << edad << " años" << endl;
}
void Persona::accion() {
cout << "Soy " << nombre << " y estoy gritando" << endl;
}
void Persona::portada() {
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl; // impresion secuencias de espape para
margen
cout << "INSTITUTO POLITECTIICO NACIONAL" << endl; //Impresion del instituto.
cout << "Escuela Superior de Ingeneria Mecanica y Electrica" << endl; //impresion de la escuela.
cout << "Ingeniria en Control y Automatizacion" << endl;//impresion del nombre de la carrera.
cout << "Nombre del alumno; \n Alvarez Rios Daniela" << endl; //impresion del nombre del alumno.
cout << "Nombre del profesor: \n De Santillana Verdin Atalo" << endl; //impresion del nombre del profesor.
cout << "Grupo: \n 2AM6" << endl; //impresion del grupo.
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape para
margen
}
void Persona::diagramauml() {
cout << "--------------------------------" << endl;
cout << "| Persona |" << endl;
cout << "--------------------------------" << endl;
cout << "| -edad: int |" << endl;
cout << "| -nombre : string |" << endl;
cout << "--------------------------------" << endl;
cout << "| +Persona(int, string) |" << endl;
cout << "| +programa() : void |" << endl;
cout << "| +accion() : void |" << endl;
cout << "| +portada() : void |" << endl;
cout << "| +diagramauml() : void |" << endl;
cout << "| +descripcion() : void |" << endl;
cout << "--------------------------------" << endl;
cout << "|" << endl;
cout << "|" << endl;
cout << "v" << endl;
cout << ".------." << endl;
cout << "| main |" << endl;
cout << "'------'" << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape para
margen

}
void Persona::descripcion() {
cout << "/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape para
margen
cout << "Este programa define una clase llamada Persona que representa a personas con edades y nombres." <<
endl;
cout << "La clase tiene métodos para imprimir mensajes relacionados con las acciones de estas personas, como
'haciendo un programa' o 'gritando.'"<< endl;
cout << "Además, incluye métodos para imprimir una portada, un diagrama UML básico y una descripción que,
en este caso, no tiene implementación." << endl;
}
int main() {
Persona p1(21, "Eban");
Persona p2(22, "Lee");
Persona p3(23, "Aritsa");
p1.descripcion();
p1.portada();
p1.diagramauml();
p1.programa();
p1.accion();
p2.accion();
p3.programa();
p3.accion();
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape para
margen
return 0;
}
//ejercicio128
#include<iostream> // Incluye la biblioteca para entrada y salida estándar.
#include<cstdlib> // Incluye la biblioteca para funciones generales del sistema.
using namespace std; // Utiliza el espacio de nombres estándar de C++.

class Rectangulo { // Declaración de la clase Rectangulo.


private:
float largo, ancho; // Declaración de atributos privados para largo y ancho del rectángulo.
public:
Rectangulo(float, float); // Declaración del constructor de la clase Rectangulo.
void perimetro(); // Declaración del método para calcular el perímetro del rectángulo.
void area(); // Declaración del método para calcular el área del rectángulo.
void diagramauml(); // Declaración del método para el diagrama UML (sin implementación).
void portada(); // Declaración del método para la portada del programa.
void descripcion(); // Declaración del método para la descripción del programa (sin implementación).
};

Rectangulo::Rectangulo(float _largo, float _ancho) { // Implementación del constructor.


largo = _largo; // Inicializa el atributo largo con el valor pasado como parámetro.
ancho = _ancho; // Inicializa el atributo ancho con el valor pasado como parámetro.
}

void Rectangulo::perimetro() { // Implementación del método para calcular el perímetro.


float _perimetro; // Declaración de una variable local para el perímetro.
_perimetro = (2 * largo) + (2 * ancho); // Cálculo del perímetro.
cout << "El Perimetro es: " << _perimetro << endl; // Imprime el resultado.
}

void Rectangulo::area() { // Implementación del método para calcular el área.


float _area; // Declaración de una variable local para el área.
_area = largo * ancho; // Cálculo del área.
cout << "El area es: " << _area << endl; // Imprime el resultado.
}

void Rectangulo::diagramauml() { // Implementación del método para el diagrama UML (sin contenido en este
programa).
cout << "-------------------------------------- -" << endl;
cout << "| Rectangulo |" << endl;
cout << "-------------------------------------- -" << endl;
cout << "| -largo: float |" << endl;
cout << "| -ancho : float |" << endl;
cout << "-------------------------------------- -" << endl;
cout << "| +Rectangulo(float, float) |" << endl;
cout << "| +perimetro() : void |" << endl;
cout << "| +area() : void |" << endl;
cout << "| +diagramauml() : void |" << endl;
cout << "| +portada() : void |" << endl;
cout << "| +descripcion() : void |" << endl;
cout << "-------------------------------------- -" << endl;
cout << " |" << endl;
cout << " |" << endl;
cout << " v" << endl;
cout << " .------." << endl;
cout << " | main |" << endl;
cout << " '------'" << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
}
void Rectangulo::portada() { // Implementación del método para la portada del programa.
cout << "INSTITUTO POLITECTIICO NACIONAL" << endl; // Imprime información de la institución.
cout << "Escuela Superior de Ingeneria Mecanica y Electrica" << endl; // Imprime información de la
escuela.
cout << "Ingeniria en Control y Automatizacion" << endl; // Imprime información de la carrera.
cout << "Nombre del alumno; \n Alvarez Rios Daniela" << endl; // Imprime información del alumno.
cout << "Nombre del profesor: \n De Santillana Verdin Atalo" << endl; // Imprime información del
profesor.
cout << "Grupo: \n 2AM6" << endl; // Imprime información del grupo.
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl; // Impresión de separadores.
}

void Rectangulo::descripcion() { // Implementación del método para la descripción del programa (sin contenido en
este programa).
cout << "/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
cout << "Este programa define una clase llamada Rectangulo que representa rectángulos con propiedades
de largo y ancho." << endl;
cout << "El programa permite calcular y mostrar el perímetro y el área de los rectángulos creados a partir
de instancias de la clase Rectangulo." << endl;
cout << "El programa también incluye una función de 'portada' que imprime información sobre la
institución educativa, el nombre del alumno y el nombre del profesor." << endl;
cout << "Sin embargo, los métodos diagramauml y descripcion no tienen una implementación concreta en
este programa." << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
}

int main() { // Función principal del programa.


system("color F0"); // Establece el color de fondo de la consola.
Rectangulo r1(11, 7); // Crea una instancia de la clase Rectangulo con largo 11 y ancho 7.
Rectangulo r2(78, 25); // Crea otra instancia de la clase Rectangulo con largo 78 y ancho 25.
r1.descripcion(); // Llama al método de descripción (sin contenido en este programa).
r1.portada(); // Llama al método de portada para imprimir información.
r1.diagramauml(); // Llama al método de diagrama UML (sin contenido en este programa).
r1.perimetro(); // Llama al método para calcular y mostrar el perímetro de r1.
r1.area(); // Llama al método para calcular y mostrar el área de r1.
r2.perimetro(); // Llama al método para calcular y mostrar el perímetro de r2.
r2.area(); // Llama al método para calcular y mostrar el área de r2.
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl; // Impresión de separadores.
return 0; // Retorna un valor 0 para indicar que el programa finalizó correctamente.
}
// ats 129 sobre carga de contructores
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
class Fecha {
private:
int dia, mes, año;
public:
Fecha(int, int, int);
Fecha(long);
void mostrarFecha();
void portada(); //se establece un metodo para la portada
void diagramauml(); // se establece un metodo para el diagrama uml
void descripcion();
};
Fecha::Fecha(int _dia, int _mes, int _año) {
año = _año;
mes = _mes;
dia = _dia;
}
void Fecha::portada() {
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl; // impresion secuencias de espape
para margen
cout << "INSTITUTO POLITECTIICO NACIONAL" << endl; //Impresion del instituto.
cout << "Escuela Superior de Ingeneria Mecanica y Electrica" << endl; //impresion de la escuela.
cout << "Ingeniria en Control y Automatizacion" << endl;//impresion del nombre de la carrera.
cout << "Nombre del alumno; \n Alvarez Rios Daniela" << endl; //impresion del nombre del alumno.
cout << "Nombre del profesor: \n De Santillana Verdin Atalo" << endl; //impresion del nombre del
profesor.
cout << "Grupo: \n 2AM6" << endl; //impresion del grupo.
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
}
void Fecha::diagramauml() {
cout << "/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
cout << "--------------------------------------- -" << endl;
cout << "| Fecha |" << endl;
cout << "---------------------------------------- -" << endl;
cout << "| -dia: int |" << endl;
cout << "| -mes : int |" << endl;
cout << "| -año : int |" << endl;
cout << "--------------------------------------- -" << endl;
cout << "| +Fecha(int, int, int) |" << endl;
cout << "| +Fecha(long) |" << endl;
cout << "| +mostrarFecha() : void |" << endl;
cout << "| +portada() : void |" << endl;
cout << "| +diagramauml() : void |" << endl;
cout << "| +descripcion() : void |" << endl;
cout << "--------------------------------------- -" << endl;
cout << "|" << endl;
cout << "|" << endl;
cout << "v" << endl;
cout << ".------." << endl;
cout << "| main |" << endl;
cout << "'------'" << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
}
void Fecha::descripcion() {
cout << "Este programa se centra en la sobrecarga de constructores y métodos en una clase llamada Fecha.
" << endl;
cout << "Además, incluye métodos para imprimir una portada, un diagrama UML básico y una
descripción que, en este caso, no tiene implementación." << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;// impresion secuencias de espape
para margen
}
Fecha::Fecha(long fecha) {
año = int(fecha / 10000);
mes = int((fecha - año * 10000) / 100);
dia = int(fecha - año * 10000 - mes * 100);
}
void Fecha::mostrarFecha() {
cout << "La fecha es:" << dia << "/" << mes << "/" << año << endl;
}
int main() {
Fecha hoy(7, 10, 2023);
Fecha ayer(20231006);
hoy.descripcion();
hoy.portada();
hoy.diagramauml();
hoy.mostrarFecha();
ayer.mostrarFecha();
return 0;
}
1.- EJERCICIO CONSTRUCTOR
Realice un programa con una clase class que calcule el volumen de una caja,
Considere:
Un constructor sin datos cuando se invoca, e inicializa con un valor con 1
Un constructor con un dato cuando se crea el objeto e inicialice con un valor con 2
Un constructor con 3 datos cuando se crea el objeto e inicialice con un valor con un valor
de 2
// Incluye la biblioteca para entrada/salida estándar
#include <iostream>
using namespace std;

// Definición de la clase Caja


class Caja {
private:
double longitud;
double ancho;
double altura;

public:
// Constructor sin datos (inicializa todo a 1)
Caja() : longitud(1.0), ancho(1.0), altura(1.0) {} // Constructor sin datos (inicializa todo a 1)

// Constructor con un dato (inicializa todos a ese dato)


Caja(double lado) : longitud(lado), ancho(lado), altura(lado) {} // Constructor con un dato (inicializa todos a ese
dato)

// Constructor con tres datos (inicializa cada dimensión por separado)


Caja(double _longitud, double _ancho, double _altura); // Constructor con tres datos (inicializa cada dimensión
por separado)

// Método para calcular el volumen de la caja


double calcularVolumen(); // Método para calcular el volumen de la caja

// Métodos para mostrar información decorativa


void portada();
void uml();
void descripcion();
};

// Implementación del constructor con tres datos


Caja::Caja(double _longitud, double _ancho, double _altura) {
longitud = _longitud;
ancho = _ancho;
altura = _altura;
}

// Método para calcular el volumen


double Caja::calcularVolumen() {
return longitud * ancho * altura;
}

// Método para mostrar la portada


void Caja::portada() {
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;
cout << "INSTITUTO POLITÉCNICO NACIONAL" << endl;
cout << "Escuela Superior de Ingeniería Mecánica y Eléctrica" << endl;
cout << "Ingeniería en Control y Automatización" << endl;
cout << "Nombre del alumno: Alvarez Rios Daniela" << endl;
cout << "Nombre del profesor: De Santillana Verdín Atalo" << endl;
cout << "Grupo: 2AM6" << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;
}

// Método para mostrar el diagrama UML


void Caja::uml() {
cout << "--------------------------------------" << endl;
cout << "| Caja |" << endl;
cout << "--------------------------------------" << endl;
cout << "| -longitud: double |" << endl;
cout << "| -ancho : double |" << endl;
cout << "| -altura : double |" << endl;
cout << "--------------------------------------" << endl;
cout << "| +Caja() |" << endl;
cout << "| +Caja(double) |" << endl;
cout << "| +Caja(double, double, double) |" << endl;
cout << "| +calcularVolumen() : double |" << endl;
cout << "| +portada() : void |" << endl;
cout << "| +uml() : void |" << endl;
cout << "| +descripcion() : void |" << endl;
cout << "--------------------------------------" << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;
}

// Método para mostrar una descripción


void Caja::descripcion() {
cout << "Este programa define una clase llamada Caja que se utiliza para calcular el volumen de una caja en
función de sus dimensiones: longitud, ancho y altura." << endl;
cout << "Además, incluye métodos para imprimir una portada, un diagrama UML básico y una descripción que,
en este caso, no tiene implementación." << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;
}

// Función principal
int main() {
// Crear objetos de la clase Caja usando diferentes constructores
Caja caja1; // Constructor sin datos
caja1.descripcion();
caja1.portada();
caja1.uml();

Caja caja2(2.0); // Constructor con un dato


Caja caja3(2.0, 3.0, 4.0); // Constructor con tres datos

// Calcular y mostrar el volumen de cada caja


cout << "Volumen de caja1: " << caja1.calcularVolumen() << endl;
cout << "Volumen de caja2: " << caja2.calcularVolumen() << endl;
cout << "Volumen de caja3: " << caja3.calcularVolumen() << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;

return 0;
}

También podría gustarte