Вы находитесь на странице: 1из 5

PROGAMA EN C:

#include<stdio.h>
#include<conio.h>
#include<string.h>
struct empleados{
char nombre[100];
char apeliido[100];
char sexo[100];
char direccion[100];
float telefono[100];
char codigo[100];
};
int v=0;//numero de empleados guardados inicialmente en el vector
struct empleados empleado[300];//vector tipo empleados en el que se
guardaran los datos de los empleados
int ingresar_datos();
void insertar_datos();
void borrar_datos();
void consultar_datos();
void empleados(int pos);
void main(){
int n;
do{
do{
printf("\nElija una opcion:\n 1: Ingreso de datos de empleados \n
2: Insertar datos \n 3: Borrar datos de empleados \n 4: Consultar datos \n 5:
Salir");
scanf("%i", &n);
}
while(n>5||n<1);
switch(n){
case 1:
Ingresar_datos();
Break;
case 2:
Insertar_datos();
Break;
case 3:
Borrar_datos();
Break;
case 4:
Consultar_datos();
Break;
case 5:
printf(Salir.);
Break;
}
while(n!=5);
}
void ingresar_datos(){
if(v==300){
printf(No se pueden ingresar ms datos de empleados.);
}
else{
Empleados(v);//llena la siguiente posicion a la ultima que estaba llena
en el vector
}
}
void insertar_datos(){
int pos,i;
do{
printf(Digite la posicin en que desea ingresar los datos del
empleado:");
scanf("%i",&pos);
if(pos<0||pos>v)
printf("Digite una posicion entre 0 y %i.",v);
}
while(pos<0||pos>v);
if(v==300){
printf(No se pueden ingresar ms datos de empleados.);
}
else{
for(i=v-1;i>pos;i--){
strcpy(empleado[i].nombre,empleado[i-1].nombre);//copia lo que
esta en empleado[i+1].nombre en empleado[i].nombre y asi para los otros
datos tipo cadena
strcpy(empleado[i].apellido,empleado[i-1].apellido);
strcpy(empleado[i].sexo,empleado[i-1].sexo);
strcpy(empleado[i].direccion,empleado[i-1].direccion);
empleado[i].telefono=empleado[i-1].telefono;
strcpy(empleado[i].codigo,empleado[i-1].codigo);
}
Empleados(pos);
}
void borrar_datos(){
int pos,i;
do{
printf(Digite la posicin del empleado que desea borrar:);
scanf("%i",&pos);
if(pos<0||pos>v)
printf("Esa posicion no existe, digite una posicion entre 0 y
%i.",v);
}
while(pos<0||pos>v);
if(v==0){
printf(No se puede borrar, no hay datos de empleados.);
}
else{
for(i=pos;i<v;i++){
strcpy(empleado[i].nombre,empleado[i+1].nombre);//copia lo
que esta en empleado[i+1].nombre en empleado[i].nombre y asi para los
otros datos tipo cadena
strcpy(empleado[i].apellido,empleado[i+1].apellido);
strcpy(empleado[i].sexo,empleado[i+1].sexo);
strcpy(empleado[i].direccion,empleado[i+1].direccion);
empleado[i].telefono=empleado[i+1].telefono;
strcpy(empleado[i].codigo,empleado[i+1].codigo);
}
}
v--;//ya que se borro una posicion disminuye en uno el numero de empleados
}
void consultar_datos(){
int pos;
do{
printf("Escriba la posicion del empleado cuyos datos desea
consultar:");
scanf("%i",&pos);
if(pos<0||pos>v)
printf("Esa posicion no existe, digite una posicion entre 0 y
%i.",v);
}
while(pos<0||pos>v);
printf("\n%s\n%s\n%s\n%s\n%f\n
%s\n",empleado[pos].nombre,empleado[pos].apellido,empleado[pos].sexo,e
mpleado[pos].direccion,empleado[pos].telefono,empleado[pos].codigo);
}
void Empleados(int pos){
printf("\nDigite los nombres del empleado:");
scanf("%s",&empleado[pos].nombre);
printf("\nDigite los apellidos del empleado:");
scanf("%s",&empleado[pos].apellido);
printf("\nDigite el sexo del empleado:");
scanf("%s",&empleado[pos].sexo);
printf("\nDigite la direccion del empleado:");
scanf("%s",&empleado[pos].direccion);
printf("\nDigite el telefono del empleado:");
scanf("%f",&empleado[pos].telefono);
printf("\nDigite el codigo del empleado:");
scanf("%s",&empleado[pos].codigo);
v++;//se agregaron nuevos datos entonces se aumenta en uno el numero de
empleados en el vector.
}

Вам также может понравиться