Asignación 4

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Universidad de Oriente

Núcleo Monagas
Departamento de Ingeniería de Sistema
Programación orientada a objetos (072-2103)

Asignación 4: Clases y Objetos.

Instructor:
Ing. Octavio Alfonzo

Maturín, marzo 2024.


INSTRUCCIONES
Del siguiente archivo, realizaran en el editor de código de su preferencia, el ejercicio A (si las
cedulas terminan en Par-Par o Impar-Impar) o B (si las cedulas terminan en Par-Impar o Impar-
Par) y 2 ejercicios del apartado Clases y Objetos, correspondiente a el último número de cedula
de cada participante. (en caso de repetirse el mismo número buscaran el siguiente número
diferente a la izquierda de cualquiera de los dos participantes: 22.222.444) de la siguiente manera:
 Cedula 1 y 2: Ejercicio 1
 Cedula 3 y 4: Ejercicio 2
 Cedula 5 y 6: Ejercicio 3
 Cedula 7 y 8: Ejercicio 4
 Cedula 9 y 0: Ejercicio 5
Deben indicar los números de cedula y los ejercicios que les tocaron. Se restarán (-2) Puntos si se
entrega el documento sin portada o desordenado y (-3) Puntos por entrega tardía. Adjuntaran a la
tarea del CLASSROOM un documento PDF con la documentación correspondiente: Enunciado del
ejercicio, Captura de pantalla del código en su IDE de preferencia, captura de pruebas en la
terminal y cualquier comentario sobre su toma de decisiones o instrucciones utilizadas.
PARTE 1 TEORIA (2Pts cada tema con su ejercicio)
1. HERENCIA DE CLASE: Definición, especificaciones de acceso y un ejemplo funcional.
2. POLIMORFISMO: Definición y un ejemplo funcional.
PARTE 2 EJERCICIOS (2Pts Cada ejercicio)
Clases y Objetos:

En todos los programas son libres de adornar el programa para darle formalidad y vida, son
libres de armar los procesos en la función principal para darle dinamismo, vida y validación
como deseen (siempre que no rompa alguna regla descrita en los enunciados).

1. Construya una clase llamada Estudiante consistente de un número entero de


identificación del estudiante, un arreglo de cinco calificaciones en número de precisión
doble y un número entero que represente el número total de calificaciones introducidas.
El constructor para esta clase deberá inicializar todos los miembros de datos de Estudiante
en cero. Su programa deberá declarar dos objetos del tipo Estudiante y aceptar y
desplegar datos para los dos objetos para verificar la operación de las funciones miembro.
Deberán incluirse en la clase funciones miembro para:
a. Introducir un número de identificación del estudiante.
b. Introducir una sola calificación de prueba y actualizar el número total de
calificaciones introducidas (sin pasar de 5)
c. Calcular una calificación promedio y desplegar la identificación de la estudiante
seguida por la calificación promedio.

2. Un programa en C++ funcional que le pida al usuario que introduzca datos para tres
empleados y despliegue los datos introducidos. Incluir un menú que ofrezca al usuario las
siguientes opciones:
a. 1. Agregar un empleado
b. 2. Modificar los datos del empleado
c. 3. Eliminar a un empleado
d. 4. Salir de este menú
En respuesta a una opción el programa deberá iniciar la acción apropiada para
implementar la opción. Construya una definición de clase que pueda usarse para
representar a un empleado de una compañía. Cada empleado es definido por un número
entero de identificación, una tasa salarial en punto flotante y el número máximo de horas
que el empleado debería trabajar cada semana. Los servicios de la clase deberán
proporcionar la capacidad para introducir datos, cambiar datos y desplegar los datos
existentes para un empleado nuevo.

3. Un programa en C++ funcional que pida al usuario que introduzca datos para cuatro
opciones (objetos) de alimentos y despliegue los datos introducidos. Incluir un menú que
ofrezca al usuario las siguientes opciones:
a. 1. Agregar una opción de alimento
b. 2. Modificar una opción de alimento
c. 3. Eliminar una opción de alimento
d. 4. Salir de este menú
En respuesta a una opción el programa deberá iniciar la acción apropiada para
implementar la opción. Construya una definición de clase que pueda usarse para
representar tipos de alimentos. Un tipo de alimento se clasifica como básico o preparado.
Los alimentos básicos se clasifican además como Lacteos, Carnes, Frutas, Vegetales o
Cereales. Los servicios proporcionados por la clase deberán ser la capacidad para
introducir datos para un alimento nuevo, la capacidad para cambiar datos para un
alimento nuevo y la capacidad para desplegar los datos existentes para un alimento.

4. Construya una definición de clase de un tipo de objeto Persona. La clase no tendrá


