Sie sind auf Seite 1von 5

Programación Orientada a Objetos

Definición de Clases.

1. Cree una clase llamada Cuenta que podría ser utilizada por un banco
para representar las cuentas bancarias de sus clientes. Incluya un
miembro de datos de tipo int para representar el saldo de la cuenta.

a. Proporcione un constructor que reciba un saldo inicial y lo utilice


para inicializar el miembro de dato. El constructor debe validar el
saldo inicial para asegurar que sea mayor o igual que 0.De no ser
así, establezca el saldo en 0 y muestre un mensaje de error,
indicando que el saldo inicial era inválido.

b. Proporcione tres funciones miembro.

i. La función miembro credit debe agregar un monto al saldo


actual.

ii. La función miembro cargar deberá retirar dinero el objeto


Cuenta y asegurarse que el monto a cargar no exceda el
saldo de Cuenta. Si lo hace, el saldo deberá permanecer sin
cambio y la función deberá imprimir un mensaje que
indique “El monto a cargar excede el saldo de la cuenta”.

iii. La función miembro obtenerSaldo debe devolver el saldo


actual.

c. Cree un programa que cree dos objetos Cuenta y evalué las


funciones miembro de la clase Cuenta.

2. Cree una clase llamada Factura, que una ferretería podría utilizar para
representar una factura por un artículo vendido en la tienda. Una factura
debe incluir cuatro piezas de información como miembros de datos: un
número de pieza (string) la descripción de la pieza (string), la cantidad
de artículos de ese tipo que se van a comprar (int) y el precio por
artículo (int).

a. Su clase debe tener un método constructor que inicialice a los


cuatro miembros de datos.

b. Proporcione una función establecer y una función obtener para


cada miembro de datos.

c. Proporcione una función miembro llamada obtenerMontoFactura


que calcule el monto de la factura (es decir, que multiplique la
cantidad por el precio del articulo) y después devuelva ese monto
como un valor int.
d. Si la cantidad no es positiva, debe establecerse en 0. Si el precio
por artículo no es positivo, debe establecerse en 0.

e. Escriba un programa de prueba que demuestra las capacidades


de la clase Factura.

3. Cree una clase llamado Empleado, que incluya tres piezas de


información como miembros da datos un primer nombre (tipo string), un
apellido paterno (tipo string), y un salario mensual (tipo int).

a. Proporcione una función establecer y una función obtener para


cada miembro de datos. Si el salario mensual no es positivo,
establézcalo en 0. Escriba un programa de prueba que demuestre
las capacidades de la clase Empleado. Cree dos objetos Empleado
y muestre el salario anual de cada objeto. Después proporcione a
cada Empleado un aumento del 10% y muestre el salario anual de
cada empleado otra vez.

4. Cree una clase llamada Fecha, que incluya tres piezas de información
como miembros de datos: un mes (tipo int), un día (tipo int) y un año
(tipo int).

a. Su clase debe tener un constructor con tres parámetros, los


cuales debe utilizar para inicializar los tres miembros de datos.
Para los fines de este ejercicio, suponga que los valores que se
proporcionan para el año y el día son correctos pero asegúrese
que el valor del mes se encuentre en el rango de 1 a 12; de no ser
así, establezca el mes en 1.

b. Proporcione una función establecer y una función obtener para


cada miembro de datos.

c. Proporcione una función miembro mostrarFecha, que muestre el


mes, día y año por barras diagonales (/).

d. Escriba un programa de prueba que demuestre las capacidades


de la clase Fecha.

