• Martes 15 de Julio de 2025, 03:21

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - tany666

Páginas: [1]
1
C/C++ / Necesito ayuda porfavor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 12:38 »
nECEITO QUE EN VEZ DE QUE LA INFORMACION VAYA A FICHEROS , ESTE ECHO IGUAL CON ESTRUCTURAS Y PUNTEROS
O SI TIENES UN PROGRAMA SIMILAR A ESTE CON ESTRUCTURAS Y PUNTEROS ME LE DEJES.
GRACIASSSSSSSSSSS

2
C/C++ / Re: Necesito ayuda porfavor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 10:16 »
Necesito ayuda para modificar este código de estructuras y ficheros para pasaarlo a estructuras con punteros. Todo igual pero cambiando los ficheros por punteros.
Porfavor me juego mucho.
Muchas graciasssssssssss.
El código es:


#include <conio.h>
#include <stdio.h>
#define MAX 1000
#define LV 15

unsigned char menu();
void altas();
void bajas();
void modificaciones();
void consultas();
void pantalla_datos();
void cabeceras();
struct limites desde_hasta();
char pregunte_s_n(char *);
char tipos[5][25]={"contado","normal","preferente","especial","extra"};
int descuentos[5]={0,5,10,20,30};
struct cliente
{
  char nombre[15];
  char direccion[30];
  int tipo;
  char control_alta;
};
struct limites
{
  int inicio;
  int fin;
};

main()
{
  unsigned char opcion;
  while(toupper(opcion=menu())!='F')
  {
    switch(opcion)
    {
      case '1':altas();
      break;
      case '2':bajas();
      break;
      case '3':modificaciones();
      break;
      case '4':consultas();
      break;
    }
  }
}

unsigned char menu()
{
  unsigned char op;
  clrscr();
  gotoxy(10,10);printf("MENU DE MANTENIMIENTO");
  gotoxy(10,11);printf("=====================");
  gotoxy(14,14);printf("1-->Altas");
  gotoxy(14,15);printf("2-->Bajas");
  gotoxy(14,16);printf("3-->Modificaciones");
  gotoxy(14,17);printf("4-->Consultas");
  gotoxy(14,20);printf("F-->Fin");
  gotoxy(10,23);printf("Introduzca opcion:");
  while(op=toupper(getch()),(op<'1'||op>'4')&&op!='F');
  return(op);
}

void altas()
{
  FILE *canal;
  struct cliente cli;
  int num_cli;
  while((canal=fopen("CLIENTES","r+b"))==NULL)
  {
    canal=fopen("CLIENTES","wb");
    fclose(canal);
  }
  do
  {
   pantalla_datos();
   gotoxy(21,7);
   do
   {
     gotoxy(21,7);printf("      ");
     gotoxy(21,7);scanf("%d",&num_cli);
   }while(num_cli<1||num_cli>MAX);
   cli.control_alta='0';
   fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
   fread(&cli,sizeof(struct cliente),1,canal);
   if(cli.control_alta=='1')
   {
     gotoxy(10,20);printf("Cliente ya existente");
     continue;
   }
   gotoxy(21,9);scanf("%s",cli.nombre);
   gotoxy(21,11);scanf("%s",cli.direccion);
   do
   {
     gotoxy(21,13);printf("      ");
     gotoxy(21,13);scanf("%d",&cli.tipo);
   }while(cli.tipo<1||cli.tipo>5);
   gotoxy(25,13);printf("Cliente %s",tipos[cli.tipo-1]);
   gotoxy(65,13);printf("%d",descuentos[cli.tipo-1]);
   if(pregunte_s_n("Correcto?(S/N):")=='S')
   {
    cli.control_alta='1';
    fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
    fwrite(&cli,sizeof(struct cliente),1,canal);
   }
  }while(pregunte_s_n("M s altas?(S/N):")=='S');
  fclose(canal);
}

void bajas()
{
  FILE *canal;
  struct cliente cli;
  int num_cli;
  while((canal=fopen("CLIENTES","r+b"))==NULL)
  {
    canal=fopen("CLIENTES","wb");
    fclose(canal);
  }
  do
  {
   pantalla_datos();
   gotoxy(21,7);
   do
   {
    gotoxy(21,7);printf("      ");
    gotoxy(21,7);scanf("%d",&num_cli);
   }while(num_cli<1||num_cli>MAX);
   cli.control_alta='0';
   fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
   fread(&cli,sizeof(struct cliente),1,canal);
   if(cli.control_alta!='1')
   {
    gotoxy(10,20);printf("Cliente no existente");
    continue;
   }
   gotoxy(21,9);printf("%s",cli.nombre);
   gotoxy(21,11);printf("%s",cli.direccion);
   gotoxy(21,13);printf("%d",cli.tipo);
   gotoxy(25,13);printf("Cliente %s",tipos[cli.tipo-1]);
   gotoxy(65,13);printf("%d",descuentos[cli.tipo-1]);
   if(pregunte_s_n("Confirma la baja?(S/N):")=='S')
   {
    cli.control_alta='0';
    fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
    fwrite(&cli,sizeof(struct cliente),1,canal);
   }
  }while(pregunte_s_n("M s bajas?(S/N):")=='S');
  fclose(canal);
}

