Programa c++ para una empresa

Solo disponible en BuenasTareas
  • Páginas : 8 (1987 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de diciembre de 2011
Leer documento completo
Vista previa del texto
struct nodo
{
int num; // Número de cliente.
char nom[30]; // Nombre completo.
char dir[30]; // Dirección.
char ciu[30]; //Ciudad.
char est[30]; //Estado.
int nt; //Número telefónico.
float ps; //Consumo del primer semestre del año (en pesos).
float ss; //Consumo del segundo semestre del año (en pesos).
float an;
struct nodo *der;struct nodo *izq;
}; struct nodo *izquierda, *derecha, *nuevo, *aux, *men, *may, *men2, *may2, *ment, *mayt;

void primer_nodo(int a,char b[],char c[],char d[],char e[],int f,float g, float h)
{
izquierda=(struct nodo*)malloc(sizeof(struct nodo));
izquierda->num=a;
strcpy(izquierda->nom,b);
strcpy(izquierda->dir,c);
strcpy(izquierda->ciu,d);strcpy(izquierda->est,e);
izquierda->nt=f;
izquierda->ps=g;
izquierda->ss=h;
izquierda->der=NULL;
izquierda->izq=NULL;
derecha=izquierda;
derecha->der=NULL;
derecha->izq=NULL;
}

void crear_nodo(int a,char b[],char c[],char d[],char e[],int f,float g, float h)
{
nuevo=(struct nodo*)malloc(sizeof(struct nodo));
nuevo->num=a;
strcpy(nuevo->nom,b);strcpy(nuevo->dir,c);
strcpy(nuevo->ciu,d);
strcpy(nuevo->est,e);
nuevo->nt=f;
nuevo->ps=g;
nuevo->ss=h;

if (derecha->numder=NULL;
derecha->der=nuevo;
nuevo->izq=derecha;
derecha=nuevo;
}

else if (izquierda->num>a) //numero mas chico
{
nuevo->izq=NULL;
izquierda->izq=nuevo;
nuevo->der=izquierda;izquierda=nuevo;
}

else if ((izquierda->der==derecha)&&(derecha->izq==izquierda)) //cuando solo hay dos nodos
{
nuevo->izq=izquierda;
nuevo->der=derecha;
izquierda->der=nuevo;
derecha->izq=nuevo;


}
else //colocar entre dos numeros
{
aux=izquierda;while((aux->numder->numder;
}

aux->der->izq=nuevo;
nuevo->izq=aux;
nuevo->der=aux->der;
aux->der=nuevo;


}


}

float remove(int a) //Eliminar
{
struct nodo *elimina;
int y;
if (izquierda->der==NULL) //Eliminar unico numero
{
if(a==izquierda->num)
{
printf("\nEsta seguro de eliminar al cliente %d\n1.-Si\n2.-No\t",a); //opcion de confirmacion al eliminar
do{
scanf("%d",&y);
if((y!=1)&&(y!=2))
{
printf("\nOpcion invalida\n");
}
}while ((y!=1)&&(y!=2));

if (y==1)
{izquierda=NULL;
derecha=izquierda;
printf("El cliente número %d fue eliminado del sistema\n",a);
}
}
else
{
printf("Cliente no encontrado\n");
}
}

else
{
if (a==izquierda->num) //Eliminar el mas pequeño
{printf("\nEsta seguro de eliminar al cliente %d\n1.-Si\n2.-No\t",a); //opcion de confirmacion al eliminar
do{
scanf("%d",&y);
if((y!=1)&&(y!=2))
{
printf("\nOpcion invalida\n");
}
}while ((y!=1)&&(y!=2));

if (y==1)
{aux=izquierda->der;
elimina=izquierda;
free(elimina);
aux->izq=NULL;
izquierda=aux;
printf("El cliente número %d fue eliminado del sistema\n",a);
}
}

else if (a==derecha->num) //Eliminar el mas grande
{

printf("\nEsta seguro de eliminar al cliente...
tracking img