5. Modifica la clase fecha, definiendo un método llamado diaSig (día


siguiente), para incrementar el día en uno. El objeto de la clase Fecha al
que se le aplique este método deberá quedar siempre en un estado
consistente. Escribe un programa para probar el método diaSig en un
bucle, imprimiendo la fecha durante cada iteración del bucle, y
demostrando así que el método funciona correctamente. Asegúrate de
probar los siguientes casos:
a. Incrementar pasando al siguiente mes
b. - Incrementar pasando al siguiente año
6. Crea una clase Rectángulo. La clase tiene dos datos miembro, largo y
ancho. La clase cuenta con métodos que calculan el perímetro
(obtenPerímetro) y el área (obtenÁrea) del rectángulo, así como
métodos para obtener y poner los valores correspondientes a los
atributos largo y ancho. Los métodos poner deben comprobar que tanto
largo como ancho sean mayores que 0 y menores que 20.
7. Los conductores se preocupan por el kilometraje de sus automóviles. Un
conductor ha llevado el registro de varios reabastecimientos de gasolina
registrados los kilómetros conducidos y los litros usados en cada
reabastecimiento. Desarrolle un subprograma en C++ que utilice una
instrucción while para recibir como entrada los kilómetros conducidos y
los litros usados (ambos enteros) para cada reabastecimiento. El
programa debe calcular y mostrar los kilómetros por litros obtenidos en
cada reabastecimiento, y debe imprimir el total de kilómetros por litro
obtenidos en todos los reabastecimientos hasta este punto.