void modificaciones()
{
  FILE *canal;
  struct cliente cli;
  int num_cli;
  while((canal=fopen("CLIENTES","r+b"))==NULL)
  {
    canal=fopen("CLIENTES","wb");
    fclose(canal);
  }
  do
  {
    pantalla_datos();
    gotoxy(21,7);
    do
    {
       gotoxy(21,7);printf("      ");
       gotoxy(21,7);scanf("%d",&num_cli);
    }while(num_cli<1||num_cli>MAX);
    cli.control_alta='0';
    fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
    fread(&cli,sizeof(struct cliente),1,canal);
    if(cli.control_alta!='1')
    {
      gotoxy(10,20);printf("Cliente no existente");
      continue;
    }
    gotoxy(21,9);printf("%s",cli.nombre);
    gotoxy(21,11);printf("%s",cli.direccion);
    gotoxy(21,13);printf("%d",cli.tipo);
    gotoxy(25,13);printf("Cliente %d",tipos[cli.tipo-1]);
    gotoxy(65,13);printf("%d",descuentos[cli.tipo-1]);
    if(pregunte_s_n("Modificar nombre?(S/N):")=='S')
    {
      gotoxy(21,9);printf("      ");
      gotoxy(21,9);scanf("%s",cli.nombre);
    }
    if(pregunte_s_n("Modificar direccion?(S/N):")=='S')
    {
      gotoxy(21,11);printf("      ");
      gotoxy(21,11);scanf("%s",cli.direccion);
    }
    if(pregunte_s_n("Modificar tipo?(S/N):")=='S')
    {
       gotoxy(21,13);printf("  ");
       gotoxy(25,13);printf("      ");
       gotoxy(65,13);printf("   ");
       do
       {
    gotoxy(21,13);printf("      ");
    gotoxy(21,13);scanf("%d",&cli.tipo);
       }while(cli.tipo<1||cli.tipo>5);
       gotoxy(25,13);printf("Cliente %s",tipos[cli.tipo-1]);
       gotoxy(65,13);printf("%d",descuentos[cli.tipo-1]);
    }
    if(pregunte_s_n("Confirma la modificacion?(S/N):")=='S')
    {
       fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
       fwrite(&cli,sizeof(struct cliente),1,canal);
    }
  }while(pregunte_s_n("M s modificaciones?(S/N):")=='S');
  fclose(canal);
}

void consultas()
{
 struct limites limite;
 FILE *canal;
 struct cliente cli;
 int num_cli,i;
 while((canal=fopen("CLIENTES","r+b"))==NULL)
 {
    canal=fopen("CLIENTES","wb");
    fclose(canal);
 }
 limite=desde_hasta();
 num_cli=limite.inicio;
 while(num_cli<=limite.fin)
 {
    i=0;
    cabeceras();
    while(i<LV&&num_cli<=limite.fin)
    {
      cli.control_alta='0';
      fseek(canal,(num_cli-1)*sizeof(struct cliente),SEEK_SET);
      fread(&cli,sizeof(struct cliente),1,canal);
      if(cli.control_alta=='1')
      {
   printf("%3d%-20s%-20s Cliente %-15s%2dn",num_cli,cli.nombre,
         cli.direccion,tipos[cli.tipo-1],descuentos[cli.tipo-1]);
   i++;
      }
      num_cli++;
    }
    if(pregunte_s_n("¨Continuar?(S/N):")=='N') break;
 }
 fclose(canal);
}

void pantalla_datos()
{
  clrscr();
  gotoxy(35,2);printf("DATOS DE CLIENTES");
  gotoxy(35,3);printf("=================");
  gotoxy(5,7);printf("N§ DE CLIENTE:");
  gotoxy(5,9);printf("    NOMBRE: ");
  gotoxy(5,11);printf("  DIRECCION: ");
  gotoxy(5,13);printf("     TIPO: ");
  gotoxy(50,13);printf("DESCUENTO(%):");
  gotoxy(3,16);printf("TIPOS DE CLIENTES:n");
  printf("1->contado,2->normal,3->preferente,4->especial,5->extra");
}

