Prof. Dr. Paul Bustamante

Nombre:________________________________________ Examen Carné:__________________ C++ - Junio Informática II Fundamentos de Programación Prof. Dr. P

9 downloads 271 Views 266KB Size

Story Transcript

Nombre:________________________________________

Examen

Carné:__________________

C++ - Junio

Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante

Examen Grupo B Programación en C++

Pág. 1

ÍNDICE ÍNDICE ............................................................................................................ 1 1. Introducción. ........................................................................................ 1 1.1 Ejercicio 1: Báscula en C++ (2.0 pts.) ......................................... 1 1.2 Ejercicio 2: Mi función Compara y Longitud (2.0 Pts.) ................ 2 1.3 Ejercicio 3: Tienda Electrónica (5.0 Pts.) ..................................... 2

1. Introducción. Para el examen es importante verificar que se escriben los ejercicios en el directorio correcto de su disco G:\. Debe crear un directorio para cada uno de los ejercicios. Lea detenidamente el enunciado del ejercicio, y si no lo comprende muy bien, pregunte a las personas encargadas de la vigilancia. Con el fin de evitar los errores acumulados, es conveniente que cada vez que agregue líneas de código, compile y ejecute el programa para ver que todo funciona bien. 1.1 Ejercicio 1: Báscula en C++

(2.0 pts.)

Una báscula tiene las siguientes pesas: 100 libras, 50 libras, 10 libras, 5 libras y 1 libra. Debe implementar un programa con una función que permita seleccionar el número exacto de pesas que se debe colocar en la báscula. Por ejemplo, si el peso es de 268 libras, se deben colocar 2 pesas de 100, 1 de 50 y así sucesivamente, según se ve en la siguiente figura. El programa terminará cuando el peso que pide al usuario sea “cero”.

Fig. 1 Ejecución del programa

Desde main se debe llamar a la función CalculaPesas, pasándoles como argumento el peso y debe devolver el número de pesas que son necesarias (de 100, 50, 10, 5 y 1 libra). La forma cómo debe devolver los valores esta función, queda a criterio suyo. Es mejor trabajar sólo con enteros. NOTA: si no se hace la función CalculaPesas, no tendrá validez el ejercicio. Este ejercicio se debe guardar en el subdirectorio Ejer1 de su disco G:\.

Examen Junio Grupo B Programación en C++

1.2 Ejercicio 2: Mi función Compara y Longitud

Pág. 2

(2.0 Pts.)

En este ejercicio debe desarrollar sus propias funciones para manejo de cadenas de caracteres. Las dos funciones a desarrollar son: •

Comparar: esta función debe comparar dos cadenas de caracteres y decir si son iguales o no, para lo cual debe devolver un bool. (similar a strcmp, la cual NO se debe utilizar. Tiene que hacerlo carácter a carácter). Esta función debe tener dos argumentos, en los cuales se le pasarán las cadenas de caracteres a comparar.



Longitud: esta función debe devolver la longitud de una cadena de caracteres (tal como strlen). Sólo tiene un argumento, que es la cadena de caracteres a la cual se le desea obtener la longitud.

Para probarlas, debe hacer un programa (main) que pida dos “frases” y diga si son iguales o no y que diga también la longitud de cada una de las frases. NOTA: si NO se hacen las funciones, no tendrá validez el ejercicio. Este ejercicio se debe guardar en el subdirectorio Ejer2 de su disco G:\.

1.3 Ejercicio 3: Tienda Electrónica (5.0 Pts.) A UD le han encargado que realice un programa de gestión para una tienda de componentes electrónicos, usando la Programación Orientada a Objetos (POO), la cual está basada en las clases. El programa debe tener 5 opciones, las cuales se pueden ver en la figura de la derecha. La Opción 1 (Introducir Componentes) le permitirá introducir los componentes que se van a vender en la tienda, tanto el nombre como el precio, por ejemplo una resistencia que cuesta 0.1€, un condensador que cuesta 0.2€, y así sucesivamente. En la figura de la derecha puede observar cómo se van introduciendo los componentes. La Opción 2 (Comprar) permitirá que el cliente seleccione de una lista que le mostrará el programa (según los componentes que se hayan introducido con la opción 1), qué componente desea comprar y la cantidad (Véase la figura de la derecha). Cuando haya elegido el componente y la cantidad, debe volver a mostrar el menú para que siga comprando. La Opción 3 (Reporte Pantalla) permitirá que Informática II – Fundamentos de Programación - Tecnun

