BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 22 Constructores y Destructores
Ejercicios Propuestos

22.6.- Defina una clase para un tipo llamado TipoContador. Los objetos de este tipo sirven para contar cosas, por lo que registran una cuenta que es un número entero no negativo. Incluya un constructor predeterminado que establezca el contador a cero y un constructor con un argumento que establezca el contador al valor especificado por su argumento. Incluya funciones miembro para incrementar y decrementar el contador en uno. Aegurese de que ninguna función miembro permita que el valor del contador se vuelva negativo. También incluya una función miembro que devuelva el valor actual de la cuenta y otra que envíe la cuenta a un flujo de salida. La función miembro para efectuar la salida tendrá un parámetro formal de tipo ostream para el flujo de salida que recibe las salidas. Incruste su definición de clase en un programa de prueba.

22.7.- Mi madre siempre llevaba un pequeño contador rojo a la tienda de abarrotes. El contador servía para llevar la cuenta de la cantidad de dinero que habría gastado hasta un momento dado de su visita si comprara todo lo que ponía en su canasta. El contador podía desplegar hasta 4 dígitos y tenía botones para incrementar cada dígito, así como un botón para reestablecer el contador. Había un indicador de desbordamiento que se ponía rojo si se introducía más dinero que los $99.99 pesos que podía registrar.

Escriba e implemente las funciones miembro de una clase contador que simule y generalice un poco el comportamiento del contador que se describió para la tienda de abarrotes. El constructor deberá crear un objeto contador que pueda contar hasta el argumento del constructor. Es decir, Contador(9999) deberá crear un contador capaz de contar hata 9999. Un contador recien construído muestra una lectura de 0. La función miembro void restablecer(); establece a cero el número del contador. Las funciones miembro void incr1(); void incr10(); void incr100() y void incr1000(); incrementan en 1 los dígitos de las unidades, decenas, centenas y millares, respectivamente. incluir cualquier acarreo al incrementar no deberá requerir más acción que sumar un número apropiado al miembro de datos privado. Una función miembro bool desborde(); detecta desbordamiento. El desbordamiento es el resultado de incrementar el miembro de datos privado del contador más allá del máximo especificado al construirse el contador.

Utilice esta clase para simular el aparato rojo de mi madre. Aunque el número que se despliega es un entero, en la simulación, los dos dígitos de la derecha (de orden más bajo) siempre se consideran como centavos y decenas de centavos, el siguiente dígito es pesos y el dígito de la extrema izquierda es decenas de pesos.

Asigne teclas para centavos, decenas de centavos, pesos y decenas de pesos. Lamentablemente, no hay un conjunto de teclas que resulte especialmente mnemónico. Una opción es emplear una de las teclas asdfo : a para centavos, seguida de un dígito 1-9; s para decenas de pesos, seguida de un dígito 1-9; d para pesos, seguida de un dígito 1-9; y f para decenas de pesos, seguida de un dígito 1-9. Después de cada entrada (a, s, d o f, seguida de 1-9) se oprime la tecla de Entrar. Si hay desbordamiento, éste se informa después de cada operación. Se puede solicitar el desbordamiento oprimiendo la tecla o.