char pregunte_s_n(char *cadena)
{
  char respuesta;
  gotoxy(10,22);printf("%s",cadena);
  while(respuesta=toupper(getch()),respuesta!='S'&&respuesta!='N');
  gotoxy(10,22);printf("%50s","");
  return(respuesta);
}

struct limites desde_hasta()
{
   struct limites l;
   clrscr();
   gotoxy(10,10);printf("Visualizar desde:");scanf("%d",&l.inicio);
   if(l.inicio==0) l.inicio=1;
   gotoxy(10,12);printf("Visualizar hasta: ");scanf("%d",&l.fin);
   if(l.fin==0||l.inicio>l.fin||l.fin>MAX) l.fin=MAX;
   clrscr();
   return l;
}

void cabeceras()
{
  clrscr();
  printf("%-20s %-28s %-10s %12sn","NOMBRE","DIRECCION","TIPO","DESCUENTO");
  printf("=======================================================================n");
}

3
C/C++ / POR FAVOR ES MUY IMPORTANTE¡¡¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 09:18 »
BORCA muchisimas gracias por todo, pero en realidad no eran listas eran punteros a estructuras, pero bueno no pasa nada muchas gracias.
UN BESAZO MUAKKKKK:D:D:D:D

4
C/C++ / Re: POR FAVOR ES MUY IMPORTANTE¡¡¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 09:17 »
Citar
si esto te puede servir mas bien como ejemplo y mirar como funcionan las listas...este ejemplo es de listas circulares
:


# ifndef PA_h
# define PA_h

#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>

#define TIPO int

typedef struct nodo
{
   TIPO info;
   struct nodo *enlace;
   struct nodo *enlace1;
}LISTA;



int menu(void);


void inserta_final(LISTA **ptr, char elemento);
void inserta_or(LISTA **ptr,LISTA **p, char elemento);
void orden(LISTA **ptr,LISTA **p);
void elim_ele_lista(LISTA **ptr);
void buscar_ele(LISTA **ptr,LISTA **p, char elemento);
void mostrar_elementos(LISTA **ptr,LISTA **p);




void inserta_final(LISTA **ptr,LISTA **p, char elemento)
{
   LISTA *p1, *p2,*aux;

   p1 = *ptr;
   if(p1 == NULL)
   {
      p1 = new(LISTA);
      if (p1 != NULL)
      {
         p1->info    = elemento;
         p1->enlace  = p1;
         p1->enlace1 = p1;

         *ptr = p1;
         *p   = p1;
      }
   }
   else
   {     aux=p1;

      while(p1->enlace != aux)
         p1 = p1->enlace;
      p2 = new(LISTA);
      if(p2 != NULL)
      {
         p2->info = elemento;
         p2->enlace = aux;
         p1->enlace = p2;
         p2->enlace1 = p1;
         aux->enlace1 =p2;
         *p = p2;
      }
   }
}


int menu(void)
{
   int car;
   clrscr();
   printf("n  opcion 1 insertar final elementos en la lista ");
   printf("n  opcion 2 sacar un elemento de la lista");
   printf("n  opcion 3 insertar ordenadamente");
   printf("n  opcion 4 ordenar inserci¢n");
   printf("n  opcion 5 buscar elemento");
   printf("n  opcion 6 mostrar elementos");
   printf("n  opcion 7 Exitn");
   do{
   car=getche();

   }while(car<49||car>55);
   return car;
}

void elim_ele_lista(LISTA **ptr,LISTA **p)
{
      LISTA *aux,*aux1,*aux2;

      aux=*ptr;

    if(aux!=NULL){
            if(aux->enlace!=aux){
            *ptr=aux->enlace;
            aux1=*ptr;
            aux1->enlace1=aux->enlace1;
            aux2=*p;
            aux2->enlace=aux1;
            printf("nnEl elemento eliminado es %c",aux->info);
               delete(aux);
            }

         else
            {
               printf("nnEl elemento eliminado es %c",aux->info);
             delete(aux);
             *ptr=NULL;
               *p=NULL;
             }
          }
          else

               printf("Lista vac¡a");



}

