Está en la página 1de 7

PROGRAMACIÓN ORIENTADA A OBJETOS (CC201)

Ciclo 2023-01

HOJA DE EJERCICIOS

PROGRAMACIÓN ORIENTADA A OBJETOS

Ejercicio 1
Elaborar un programa en C++ en entorno consola que simule una calculadora.
 Deberá definir las funcionalidades para sumar, restar, multiplicar y dividir.
 Recuerde que una calculadora requiere dos números para realizar las operaciones.

En la solución considere un menú de opciones para cada funcionalidad

Ejercicio 2
Elaborar un programa en C++ en entorno consola que permita, mediante el uso de ASCII ART
el movimiento de UN ratón en pantalla. El movimiento debe ser libre por toda la ventana.

____()()
/ @@
`~~~~~\_;m__m._>o

Ejercicio 3
Luego de terminar el ejercicio anterior debe de cambiar el ASCII ART según la dirección
(izquierda o derecha) del ratón.

____()()
/ @@
`~~~~~\_;m__m._>o

( )( )____
@@ \
o<_.m__m;_/~~~~~`

Ejercicio 4
Elaborar un programa en C++ en entorno consola que permita, mediante el uso de ASCII ART
el movimiento de UNA abeja en pantalla. El movimiento debe ser libre por toda la ventana.

,-.
\ /
{|||)<
/ \
`-^
Ejercicio 5
Luego de terminar el ejercicio anterior debe de cambiar el ASCII ART según la dirección
(izquierda o derecha) de la abeja.

,-.
\ /
{|||)<
/ \
`-^

,-.
\ /
>(|||}
/ \
`-^

Ejercicio 6
Es sabido que el ratón reconoce el olor del queso a varios metros de distancia. Conocido esto
se le solicita a usted que realice una aplicación que permita:
- Tener un ratón moviéndose en pantalla que se mueva libremente por la ventana.
- Al presionar una tecla debe de aparecer un queso. El queso no tiene movimiento.
- El ratón, al notar la presencia del queso debe ir al lugar donde este se encuentre.

___ _____
/\ (_) \
/ \ ( _,
_) _\ _ \
/ (_)\_( )____\
\_ / _ _/
) /\/ (o ) (
\ \_) (o) /
\/_______ /

Ejercicio 7
Realizar una aplicación en C++ en entorno consola que permita mover, mediante el uso de las
teclas direccionales un avión en pantalla.
__|__
------oo(_)oo------

Ejercicio 8
A la aplicación anterior agregue, en la parte superior, una nube que se mueva de forma
horizontal

__ _
_( )_( )_
(_ _ _)
(_) (__)
VECTORES

Ejercicio 1
Realizar una aplicación en C++ que permita trabajar con una colección de números enteros.
Para este ejercicio deberá utilizar el tipo de dato VECTOR.
La aplicación deberá insertar, eliminar, buscar y ordenar los datos de la colección.
Ejercicio 2
Realizar una aplicación en C++ que permita trabajar con una colección de palabras (string).
Para este ejercicio deberá utilizar el tipo de dato VECTOR.
La aplicación deberá insertar, eliminar, buscar y ordenar los datos de la colección.

Ejercicio 3
Realice una aplicación en C++ que, haciendo uso de la P.O.O, permita mover varios caracteres
en pantalla. Los caracteres deben:

 Tener una ubicación X, Y


 Tener una velocidad aleatoria.
 Una representación dentro del código ASCII.
 Un color de representación.

Ejercicio 4
Cambie el ejercicio anterior para lograr lo siguiente:

 La representación del carácter solo debe ser con caracteres entre A y Z.


 Los caracteres deben de aparecer en pantalla de forma aleatoria y caer de la parte
superior hacia la inferior.
 La caída es a una velocidad variable.

Ejercicio 5
Realice una aplicación en C++ que permita mover varios ratones en pantalla. Vea el ejercicio
3 de la hoja de P.O.O
Ejercicio 6
Es conocido que los ratones temen a los gatos. Al ejercicio anterior debe de agregarle un gato.
El gato deberá comer a la mayor cantidad de ratones en el lapso de 1 minuto
/\_/\
( o.o )
> ^ <

Ejercicio 7
Tomando como base el ejercicio 8 de la hoja P.O.O debe de agregar a la nave la posibilidad
de lanzar balas cuando se presione la barra espaciadora. La bala puede ser representada por
el carácter “.”. Los movimientos de las balas son solo verticales.
DIAGRAMAS DE CLASE Y RELACIONES ENTRE CLASES

Por cada ejercicio deberá:


- Identificar las clases.
- Definir las relaciones que existe entre las clases.
- Definir la cardinalidad.

Ejercicio 1

Un turista que está fascinado con las Líneas de Nazca organiza un paseo con sus amigos y para
animarlos necesita desarrollar un programa en C++ que simule la elección de la nave en la que realizará
el vuelo sobre las líneas de Nazca.

Los aviones son los siguientes ASCII Art:

----------- ________|________
_\__(_)__/_ _|_____0_____|_ __|__
./ \. | | ________(*)________
o/ \o

__!__
_____(_)_____
.
__!__
! ! ! ._______|_______.
-----<*>-----
o O o \(*)/
o/ \o

