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
#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="">
0>