Examen Junio Grupo B Programación en C++

Pág. 3

el cliente pueda ver en forma de reporte todos los componentes que ha comprado, tanto las cantidades como los precios unitarios y totales, y finalmente pueda ver el costo total de la compra, tal como se puede observar en la siguiente figura:

La Opción 4 (Reporte Ficheros, vale 1.0 Pts.) permitirá que el reporte que se hace en pantalla se haga de la misma forma en un fichero, cuyo nombre lo debe pedir al usuario, en formato texto. Esta sería una especie de factura que luego se imprime y se le da al usuario. Finalmente, la Opción 5 será para terminar el programa. Estructura del programa: Para poder hacer este programa, hay que crear 3 clases (Son independientes entre ellas, no hay herencia). 1. Primero tenemos la clase Dispositivo, la cual tiene la siguiente estructura: class Dispositivo {

char name[20]; double precio; public: //.. Poned lo necesario };

Las variables son privadas: name es un array para guardar el nombre del dispositivo (por ejemplo resistencia) y la variable precio, su mismo nombre indica para qué sirve. UD debe poner los constructores y demás funciones que sean necesarias. 2. En segundo lugar tenemos la clase Almacen, cuya estructura es la siguiente: class Almacen { public: Dispositivo lista[40]; //array de 40 dispositivos int num; //numero de componentes en la lista public: // . . . poner el resto };

Esta clase permite almacenar hasta 40 dispositivos, para lo cual tiene dos variables miembro públicas: tiene un array (lista) de 40 objetos tipo Dispositivo y tiene la variable num, que permitirá saber cuantos dispositivos se van almacenando en esta lista. Al igual que en la clase anterior, UD debe poner los constructores y demás funciones que sean necesarias. Informática II – Fundamentos de Programación - Tecnun

Examen Junio Grupo B Programación en C++

Pág. 4

3. Finalmente tenemos la clase Compras, cuya estructura es la siguiente: class Compras { int ind; //indice del dispositvo en la Lista de Almacen int cant; //numero de componentes que compra del dispositivo public: // … poner el resto };

Esta clase contiene dos variables privadas enteras, ind y cant. En ind se almacenará el índice de los dispositivos de la lista de Almacen y en cant la cantidad a comprar de dicho dispositivo. Al igual que en la clase anterior, UD debe poner los constructores y demás funciones que sean necesarias. La función principal main tendrá un menú para elegir las opciones que se han planteado. La estructura de main puede ser la siguiente: void main() { Almacen almac1; Compras ListaCp[100]; int Num=0;

//Objeto almacen //array de 100 objetos Compras //contador de dispositivos comprados (en ListaCp)

while(true){ int opc = Menu(); if (opc==1){ // Introducir dispositivos en objeto almac1 }else if (opc==2){ // realizar las compras (en ListaCp e incrementar }else if (opc==3){ // Reporte pantalla } }else if (opc==4){ // Reporte ficheros } if (opc==5) break; }

Num)

}

En la Opción 1 debe ir introduciendo los componentes en el objeto almac1. Recuerde que esta clase tiene una variable que debe ir contando cuantos dispositivos se van introduciendo. Para poder realizar la Opción 2, se ha creado un array (ListaCp) de objetos tipo Compras. En esta lista sólo se guarda el índice del dispositivo elegido (previamente habrá que sacar por pantalla los objetos introducidos) y la cantidad a comprar. Las opciones 3 y 4 son reportes, para lo cual hay que consultar la ListaCp y el objeto almac1. Suerte!!!

Informática II – Fundamentos de Programación - Tecnun

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.