____ _
| \ . /
--=O=-- .______(*)______. | __\_\_o____/_|
<[___\_\_-----<
|

El programa debe contemplar la herencia de clases y una clase que controle los aviones que serán
elegidos por el turista. Además, el programa debe simular el paseo sobre las líneas de nazca con la
nave elegida por el turista. Para ello puede utilizar un menú de opciones.

Ejercicio 2
Los ovnis pueden ser de 3 razas diferentes y cada raza tiene objetos voladores de diferente tipo.

ASCII Art
_.---._ .---. .
|
.' '. _/__~0_\_ .-"^"-.
_.-~===========~-._ (_________) /_....._\
.-"` `"-.
(_________________) ( ooo ooo ooo )
\_______/ '-.,_________,.-'
/ \
raza beta _/ \_
raza alfa `"` `"`
raza gamma
Se le solicita que elabore un programa en C++ utilizando POO que muestre en pantalla la aparición de
ovnis moviéndose en sentido vertical de arriba hacia abajo.
a. Al ejecutar el programa solo aparece el mensaje “comienza la invasion…!!!” al centro de la
pantalla.
b. Al presionar la tecla “A” debe aparecer una nave de la raza alfa en el extremo izquierdo superior.
c. Por cada dos naves alfa debe aparecer una nave beta al centro en la parte superior.
d. Por cada dos naves beta debe aparecer una nave gamma al extremo derecho superior.
e. Si en la pantalla se muestran 20 naves entonces debe aparecer el mensaje “Hemos sido
invadidos…” al centro de la pantalla.

Cada nave que aparece descendiendo en forma vertical y al llegar al límite inferior de la pantalla debe
desaparecer.

Ejercicio 3
Carrera de vehículos

Se tiene los siguientes vehículos:

Dynamic Leger Quatre


__ __
|_\_ .-'--`-._ ____|~\_
Lo_oJ '-O---O--' [4x4_|_|-]
(_) (_)

__ _.-.___\__
_| =\__ .-'--`-._ | _ _`-.
/o____o_\ '-O---O--' '-(_)----(_)--`

Se solicita simular una carrera de carros para lo cual deberá plantear un modelo de clases
haciendo uso relaciones de herencia.

 Compiten 3 vehículos.
 El programa debe seleccionar un vehículo de cada tipo para competir. Si desea puede
solicitar al usuario que elija el vehículo que participará en la carrera.
 Se sabe que cada tipo de vehículo tiene una velocidad aleatoria al momento de iniciar
la carrera.
 Gana el primero que cruce la meta.
 Puede haber varias carreras hasta que presione la tecla ESCAPE. En ese momento debe
presentar un ranking de vehículos.
Ejercicio 4
Una persona que desea cruzar una pista debe de mirar a ambos lados porque cualquier
medio de transporte puede pasar y arrollarla. Si se sabe que los medios de transporte
terrestre que encontramos comúnmente transitando por una avenida son el carro, la
bicicleta y el bus y éstos pueden transitar de derecha a izquierda o viceversa y a velocidad
variada, se le solicita que, haciendo uso de la técnica de la programación orientada a objetos,
usted elabore una aplicación que permita cruzar a una persona de un lado a otro en una
concurrida avenida.
Para realizar la aplicación deberá realizar lo siguiente:

- Diagrama de Clases

- Clase Carro
 Clase Carro, un carro es un medio de transporte que se desplaza a una velocidad
variabley si atropella a una persona le causa la muerte. Los carros, en la simulación
que haremos solo puede moverse de izquierda a derecha. En pantalla un carro se
puede representar de la siguiente manera.

- Clase Bus
 Clase Bus, un bus es un medio de transporte que se desplaza a una velocidad
variable mayor a la del carro y si atropella a una persona le causa la muerte. Los
buses, en la simulación que haremos solo puede moverse de derecha a izquierda.
En pantalla un bus se puede representar de la siguiente manera.

- Clase Bicicleta
 Clase Bicicleta, una bicicleta es un medio de transporte que se desplaza a una
velocidad constante y es más lento que el carro y el bus. Si la bicicleta atropella a
una persona no le causa la muerte. Las bicicletas, en la simulación que haremos
pueden moverse de derechaa izquierda o viceversa. En pantalla una bicicleta se
puede representar de la siguiente manera.
- Clase Persona
 Clase Persona, es aquel ser que desea cruzar la pista y se desplaza únicamente con
las teclas direccionales. Si colisiona con un medio de transporte que le causa la
muerte la simulación termina automáticamente. La persona será representada por
un cuadrado(ASCII 254 ■) verde.

- Clase Juego
 Clase Juego, esta clase tiene una colección de medios de transporte y a la persona
que desea cruzar la avenida. En su colección debe de tener al menos uno de los
medios de transporte arriba mencionados y que reflejen todos sus movimientos y
de esta forma podamos apreciar correctamente la simulación.
Ejercicio 5
Carrera de F1

Se le pide realizar una aplicación en C++ que permita realizar una competencia de autos tal
como se ven en la imagen anterior.
Sobre los autos
Un auto está conformado por 4 llantas y un chasis y todos son de un solo color.
Cada llanta tiene una ubicación X, Y en pantalla y adicionalmente se representa con el código
ASCII 219.
El chasis también tiene una ubicación en pantalla X, Y pero se representa con el código ASCII
220.
Tanto las llantas como el chasis forman un Carro y es el carro quien se mueve en dirección del
eje X de izquierda a derecha.
a) Implementación de la clase Llanta, según lo descrito anteriormente.
b) Implementación de la clase Chasis, según lo descrito anteriormente.
c) Implementación de la clase Carro. Esta clase debe tener una relación de composición con
las dos clases anteriores y desplazarse de izquierda a derecha.
d) Clase Competencia, contiene un arreglo dinámico de 3 carros y al presionar la tecla G los
autos empiezan a moverse. Gana el carro que llegue al otro extremo de la ventana.

También podría gustarte