Rastreo de pedidos en una empresa de mensajería
Enviado por Jorge1986123 • 19 de Octubre de 2018 • Ensayo • 733 Palabras (3 Páginas) • 164 Visitas
Nombre: Jorge Marin Garcia
Nombre de la profesora: Ing. Alejandra Ivette Gálvez Basurto
Materia: Estructura de Datos
Carrera: Ing. Sistemas computacionales
Tema: Rastreo de pedidos en una empresa de mensajería
Fecha de entrega: 04 de marzo del 2018
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int max=0,ban=0;
struct treeNode{
struct treeNode *leftPtr;
int guia;
char remitente[1000];
char destinatario[1000];
char estado[1000];
char destino[1000];
struct treeNode *rightPtr;
};
typedef struct treeNode TREENODE;
typedef TREENODE *TREENODEPTR;
void registra(TREENODEPTR *treePtr,
int guia,char remitente[1000],char destinatario[1000],
char estado[1000],char destino[1000])
{
if(*treePtr == NULL)
{
*treePtr=malloc(sizeof(TREENODE));
if(*treePtr != NULL)
{
(*treePtr)->guia=guia;
strcpy((*treePtr)->remitente,
remitente);
strcpy((*treePtr)->destinatario,
destinatario);
strcpy((*treePtr)->estado,
estado);
strcpy((*treePtr)->destino,
destino);
(*treePtr)->leftPtr=NULL;
(*treePtr)->rightPtr=NULL;
}
else
printf("%d no insertado. No hay memoria disponible.\n",guia);
}
else{
if((guia)<((*treePtr)->guia))
registra(&((*treePtr)->leftPtr),
guia,remitente,destinatario,
estado,destino);
else
if((guia)>((*treePtr)->guia))
registra(&((*treePtr)->rightPtr),
guia,remitente,
destinatario,estado,destino);
else
printf("DUP");
}
}
void buscarGuia(TREENODEPTR treePtr,int guia){
if(treePtr !=NULL)
{
buscarGuia(treePtr->leftPtr,guia);
if((treePtr->guia)==(guia))
{
printf("\n\nGuia: %3d\n",treePtr->guia);
printf("Remitente: %s\n",treePtr->remitente);
printf("Destinatario: %s\n",treePtr->destinatario);
printf("estado: %s\n",treePtr->estado);
printf("Destino: %s\n",treePtr->destino);
ban=1;
}
buscarGuia(treePtr->rightPtr,guia);
}
}
void imprimir(TREENODEPTR treePtr)
{
if(treePtr !=NULL)
{
imprimir(treePtr->leftPtr);
printf("\n\nGuia: %3d\n",treePtr->guia);
printf("Remitente: %s\n",treePtr->remitente);
printf("Destinatario: %s\n",treePtr->destinatario);
printf("estado: %s\n",treePtr->estado);
printf("Destino: %s\n",treePtr->destino);
imprimir(treePtr->rightPtr);
}
}
void obtenerGuia(TREENODEPTR treePtr)
{
if(treePtr !=NULL)
{
obtenerGuia(treePtr->leftPtr);
if((treePtr->guia)>(max))
max=treePtr->guia;
obtenerGuia(treePtr->rightPtr);
}
}
int menu()
{
int op;
printf("\n1. Registrar envio\n");
printf("2. Rastrear envio\n");
printf("3. Imprimir\n");
printf("4. Salir\n\n");
printf("Seleccione la opcion deseada: ");
scanf("%d",&op);
return op;
}
int main()
{
int op,guia;
char remitente[1000]={"\0"},
destinatario[1000]={"\0"},
estado[1000]={"\0"},
destino[1000]={"\0"};
TREENODEPTR rootPtr=NULL;
srand(time(NULL));
do
{
op=menu();
switch(op)
{
case 1:
obtenerGuia(rootPtr);
guia=max+1;
printf("\nGuia: %d\n",guia);
printf("Remitente: \n");
fflush(stdin);
gets(remitente);
printf("\nDestinatario: \n");
fflush(stdin);
gets(destinatario);
printf("\nEstado: \n");
fflush(stdin);
gets(estado);
printf("\nDestino: \n");
fflush(stdin);
gets(destino);
registra(&rootPtr,
guia,remitente,destinatario,
estado,destino);
break;
case 2:
printf("Guia: \n");
scanf("%d",&guia);
buscarGuia(rootPtr,guia);
if(ban==0)
printf("\nGuia no encontrada...\n\n");
break;
case 3:imprimir(rootPtr);break;
case 4:printf("\nHasta pronto...\n\n");break;
default:printf("\nOpcion no valida...\n\n");break;
}
}while(op!=4);
return 0;
}
Nombre: Jorge Marin Garcia
Nombre de la profesora: Ing. Alejandra Ivette Gálvez Basurto
Materia: Estructura de Datos
Carrera: Ing. Sistemas computacionales
Tema: Rastreo de pedidos en una empresa de mensajería
Fecha de entrega: 04 de marzo del 2018
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int max=0,ban=0;
struct treeNode{
struct treeNode *leftPtr;
int guia;
char remitente[1000];
char destinatario[1000];
char estado[1000];
char destino[1000];
struct treeNode *rightPtr;
};
typedef struct treeNode TREENODE;
typedef TREENODE *TREENODEPTR;
void registra(TREENODEPTR *treePtr,
int guia,char remitente[1000],char destinatario[1000],
char estado[1000],char destino[1000])
{
if(*treePtr == NULL)
{
*treePtr=malloc(sizeof(TREENODE));
if(*treePtr != NULL)
{
(*treePtr)->guia=guia;
strcpy((*treePtr)->remitente,
remitente);
strcpy((*treePtr)->destinatario,
destinatario);
strcpy((*treePtr)->estado,
estado);
strcpy((*treePtr)->destino,
destino);
(*treePtr)->leftPtr=NULL;
(*treePtr)->rightPtr=NULL;
}
else
printf("%d no insertado. No hay memoria disponible.\n",guia);
}
else{
if((guia)<((*treePtr)->guia))
registra(&((*treePtr)->leftPtr),
...