void inserta_or(LISTA **ptr,LISTA **p, char elemento)
{
   LISTA *p1, *p2,*aux,*aux1;

   p1 = *ptr;

   if(p1 == NULL)
   {
      p1 = new(LISTA);
      if (p1 != NULL)
      {
         p1->info    = elemento;
         p1->enlace  = p1;
         p1->enlace1 = p1;

         *ptr = p1;
         *p   = p1;
      }
   }
   else
   {     aux=p1;
   p2 = new(LISTA);


if(elemento<p1->info)

{ if(p1->enlace==aux)

   {
      *ptr=p2;
    p2->info=elemento;
    p2->enlace= p1;
    p2->enlace1=p1;
    p1->enlace =p2;
    p1->enlace1=p2; }

    else
      {
         *ptr=p2;
         p2->info=elemento;
         p2->enlace=p1;
         aux1=*p;
         aux1->enlace=p2;
         p2->enlace1=aux1;
         p1->enlace1=p2;
       }}

    else{

      while(p1->enlace != aux)
   {      aux1=p1->enlace;
      if((p1->info<elemento&&elemento<aux1->info)||
      (p1->info==elemento||elemento==aux1->info))
      break;
      else
         p1 = p1->enlace;

         }



      if(p1->enlace==aux) {
         p2->info = elemento;
         p2->enlace = aux;
         p1->enlace = p2;
         p2->enlace1 = p1;
         aux->enlace1 =p2;
         *p = p2;
         }
      else {
      p2->info=elemento;
      aux1=p1->enlace;
      p1->enlace=p2;
      p2->enlace1=p1;
      p2->enlace=aux1;
      aux1->enlace1=p2;
      }
      }}
      }




void orden(LISTA **ptr,LISTA **p)
{
   LISTA *x3,*p1, *p2,*aux,*aux1,*x,*x1=NULL,*i=NULL,*j=NULL,*m;
   char elemento;




   x=*ptr;
   x3=x;

   if(*ptr!=NULL)
   {

do{
      p1=x1;

    elemento=x->info;

      if(p1==NULL)

   {
    p1=new(LISTA);

    p1->info=elemento;
    p1->enlace=p1;
    p1->enlace1=p1;

    i=p1;
    j=p1;

    x1=p1;

    }


   else{

   p2=new(LISTA);

   p2->info=elemento;


if(elemento<p1->info)

{
   aux1=p1->enlace1;
   p2->enlace=p1;
   p1->enlace1=p2;
   p2->enlace1=aux1;
   aux1->enlace=p2;
   i=p2;
   x1=p2;
}


else{

   while(p1->enlace!=x1)

    {
    aux=p1->enlace;

if((elemento>p1->info&&elemento<aux->info)||(elemento==p1->info))
    break;

else
    p1=p1->enlace;


}

if(p1->enlace!=x1)

{
   p2->enlace=aux;
   p2->enlace1=p1;
   p1->enlace=p2;
   aux->enlace1=p2;

}

else
   if(p1->enlace==x1)
   {
   p2->enlace1=p1;
   p1->enlace=p2;
   p2->enlace=x1;
   x1->enlace1=p2;
   j=p2;
   }


}
}

m=x->enlace;

delete(x);

x=m;

}
while(x!=x3);

printf("Ordenaci¢n con ‚xito");

*ptr=i;
*p=j;


}
else


printf("Lista Vac¡a");


}
void buscar_ele(LISTA **ptr,LISTA **p,char elemento)
{
      LISTA *aux,*aux1;

      aux=*ptr;

      aux1=*p;

      aux1=aux1
      ->enlace;

    if(aux!=NULL){
      while(aux->enlace!=aux1&&aux->info!=elemento){
               aux=aux->enlace;
               }
          if(aux->info==elemento) {
            printf("nnEl elemento es %c , ubicado en la posici¢n %p ",aux->info,aux);

               }
          else
          printf("nnEl elemento no existe");
            }

          else

               printf("nnLista vac¡a");



}


void mostrar_elementos(LISTA **ptr,LISTA **p)
{
      LISTA *aux,*aux1,*aux2;

      aux=*ptr;
      aux1=*p;

      aux1=aux1->enlace;

    if(aux!=NULL){

    printf("Los elementos son:nn");
      while(aux->enlace!=aux1){
            printf("El elemento %c , est  ubicado en la posici¢n %p n",aux->info,aux);
               aux=aux->enlace;
               }

            printf("El elemento %c , est  ubicado en la posici¢n %p n",aux->info,aux);
            }
         else

               printf("nnLista vac¡a");



}


# endif:D

5
C/C++ / Re: POR FAVOR ES MUY IMPORTANTE¡¡¡¡¡¡¡¡¡¡¡¡
« en: Miércoles 6 de Marzo de 2002, 09:38 »
PoR FAVOR NECESITO AYUDA URGENTEMENTE,NECESITO UN PROGRAMA DE ESTRUCTURAS DINAMICAS CON UN MENU CON VENTANAS Y FUNCIONES EN C++,DONDE SE PUEDAN INTRODUCIR,ELIMINAR,MODIFICAR..DATOS,PORFAVOR ES URGENTE, MUCHISIMAS GRACIAS :(

Páginas: [1]