atributos, una sola función constructora y dos funciones miembro adicionales llamadas
llegada() y galones(). La función constructora deberá llamar tan sólo a srand() con el
argumento tiempo(NULL) para inicializar la función rand(). La función llegada() deberá
proporcionar un número aleatorio entre 0 y 15 como valor a devolver, mientras la función
galones() deberá proporcionar un número aleatorio entre 3 y 20. (Pruebe las funciones de
la clase Persona para asegurar su funcionamiento antes de seguir). Use la función de la
clase Persona para simular una llegada aleatoria de una Persona y una solicitud aleatoria
de galones de gasolina dentro del siguiente código: Modifique la función main() en el
programa expuesto en clase del caso practico “Bomba de gasolina” para usar un ciclo
while que llame a la función de solicitud de Bomba con los valores de la función galones()
de una persona. El ciclo while deberá terminar después que se hayan hecho cinco
solicitudes. También se debe proporcionar una simulación de 30 minutos de la operación
de la bomba de gasolina. Para hacer esto tendrá que modificar el ciclo while para
seleccionar con los valores de la función llegada() de una persona que represente el
tiempo de inactividad entre solicitudes de clientes. Haga que la simulación se detenga una
vez que el tiempo de inactividad exceda los 30 minutos, asuma que cada servicio de
gasolina dura 2 min.

5. Una clase llamada Tiempo que tenga miembros de datos en número entero llamados
segundos, minutos y horas. Haga que la clase contenga dos constructores: el primero
deberá ser un constructor por omisión que tenga el prototipo tiempo(int, int, int), el cual
usa valores por omisión de 0 para cada miembro de datos. El segundo constructor deberá
aceptar un número entero largo que represente un número total de segundos y
desensamble el número entero largo en horas, minutos y segundos. incluya una función
tic() que incremente el tiempo por valor de segundos. Pruebe su función con un objeto
para asegurar que se incrementa en forma correcta en un nuevo minuto y una nueva hora.
incluir una función destic() que disminuya el tiempo por un segundo. Pruebe su función
para asegurar que se disminuye en forma correcta el tiempo a una hora anterior y a un
minuto anterior.

A. Deben profundizar un poco mas en el uso de clases para hacer el siguiente programa.
Desarrolle un programa Agenda de Citas y Compromisos que tiene las siguientes clases y
funcionalidades: Una clase "Cita" que tiene los siguientes miembros de clase: Miembros
para almacenar de manera individual los nombres de las dos personas que van a reunirse
o citarse. Un miembro de clase para almacenar el nombre del lugar donde van a reunirse.
Un miembro que es un objeto de una clase llamada "Fecha". Dicha clase "Fecha" cuenta
con miembros privados para el almacenamiento del año, el mes, el día y la hora, y también
un método para verificar que la fecha sea correcta, es decir, que no hayan más de 12
meses, que la hora no sea superior a 24 horas ni inferior a 0 horas, que el día no sea cero o
menor a cero y que respete el máximo de días de acuerdo con el mes, y que verifique si el
año es bisiesto para el caso del mes de febrero. Esta clase tiene una sobrecarga adicional
para ese método ya que se debe permitir ingresar el mes en letras o en números. Una
clase externa "ClaseExterna" que permite crear objetos de la clase "Cita" que tiene un
método que permite crear una cita, este método recibe como parámetros de entrada
todos los datos para almacenar en los miembros del objeto cita. Además, este método
debe ir agregando las citas que se van creando en una lista de citas (la lista puede guardar
máximo 10 citas). Dicha lista debe poder ser consultada a través de una función externa
llamada "consultarCitas".

B. Deben profundizar un poco mas en el uso de clases para hacer el siguiente programa.
Cree un en programa en C++ que realice operaciones aritméticas básicas, haciendo uso de
clases. Definir una clase base llamada "Operacion" con algunos atributos y métodos
comunes para todas las operaciones.
 Atributos de la clase "Operacion": valor1: un entero que representa el primer
valor de la operación. valor2: un entero que representa el segundo valor de la
operación. resultado: un entero que almacenará el resultado de la operación.
 Métodos de la clase "Operacion": cargar1: un método que solicitará al usuario que
ingrese el valor del atributo "valor1". cargar2: un método que solicitará al usuario
que ingrese el valor del atributo "valor2". mostrarResultado: un método que
mostrará en pantalla el valor del atributo "resultado".
Luego, deberás crear dos clases derivadas de la clase "Operacion":
 La primera clase derivada se llamará "Suma". Esta clase deberá implementar el
método "operar()", que calculará la suma de los atributos "valor1" y "valor2" y
almacenará el resultado en el atributo "resultado".
 La segunda clase derivada se llamará "Resta". Esta clase deberá implementar el
método "operar()", que calculará la resta de los atributos "valor1" y "valor2" y
almacenará el resultado en el atributo "resultado".
El método operar(): un método que será implementado en las clases derivadas para
realizar la operación específica.
El método mostrarResultado, en las clases derivadas, debe ser modificado para que
indique el nombre de la operación mas el valor de la variable resultado, es decir, en Suma,
debería mostrar “La sumatoria de los valores es:” ValorDeLaVariableResultado.
En el main debe crear un objeto de cada clase derivada, y realizar las operaciones de cada
uno para así mostrar el resultado de las mismas.

También podría gustarte