Prof. Dr. Paul Bustamante

Documentos relacionados
Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

1. Juego del Ahorcado

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Prof. Dr. Paul Bustamante

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.) Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Examen Septiembre Curso Programación en C++ Pág. 1

Prof. Dr. Paul Bustamante

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

Prof. Dr. Paul Bustamante

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Escuela Politécnica Superior de Elche

Práctica 1 Pasa la calculadora

Prof. Dr. Paul Bustamante

PRÁCTICA 5. SENTENCIAS DE CONTROL REPETITIVAS.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

MANUAL DE USUARIO PARA OPERADORES SISTEMA DE GESTIÓN DOCUMENTARIO DE LA UNT

8.1 Un primer bucle FOR Varias formas de utilizar el bucle FOR Calcular el factorial de un número mediante un bucle FOR...

COMO REGISTRARSE EN PAGERO WEB PORTAL Y ENVIAR UNA FACTURA A ABB ESPAÑA

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

Tema: Arreglos de Objetos en C++.

INSTITUTO ELECTORAL DEL ESTADO DE MÉXICO SECRETARÍA EJECUTIVA UNIDAD DE INFORMÁTICA Y ESTADÍSTICA

ALMACENAMIENTO PERSISTENTE DE DATOS

Firma y cifrado de correos electrónicos utilizando Cédula de Identidad

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Contenidos. Archivos en C++ Archivos en C++ Introducción

Manual de Usuario de la Aplicación Web Gestión de Convenio y Becas - RELEXT 2015 UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA

Manual de Usuarios: Sistema de Registro de Alfabetizados y Cursos del Plan Nacional de Alfabetización Tecnológica (PNAT)

FUNDAMENTOS DE INFORMÁTICA

INSTRUCTIVO GESTIÓN DE AMBIENTES

Instructivo de uso de los Esquema de Balances AxI

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Pasos para crear una página web en wix

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Inicio rápido: Ver informes

1 OBTENER EL CD DE UBUNTU 2 INSERTAR EL CD 3 ELEGIR EL IDIOMA. Coleccion: Ubuntu para Torpes

Hoja de ejercicios del Tema 3

Gestión para Pymes (ERP)

MODULO DE MANTENIMIENTO PERIODICO VIA EXTRANET

Polimorfismo. Métodos virtuales

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

FICHERO DE AYUDA DEL PROGRAMA MULTIREDLOTO

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Combinación de correspondencia en Microsoft Office Word 2003

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Prof. Dr. Paul Bustamante

EJERCICIOS PHP II FORMULARIOS

Ashampoo Rescue Disc

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Solución de problemas de fax. Preguntas frecuentes sobre fax Solución de problemas de envío de faxes... 3

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Herramientas para la productividad INTERNET

Tema: Introducción al IDE de Microsoft Visual C#.

icloud: Solución de calendarios duplicados después de configurar la aplicación de calendarios para Calendario icloud

CDEC SIC Manual para Empresas Usuarias

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Manual de Registro de Notas

Manual del Aula Virtual GUÍA PARA EL USUARIO

PROGRAMACIÓN EN JAVA

Siga pasos coherentes cada vez que trabaje con los clientes. Serie de introducción

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Paint Otro de los accesorios que incorpora Windows 95 es Microsoft Paint, un sencillo programa de Dibujo.

Guía resumida para configurar un sistema Linux virtualizado y ejecutar Simusol

Manual de Usuario. - Alumnos - SIU-Tehuelche

Estructuras de repetición

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

AUTOMATIZACIÓN DE TAREAS REPETITIVAS MEDIANTE GRABACIÓN DE MACROS

Actividad 1.1 Instalación típica de Windows 2000 Server

Figura 41: Ejemplo de una carta para combinar correspondencia

11.2. Manual de GTC 2.0: El primer contacto

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Preparación de los Documentos de Word para obtener ficheros PDF Accesibles

MANUAL DE SYS APOLO - CONFIGURACIÓN

Registro de Proveedores v2

Actualización de instructivo Video Chat

CURSO 2º GRUPO Junio 2011

Pero nos están faltando otros operadores imprescindibles:

Resolución de problemas mediante algoritmos

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

LENGUAJE. Tema 1 - Introducción

Ejercicio 1. Desarrollar una versión del juego Memoria.

Problema - Sumando Digitos

MANUAL LOTTERY V2. Figura 1: Web ubicación archivo ejecutable

Creación de Formularios y Consultas

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES.

Se guardan en archivos con extencion c y los cabezales con extension h

Transcripción:

Carnet Nombre: Examen C++ Grupo A Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante

Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: JUEGO DEL AHORCADO (3.5 PTS.)...1 3. EJERCICIO 2: AGENDA - CONTACTOS (5.5 PTS.)... 3 1. Introducción Algunas sugerencias con respecto al examen: verifique que tiene su Disco G:\ creado y que no tiene nada en él (ejercicios anteriores). Trate de realizar primero el ejercicio que crea que es más sencillo y deje el complicado para el final. Lea detenidamente los enunciados. 2. Ejercicio 1: Juego del ahorcado (3.5 Pts.) Este ejercicio consiste en hacer un programa que permita jugar al clásico juego del ahorcado, donde las palabras estarán grabadas en un fichero con extensión.txt, por ejemplo ahorcado.txt. Este fichero tiene que crearlo primero con un editor de texto (como notepad), y las palabras estarán una en cada línea, según se ve en la figura de la derecha (este fichero NO se debe crear con el programa que está UD. haciendo): El programa tendrá un menú con tres opciones: Cargar Palabra, Jugar y Salir, como se puede ver en la figura que se muestra a continuación: Opción 1: Mediante esta opción se puede cargar la palabra del fichero, cuyo nombre se pide por pantalla, según se ve en la figura anterior. Se debe seleccionar de forma aleatoria la palabra, para lo cual primero debe contar cuantas palabras hay en el fichero (leyéndolas) y luego mediante la función rand() (use srand() para cambiar la semilla) generar un número aleatorio entre 1 y el número de palabras que hay en el fichero (en la figura se ve que se ha cogido una palabra de 19 que tenía el fichero). Esta opción se debe hacer con la función CargaPalabra(..), la cual debe devolver la palabra escogida de forma aleatoria por el programa. Con el fin de continuar con el programa, sino puede hacer esta opción, use una palabra que se pida por teclado, pero perderá los puntos de esta opción. Opción 2: Esta opción permite empezar el juego (creo que es ya muy conocido este juego y no necesita mucha explicación). De esta opción no se sale hasta que haya adivinado la palabra o haya perdido (con 9 intentos). En cada intento de juego se va a pedir que introduzca un nuevo dígito y el programa debe ver si ese dígito está en la palabra o no. Los intentos se deben ir sumando, si el dígito no se encuentra en la palabra. Véase bien el funcionamiento del programa en la siguiente figura:

Pág.2 La estructura del programa principal main sería como sigue (debe usar las funciones que se muestran): void main() char pal[80]; //guardar aqui la palabra que devuelve CargaPalabra() while(1) int opc=menu(); if (opc==3)break; else if(opc==1) CargaPalabra(pal); Distribución de puntos: else if (opc==2) Jugar(pal); Cargar Palabra: 1.5 Jugar: 2.0 //se le pasa la palabra

Pág.3 3. Ejercicio 2: Agenda - Contactos (5.5 Pts.) Ud. forma parte de un grupo de trabajo en una empresa a la que le han pedido que realice un programa de una agenda, del estilo del outlook de Microsoft. El diagrama general de clases de dicho programa es el siguiente: La clase base es Agenda y de ella derivan todas las demás, como puede ver en la siguiente figura: A Ud. le han encargado que haga sólo la parte de los Contactos. Otros grupos de trabajo harán el resto de clases. Con el fin de poder juntar todo de la mejor manera posible, la clase Agenda no tiene variables miembro; sólo tiene una función virtual mostrarinfo(), que heredarán todas las demás clases. Esta clase sirve para poder crear una lista común a todos los objetos: Agenda Lista[40]; La estructura de la clase Agenda en la siguiente: class Agenda virtual void mostrarinfo(); ; La clase Contactos es la que realmente tiene todas variables y métodos necesarios para esto. A continuación se muestra la estructura de dicha clase: class Contactos : public Agenda Persona p; //objeto de clase Persona Empresa e; //objeto de clase Empresa char correo[20]; Contactos(); friend void operator>>(istream&ci, Contactos *c); void mostrarinfo(); ; //sobrecarga operador Con el fin de estructurar bien el programa, en la clase Contactos hay dos miembros de la clase Persona y de la clase Empresa, cuyas estructuras se dan a continuación. También hay otro miembro, correo, que es un array para guardar el email de los contactos:

Pág.4 Clase Persona class Persona char nombre[20]; //Apellido,nombre //direccion char dir[20]; long telf_fijo; long telf_movil; Persona() friend void operator>>(...) ; friend void operator<<(...); ; Clase Empresa class Empresa char nombre[15]; char puesto[20]; long telf; Empresa() ; friend void operator>>(... ); friend void operator<<(... ) ; Como puede ver, tanto la clase Persona como Empresa tienen sus propias variables miembro y tienen también los operadores sobrecargados (esto de la sobrecarga es opcional, lógicamente si se usan se obtendrá el puntaje total del ejercicio). Funcionamiento: El programa tiene 5 opciones. La opción 1 es para agregar nuevos contactos y su funcionamiento se puede ver en la siguiente figura. Aquí se deben pedir todos los datos de un contacto, esto es, nombre, dirección, tel.fijo, tel.movil, etc. La opción 2 permite ver todos los contactos que se han agregado. Para ello de debe invocar a la función mostrarinfo() de la clase contactos, y desde aquí se llamarán a los métodos respectivos de las clases Persona y Empresa.

Pág.5 Las opciones 3 y 4 permiten grabar y cargar los contactos que se creen en el programa. Esto se puede hacer con sobrecarga de operadores o con funciones sencillas. Debe pedir el nombre del fichero y ud. debe elegir si grabar en formato binario o texto. Los objetos cargados deben ser agregados a la lista para poder usar la opción 2 de ver todos los datos. A continuación se da la estructura general de main(): void main() Agenda *Lista[40]; int num=0; while(1) int opc=menu(); if (opc==5) break; else if(opc==1) //lista de objetos //contador de objetos Contactos *contact1=new Contactos(); cin >> contact1; //con sobrecarga. Lo puede cambiar si desea Lista[num++]=contact1; else if(opc==2) for (int i=0;i<num;i++) cout << "Contacto "<<i+1<<":\n"; Lista[i]->mostrarInfo(); //agregar el resto de opciones, grabar y leer Distribución de puntos: Agregar Contactos: 2.5 (debe tener todas las clases creadas para el total) Ver Contactos: 1.5 (si usa sobrecarga se obtiene el total) Opción 3 y 4: 1.5 (si usa sobrecarga se obtiene el total) Suerte!