8. Definir una clase Persona con los datos miembro: nombre, dNacimiento
(día de nacimiento), mNacimiento (mes de nacimiento), aNacimiento
(año de nacimiento), dirección, códigoPostal y ciudad.
a. Las funciones miembro serán obtenNombre, obtenDomicilio,
obtenFechaNacimiento, ponerNombre, ponerFechaNacimiento,
ponerDirección, ponerCPostal y ponerCiudad.
9. Declara tres objetos de la clase Persona y determina en un programa:
a. Quién es el de mayor edad
b. Si alguno vive en Elche
c. Si alguno es mayor de edad
d. Cuántos son mayores de edad
e. Cualquier otra consulta utilizando las funciones miembro de la
clase
10.Modifica la clase Persona para almacenar la fecha de nacimiento como
un objeto de la clase Fecha vista en los apuntes. Quizás deberás
modificar también algunos métodos de la clase Persona y los programas
que utilizan esta clase.
11. Define una clase llamada cAlumno, que será una clase derivada de la clase
cPersona. Debe contener además como datos miembro las calificaciones
de un alumno (array de 5 enteros llamado notas), un campo
observaciones (cadena de caracteres llamada obser), y un campo entero
llamado nfaltas que indicará el número de faltas leves del alumno (ya
sabes: fondos de pantalla, juegos, imágenes pornográficas, llamarse
Ramón, …, ¡ah!, y llamar al profesor cada vez que éste hace ademán de
sentarse tras pasar horas y horas impasiblemente erguido mientras
innumerables hordas de alumnos bla, bla, bla, …). Además, la clase
cAlumno tiene un dato miembro estático llamado FaltaGrave, que indica
el número de faltas leves que constituyen una falta grave. ¿Podemos
utilizar las funciones miembro de cPersona? ¿Cómo?
a. Las funciones miembro serán:
i. Varios constructores (entre ellos un constructor copia) y un
destructor
ii. Una función para actualizar el nuevo atributo estático
iii. obtenNota(int i), que devuelve la nota i del alumno
iv. obtenObs, que devuelve las observaciones
v. obtenNFaltas, que devuelve el número de faltas del alumno
vi. ponerNotas, para modificar las notas
vii. ponerObs, para modificar las observaciones
viii. ponFalta, para añadirle una falta leve al alumno
ix. quitaFalta, para quitarle una falta leve al alumno
x. estaFotut, que indica si el número de faltas del alumno es
>= que FaltaGrave
xi. Cualquier otra función que creas conveniente
b. Escribe una función externa llamada CalculaMedia para calcular y
mostrar la nota media de un alumno
c. Modifica la función para que aumente la media de un alumno
dependiendo de su edad:
i. De 14 a 16 años: aumenta en 1 punto.
ii. De 17 a 19 años: aumenta en 0,75 puntos.
iii. De 20 en adelante: aumenta en 0,5 puntos.
d. Realiza un pequeño programa para probarlo todo.
12.Escribe una aplicación con estos dos espacios de nombres: Geometria y
PruebaGeometria. Dentro del espacio de nombres Geometria tienes que
escribir dos clases: Punto y Cuadrado.
a. La clase Punto ha de tener dos campos de sólo lectura: X e Y (que
serán las coordenadas del punto).
b. La clase Cuadrado ha de tener las siguientes propiedades del tipo
Punto (de solo lectura): Vertice1, Vertice2, Vertice3 y Vertice4
(que corresponden a los cuatro vértices del cuadrado).
c. La base de todos los cuadrados de esta clase será siempre
horizontal.
d. También ha de tener las propiedades Lado, Area y Perimetro,
siendo la primera de lectura/escritura y las otras dos de sólo
lectura.
e. Por otro lado, debe tener dos constructores: uno para construir el
cuadrado por medio de los vértices 1 y 3 y otro para construir el
cuadrado a través del Vertice1 y la longitud del lado.
f. En el espacio de nombres PruebaGeometria es donde escribirás
una clase con un método Main para probar si funcionan las clases
escritas anteriormente.
g. En este espacio de nombres escribe también un método que
muestre todos los datos de un cuadrado en la consola.
13.Desarrolle una aplicación en C++ que determine si alguno de los
clientes de una tienda de departamentos se ha excedido del límite de
crédito en una cuenta. Para caliente se tienen los siguientes datos:
a. Número de cuenta (int)
b. Saldo al inicio del mes
c. Tota de todos los artículos cargados por el cliente en el mes
d. Tota de todos los créditos aplicados a la cuenta del cliente en el
mes
e. Límite de crédito permitido.
El programa debe usar una instrucción while para recibir como entrada
cada uno de estos datos, debe calcular el nuevo saldo (= saldo inicial +
cargo – créditos) y determinar si éste excede el límite de crédito del
cliente. Para los clientes cuyo límite de crédito sea excedido, el
programa debe mostrar el número de cuenta del cliente, su límite de
crédito, el nuevo saldo y el mensaje “Se excedió el límite de su crédito”.
14.Una gran empresa de químicos paga a sus vendedores mediante
comisiones. Los vendedores reciben $200 por semana más el 9% de sus
ventas durante esa semana. Por ejemplo, un vendedor que vende $5000
de mercancía en una semana, recibe $200 más el 9% de $5000, o un
total de %650. Desarrolle un programa en C++ que utilice una
instrucción while para recibir como entrada las ventas brutas de cada
vendedor de la semana anterior, y que calcule y muestre los ingresos de
este vendedor. Procese las cifras de un vender a la vez.
15.Desarrolle un programa en C++ que utilice una instrucción while para
determinar el sueldo bruto para cada uno de varios empleados. La
empresa paga la cuota normal en las primeras 40 horas de trabajo de
cada empleado, y paga cuota y media en todas las horas trabajadas que
excedan de 40. Usted recibe una lista de los empleados de la empresa,
el número de horas que trabajó cada semana empleado la semana
pasada y la tarifa por horas de cada empleado. Su programa debe recibir
como entrada esta información para cada empleado, debe determinar y
mostrar el sueldo bruto de cada empleado.
16.El proceso de encontrar el número más grande (es decir, el máximo de
un grupo de números) se utiliza frecuentemente en aplicaciones de
computadoras. Por ejemplo, para determinar el ganador de un concurso
de ventas recibe como entrada el número de unidades vendidas por
cada vendedor. El vendedor que haya vendido más unidades es el que
gana el concurso. Escriba un programa en seudocódigo y después una
aplicación en C++ que utilice una instrucción while para determinar e
imprimir el mayor número de una serie de 10 números introducidos por
el usuario. Su programa debe utilizar tres variables, como se muestra a
continuación:
a. Contador: Un contador para contar hasta 10 (es decir, para llevar
el registro de cuántos números se ha introducido, y para
determinar cuándo se hayan procesado los 10 números)
b. Numero: el numero actual que se introduce al programa
c. Mayor: el número más grande encontrado hasta ahora.
17.

Das könnte Ihnen auch gefallen