 
			
				15/03/2008, 20:51
			
			
			     |  
        |     |    |    Fecha de Ingreso: marzo-2008  
						Mensajes: 23
					  Antigüedad: 17 años, 7 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; 
}                |