15/03/2008, 20:51
|
| | | Fecha de Ingreso: marzo-2008
Mensajes: 23
Antigüedad: 16 años, 9 meses Puntos: 0 | |
Re: hacer una boleta Cita: //Genera un array de estructuras de 500 elementos
/* Programa que genera un array de estructuras de 500 elementos
en cada estructura se almacenan 4 datos de empleados
similar a una peque¤a base de datos*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
/*-----------------Definicion de tipo de la estructura---------------------*/
typedef struct datos_empleados{
float nemp;
char nombre[30];
int edad;
char domicilio[50];
struct datos_empleados *next;
}DATOS;
/*-----------------------Definicion de funciones---------------------------*/
void agregar(void);
void mostrar(DATOS *ptr);
void pornumero(DATOS *ptr);
void pornombre(DATOS *ptr);
int buscar(DATOS *ptr);
void eliminar(DATOS *ptr);
/*-------------------------Definicion de variables-------------------------*/
int i,j=0,J=0,n=0,z=0; //Contadores
char opc,op,E; //Variables de seleccion
DATOS *p,*base, *one,*paux; //Array de tipo DATOS y puntero a estructura
/*----------------------Inicio de funcion principal------------------------*/
main(){
clrscr();
do{ //ciclo para menu principal
clrscr();
printf("\t\t *****************MENU*****************");
printf("\n\n\n\n\n\t\t\t A.- Agregar Empleado.");
printf("\n\t\t\t B.- Ordenar Los Empleados.");
printf("\n\t\t\t C.- Mostrar Todos Los Empleados.");
printf("\n\t\t\t D.- Buscar Empleado.");
printf("\n\t\t\t E.- Eliminar Empleado.");
printf("\n\t\t\t S.- Salir.\n");
printf("\n\t\t\tSu opcion es: ");
scanf("%c",&opc);
opc=toupper(opc);
switch(opc){
case 'A':fflush(stdin); // Agrega registro a nuestra base de datos
agregar();
break;
case 'B': // Ordena los registro
p=one; clrscr();
if(one!=NULL){ //valida si hay datos o no
do{ //Ciclo de submenu
clrscr();
printf("\n\n\n\t\t Elija El Tipo De Ordenamiento ");
printf("\n\n\t\t A.- Por Numero De Empleado.");
printf("\n\t\t B.- Por Nombre De Empleado.");
printf("\n\t\t C.-(Volver al menu principal).");
printf("\n\n\t\t Cual es su opcion: "); fflush(stdin);
scanf("%c",&op); op=toupper(op);
switch(op){
case 'A':
/* pornumero(p); // ordenacion por numero
printf("\n LOS ELEMENTOS HAN SIDO ORDENADOS CON EXITO PRESIONE UNA TECLA PARA CONTINUAR...");
printf("\n\t\t LUEGO PRESIONE (C) PARA VOLVER AL MENU PRINCIPAL... ");
getch(); */
break;
case 'B': /* // ordenacion por nombre
pornombre(p);
printf("\n LOS ELEMENTOS HAN SIDO ORDENADOS CON EXITO PRESIONE UNA TECLA PARA CONTINUAR...");
printf("\n\t\t LUEGO PRESIONE (C) PARA VOLVER AL MENU PRINCIPAL... ");
getch(); */
break;
}
}while(op!='C');
}
else if(j==1){
printf("\n\n\tSolo existe un elemento no es necesario ordenar...");
printf("\n\tPresione una tecla par volver...");getch();
}
else{
printf("\n\n\t No existen elementos actualmente, no es posible ordenar...");
printf("\n\tPresione una tecla par volver..."); getch();}
break;
case 'C': //Muestra los datos del registro
clrscr();
if(one!=NULL){ //valida si hay datos o no
J=0;
p=one;
fflush(stdin);
for(i=0;p!=NULL;i++) { //ciclo que llama a funcion mostrar()
mostrar(p);p=p->next; J++;
if(J>=4){ J=0;
printf("\t\t VER SIGUIENTES....");
getch();
clrscr();
} }
printf("\n\t PRESIONE UNA TECLA PARA CONTINUAR..."); }
else{
printf("\n\n No existen registros actualmente para mostrar.");
}
getch();
break;
case 'D': //busca un registro en el array base
clrscr();
if(one!=NULL){ //valida si hay datos o no
p=one;
buscar(p);}
else{
printf("\n\n\t No existen registros actualmente para buscar.");
getch();
}
break;
case 'E': //Busca el registro seleccionado y lo elimina de la base
clrscr();
if(one!=NULL){ //valida si hay datos o no
z=buscar(p);
fflush(stdin);
if(z>=0){
printf("\n\n\t Seguro de que desea eliminar este elemento (s/n): "); scanf("%c",&E);
if(E=='s'||E=='S'){
eliminar(p);
printf("\n\t El registro se elimino exitosamente.");
printf("\n\t Presione una tecla para volver al menu principal.."); getch();
}
} }
else{
printf("\n\n\t No existen registro que eliminar");
printf("\n\t Presione una tecla para volver al menu principal..."); getch();
}
break;
}
}while(opc!='S'); //fin de ciclo menu principal
return 0;
} |