Actividad 4. Beneficios de las estructuras de datos

Introducción
En el presente documento se muestra un ejercicio de programación en donde se utilizó una estructura repetitiva para su elaboración así como un menú para su mejor presentación, de igual manera se presenta la realización del análisis del respectivo problema, su pseudocódigo, el diagrama de flujo  la codificación del problema dentro del lenguaje C.

EL objetivo de la actividad es adentrarnos a las estructuras para una mejor administración de los datos.      

Instrucciones
Analice el problema planteado, desarrolla el pseudocódigo y Diagrama de flujo y escribe el programa en lenguaje C.

Ejercicio

Un grupo de personas se asocian para formar una nueva empresa para dar servicios integrales a automóviles.
Deberán contratar el personal necesario para la inicialización de actividades, serán 13 personas en total.
Requieren de un programa para la administración de los recursos humanos.
Usted apoyara realizando la base de datos programada en C.


Análisis
Para este tipo de problema se utilizara una estructura de ciclo y un menú para la búsqueda de cierto empleado o el registro de todos los empleados
  • Datos de entrada
  • El registro de 13 empleados con los siguientes datos. Nombre completo, edad, dirección, puesto y sueldo  
  • Datos de salida
  • Todos los datos del empleado o empleados
Pseudocódigo
Inicio
i ← 0 Hacer
Imprimir “registro de empleados”
Imprimir “1) Registrar un empleado”
Imprimir “2) Buscar empleado”
Imprimir “3) Registro de todos los empleados”
Leer num
Casos para num

                         Caso 1:
                         Si i≥13 entonces
                                           Imprimir “todos los empleados ya están registrados”
                         Si no
                                           Escribir “Ingresa los datos del empleado”
                                           Escribir “Nombre:”
                                           Leer Empleado[i].Nombre
                                           Escribir “Apellido paterno:”
                                           Leer Empleado[i].ApellidoP
                                           Escribir “Apellido materno:”
                                           Leer Empleado[i].ApellidoM
                                           Escribir “Edad:”
                                           Leer Empleado[i].Edad
                                           Escribir “Dirección:”
                                           Leer Empleado[i].Direccion
                                           Escribir “Puesto:”
                                           Leer Empleado[i].Puesto
                                           Escribir “Sueldo:”
                                           Leer Empleado[i].Sueldo
                                           i ← i+1
                          Fin si
Limpiar pantalla

                            Caso2: Imprimir “Clave:”
                                             Leer clave
                                             Mientras clave≥13 v clave <0 hacer
                                                               Escribir “La clave no es válida,
                                                                Leer clave                                                         
                                             Fin mientras
                                             Escribir “Empleado:”, Empleado [clave].Nombre, Empleado [clave].ApellidoP, Empleado [clave].ApellidoM
                                             Escribir “Edad:”, Empleado [clave].Edad                                                                                                   Escribir “Dirección:”, Empleado [clave].Direccion
                                             Escribir “Puesto:”, Empleado [clave].Puesto
                                             Escribir “Sueldo:”, Empleado [clave].Sueldo

                                            Caso 3:
                                             i=0 hacer
                                             clave = clave+1
                                             Escribir “Empleado:”, Empleado [clave].Nombre, Empleado [clave].ApellidoP, Empleado [clave].ApellidoM
                                             Escribir  “Edad:”, Empleado [clave].Edad
                                             Escribir “Direccion:”, Empleado [clave].Direccion
                                             Escribir “Puesto:”, Empleado [clave].Puesto
                                             Escribir “Sueldo:”, Empleado [clave].Sueldo
Fin

Diagrama de flujo

Actividad 4 Beneficios de las estructuras de datos

Código en C
#include <stdlib.h> 
#include <stdio.h>  


main ()
{

/*Variables de entrada*/
struct Empleados{
 char Nombre [30];
 char ApellidoM [30];
 char ApellidoP [30];
 char Direccion [30];
 char Puesto [30];
 int clave;
 int Edad;
 float Sueldo;
};

struct Empleados Empleado[3]; /*función de estructura*/
 
/*Variables de la estructura y de switch*/ 
 int i=1;
 int num;
 int clave;

/*Menú con diferentes alternativas*/
    do{ 
    printf( "Registro de empleados\n");
    printf( "\nEliga una opcion" );
    printf( "\n\n");
    printf( "1) Registrar Empleado \n" );
    printf( "2) Buscar Empleado \n" );
    printf( "3) Registro de todos los empleados \n" );
    scanf("\n%d",&num); /*entrada de la variable para los menú*/
    system("cls"); /*limpieza de pantalla*/
 
 switch (num){ /*caso 1*/
  case 1:
  if(i>=13) 
  printf("Todos los empleados ya estan registrados\n"); /*si ya hay más de 13 empleados registrados*/
 else {
 printf ("\n\nIngrese los datos del empleado:%.3i\n", i); /*ingresar datos de empleados*/
   
/*Registro de los empleados*/
 printf ("\nNombre: ");
 fflush(stdin);
 scanf ("%s", & Empleado[i].Nombre);

 printf ("Apellido paterno: ");
 fflush(stdin);
 scanf ("%s", & Empleado[i].ApellidoP);

 printf ("Apellido materno: ");
 fflush(stdin);
 scanf ("%s", & Empleado[i].ApellidoM);

 printf ("Edad: ");
 fflush(stdin); 
 scanf ("%i", & Empleado[i].Edad);

 printf ("Direccion: ");
 fflush(stdin);
 scanf ("%s", & Empleado[i].Direccion);

 
 printf ("Puesto: ");
 fflush(stdin);
 scanf ("%s", & Empleado[i].Puesto);
 
 printf ("Sueldo: ");
 fflush(stdin);
 scanf ("%f", & Empleado[i].Sueldo);
 i++;
}
system("cls");
 break; /*fin del caso 1*/
 
 case 2: /*caso 2*/
 
 /*Proceso para buscar empleado con su clave de registro*/
 printf( "\n\n");
    printf( "Clave: ");
    scanf("%i",& clave);
    while(clave>=14 || clave <0 3:="" 3="" a="" break="" case="" caso="" clave:="" clave="" cls="" code="" dad:="" dad="" de="" default:="" del="" diferente="" empleado="" empleados="" es="" f="" fin="" for="" i="" imprimir="" ingresa="" ireccion:="" ireccion="" la="" lave:="" lida="" limpiar="" los="" mero="" mpleado="" n="" no="" nuevamente="" num="" ombre:="" ombre="" pantalla="" para="" pausa="" pause="" pcion="" pellidom="" pellidop="" printf="" registros="" roceso="" s="" scanf="" se="" selecciona="" system="" todos="" ueldo:="" ueldo="" uesto:="" uesto="" un="" v="" valida="" while="">