




















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
PA2 ESTRUCTURA DE DATOS 2024 -
Tipo: Exámenes
1 / 28
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Criterio Detalle Tema o asunto Estructuras, Cadenas de caracteres, Punteros y referencias. Enunciado - Individualmente, elabora Producto Académico N° 02. *** Se le recomienda que para la presentación de este Producto Académico N° 02 considere los ítems de la rúbrica de evaluación. *** Desarrollar los ejercicios de programación en el Dev C++, utilizando programación modular y las estructuras solicitadas, de acuerdo con los enunciados. *** Debe de documentar sus programas explicando línea por línea que acción ejecutará el código fuente. Programa 1: Empleado El área de recursos humanos de la Universidad tiene registros del nombre, sexo, edad y sueldo de cada uno de sus empleados. NOMBRE SEXO EDAD^ SUELDO Utilizando registros (estructuras) escriba un programa que calcule e imprima los siguientes datos: Reporte 1. Sueldo promedio del grupo de empleados. Reporte 2. Nombre del empleado más joven del grupo y del de mayor edad. Reporte 3. Número de empleados del sexo femenino con sueldo mayor al promedio de todos. Programa 2 : Cuentas de Clientes Por cada Cliente se registra su DNI y su nombre. Recuerde que los DNIs de los clientes no se puede repetir. Por cada Cuenta se registra su Número de cuenta, Tipo de moneda y Saldo. Recuerde que los números de cuentas de los clientes no se repiten. Se sabe que un cliente puede tener varias cuentas. Utilizando registros (estructuras) escriba un programa que, dada la información de N clientes con M cuentas, pueda realizar las siguientes operaciones: Reporte 1. Mostar el nombre y DNI de los clientes con las cuentas (Número de cuenta y Saldo) que posee, ordenados por nombre del cliente. Reporte 2. Dado el DNI de un cliente, mostrar sus cuentas en dólares que posee y su saldo equivalente en soles (1 dólar = 3.78 soles). Reporte 3. Dado un número de cuenta, indicar a qué cliente pertenece.
El presente informe documenta el desarrollo del caso del producto académico del curso de Estructura de Datos, en el cual se refleja la aplicación de funciones, paso de parámetros, manejo de estructuras como vectores y programación modular en C++. El objetivo es reforzar el conocimiento en estructuras de datos básicas y algoritmos mediante la implementación práctica en el lenguaje de programación C++. Este informe considera un análisis de requisitos funcionales con el siguiente contenido: Enunciado, resumen, entradas, validaciones, procesos, salidas, análisis de estructuras de datos utilizadas y código fuente. ANÁLISIS DE REQUISITOS FUNCIONALES Programa 1:
1. Enunciado Empleando, El área de recursos humanos de la Universidad tiene registros del nombre, sexo, edad y sueldo de cada uno de sus empleados. NOMBRE SEXO EDAD SUELDO Utilizando registros (estructuras) escriba un programa que calcule e imprima los siguientes datos: Reporte 1 : Sueldo promedio del grupo de empleados Reporte 2 : Nombre del empleado más joven del grupo y del de mayor edad. Reporte 3 : Número de empleados del sexo femenino con sueldo mayor al promedio de todos. 2. Resumen El programa permite al usuario ingresar información sobre varios empleados, incluyendo nombre, sexo, edad y sueldo. A partir de estos datos, el programa calcula el sueldo promedio de todos los empleados, identifica al empleado más joven y al de mayor edad, y cuenta cuántas empleadas femeninas tienen un sueldo superior al promedio. 3. Entradas - Nombre del empleado (tipo string). - Sexo del empleado (tipo char, valores permitidos: 'M' o 'F'). - Edad del empleado (tipo int, debe ser mayor a 17). - Sueldo del empleado (tipo double).
4. Validaciones - El sexo debe ser 'M' (masculino) o 'F' (femenino). Cualquier otro valor ingresado se considera inválido y se solicitará nuevamente. - La edad debe ser mayor a 17. Cualquier edad ingresada que no cumpla esta condición se considera inválida y se solicitará nuevamente. - El sueldo debe ser un número positivo. 5. Funciones y Procedimientos - Estructura de Empleado Define una estructura llamada Empleado que contiene cuatro campos: nombre, sexo, edad y sueldo. - Ingreso de datos del Empleado Un bucle solicita al usuario que ingrese los datos de cada empleado, validando el sexo y la edad según las reglas descritas. - Código adicional
6. Salidas - Sueldo promedio de todos los empleados - Nombre del empleado más joven. - Nombre del empleado de mayor edad. **Programa 2 :
3. Entradas - Nombre del cliente (tipo string). - DNI del cliente (tipo string, exactamente 8 dígitos). - Número de cuenta bancaria (tipo string, exactamente 1 0 dígitos para la MONEDA SOLES y 11 dígitos para DÓLARES). - Tipo de moneda (tipo string, 'S' para soles o 'D' para dólares). - Saldo de la cuenta bancaria (tipo double). 4. Validaciones - El DNI debe tener exactamente 8 dígitos y contener solo números. - El número de cuenta debe tener exactamente 10 dígitos para cuentas en SOLES y 11 dígitos para cuentas en DÓLARES, y debe estar compuesto únicamente por números. - El tipo de moneda debe ser 'S' o 'D'. - El saldo de la cuenta debe ser un número positivo. 5. Funciones y Procedimientos - Estructura: a. Cuenta: Agrupa información sobre una cuenta bancaria: tipo de moneda, número de cuenta y saldo. b. Cliente: Agrupa información relacionada con un cliente: DNI, nombre y un vector de cuentas. - Ingreso de datos de clientes y cuentas: Un bucle solicita al usuario que ingrese los datos de cada cliente y sus cuentas, validando el DNI, tipo de moneda, número de cuenta y saldo según las reglas descritas.
Muestra el cliente (DNI y nombre) al que pertenece un número de cuenta específico.
6. Salidas - Listado de clientes y cuentas ordenados por nombre. - Listado de cuentas en dólares de un cliente específico y su saldo en soles. - Información del cliente propietario de un número de cuenta específico. CODIGÓ FUENTE C++ Programa 1 #include
bool edadValida = false; while (!edadValida) { cout << "EDAD (Mayor a 17 anios): "; cin >> empleados[i].edad; if (empleados[i].edad > 17) { edadValida = true; } else { cout << "ERROR, LA EDAD DEBE SER MAYOR A 17 ANIOS.\n"; } } cout<<"------------------------------------------------------
if (empleados[i].edad > empleadoMayorEdad.edad) { empleadoMayorEdad = empleados[i]; } } cout << "Reporte 2: NOMBRE DEL EMPLEADO MÁS JOVEN DEL GRUPO :==> " << empleadoMasJoven.nombre << endl; cout<<"------------------------------------------------------- "<<endl; cout << "Reporte 2: NOMBRE DEL EMPLEADO MAYOR EDAD: ==> " << empleadoMayorEdad.nombre << endl; cout<<"-------------------------------------------------------- -----------------------------------"<<endl; // Reporte 3: Contar el número de empleadas con sueldo mayor al promedio int contadorFemeninoMayorPromedio = 0; for (int i = 0; i < n; i++) { if (empleados[i].sexo == 'F' && empleados[i].sueldo > sueldoPromedio) { contadorFemeninoMayorPromedio++; } } cout << "Reporte 3: NUMERO DE EMPLEADAS DEL SEXO FEMENINO CON SUELDO MAYOR AL PROMEDIO DE TODOS: " << contadorFemeninoMayorPromedio << endl; return 0; } CODIGÓ FUENTE C++ Programa 2 #include
// Función para registrar un nuevo cliente void registrarCliente(vector
if (nuevaCuenta.tipoMoneda != "S" && nuevaCuenta.tipoMoneda != "D") { cout << "Intente de nuevo. Tipo de moneda permitido S= Soles o D= Dólares.\n"; } } while (nuevaCuenta.tipoMoneda != "S" && nuevaCuenta.tipoMoneda != "D"); // Ingresar número de cuenta según el tipo de moneda do { cout << "Ingrese el número de cuenta: "; cin >> nuevaCuenta.numeroCuenta; if (nuevaCuenta.tipoMoneda == "S" && nuevaCuenta.numeroCuenta.length() != 10) { cout << "Intente de nuevo. El número de cuenta en moneda soles debe tener 10 dígitos.\n"; } else if (nuevaCuenta.tipoMoneda == "D" && nuevaCuenta.numeroCuenta.length() != 11) { cout << "Intente de nuevo. El número de cuenta en moneda dólares debe tener 11 dígitos.\n"; } else if (cuentaExiste(clientes, nuevaCuenta.numeroCuenta)) { cout << "Intente de nuevo. La cuenta registrada ya existe.\n"; } } while ((nuevaCuenta.tipoMoneda == "S" && nuevaCuenta.numeroCuenta.length() != 10) || (nuevaCuenta.tipoMoneda == "D" && nuevaCuenta.numeroCuenta.length() != 11) || cuentaExiste(clientes, nuevaCuenta.numeroCuenta)); // Ingresar saldo de la cuenta do { cout << "Ingrese el saldo de la cuenta: "; cin >> nuevaCuenta.saldo; if (nuevaCuenta.saldo <= 0) { cout << "Intente de nuevo. El saldo no es válido.\n"; }
for (int i = 0; i < clientes.size(); i++) { if (clientes[i].dni == dni) { cout << "Cuentas en dólares del cliente: " << clientes[i].nombre << "\n"; for (int j = 0; j < clientes[i].cuentas.size(); j++) { if (clientes[i].cuentas[j].tipoMoneda == "D") { cout << "Cuentas : " << clientes[i].cuentas[j].numeroCuenta << endl; cout << "Saldo : " << clientes[i].cuentas[j].saldo << " Dólares (" << clientes[i].cuentas[j].saldo * 3.78 << " Soles)\n"; } } return; } } cout << "Cliente no encontrado.\n"; } // Reporte 3: Mostrar a qué cliente pertenece un número de cuenta void reporte3(vector
cout << "Cuenta no encontrada.\n"; } int main() { setlocale(LC_ALL, "Spanish"); vector