• Miércoles 6 de Noviembre de 2024, 00:13

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 - AFRODITA

Páginas: [1]
1
C/C++ / Re: ME JUEGO EL CURSO¡¡¡¡¡¡¡¡¡¡
« en: Viernes 8 de Marzo de 2002, 12:53 »
OLLA QUIERO ALGO SIMILAR A ESTO:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>


typedef struct
{
   char *nombre;
   char *direccion;
   int edad;


}mao;


void introdatos(mao *p,int datos);
void borradatos(mao *p,int datos);
void modificadatos(mao *p,int datos);
void listadatos(mao *p,int datos);
void ventana();
void menu();


void main()
{
   ventana();
   mao *p;
   int datos=0,opc;
   p=(mao *)malloc (sizeof(mao));
   for(;;)
   {
      clrscr();
      menu();
      scanf ("%d",&opc);
      switch (opc)
      {
         case 1: datos++;
                 p=(mao *)realloc(p,datos*sizeof(mao));
                 introdatos(p,datos);break;
         case 2: listadatos(p,datos);break;
         case 3: modificadatos(p,datos);break;
         case 4: borradatos(p,datos);
                 datos--;
                 p=(mao *)realloc(p,datos*sizeof(mao));break;
                 case 5: exit(0);default:printf("ERROR");
      }
   }
   getch();
}

void introdatos(mao *p,int datos)
{
   char x[100],y[100],z[50];
   fflush(stdin);

   printf("Introduzca el nombre del cliente: ");
   gets(x);
   (&p[datos-1])->nombre=(char *)malloc(strlen(x)*sizeof(char));
   strcpy((&p[datos-1])->nombre,x);

   printf("Introduzca la direccion del cliente: ");
   gets(y);
   (&p[datos-1])->direccion=(char *)malloc(strlen(y)*sizeof(char));
   strcpy((&p[datos-1])->direccion,y);

   printf("Introduzca la edad del cliente: ");
   scanf("%d",&(&p[datos-1])->edad);


}

void borradatos(mao *p,int datos)
{
   int i,d;
   printf("Introduzca el cliente que desee eliminar(entre 0 y %d): ",datos-1);
   scanf("%d",&i);
   printf("El cliente a eliminar es %sn",i,(&p)->nombre);
   for(d=i;d<datos-1;d++)
      p[d]=p[d+1];
   getch();
}

void modificadatos(mao *p,int datos)
{
   int i;
   fflush(stdin);

   printf("Introduzca el cliente que desee modificar(entre 0 y %d): ",datos-1);
   scanf("%d",&i);
   printf("El cliente a modificar es %sn",i,(&p)->nombre);

   printf("Introduzca el nombre : ");
   gets((&p)->nombre);
   gets((&p)->nombre);

   printf("Introduzca la direccion: ");
   gets((&p)->direccion);

   printf("Introduzca la edad: ");
   scanf("%d",&((&p)->edad));


}

void listadatos(mao *p,int datos)
{
   int i;
   printf("Los clientes introducidos son:n");
   for(i=0;i<datos;i++)

   printf("nNombre: %sn Direccion: %sn Edad: %dn",(&p)->nombre,(&p)->direccion,(&p)->edad);
   getch();
}
void ventana()
{
   window(1,1,80,25);
   textbackground(13);
   textcolor(BLACK);
   clrscr();
}
void menu ()
{
   printf("nnnnnn************MENU*************n");
   printf("1)Introducir clientesn");
   printf("2)Listar clientesn");
   printf("3)Modificar clientesn");
   printf("4)Borrar clientesn");
   printf("5)Salirn");
}

PERO CON UN POCO MAS DE MANDANGA, PERO ES QUE YO ME PONGO HA MODIFICARLE Y ME DAN 200 ERRORES.
PORFAAAAAAAA

2
C/C++ / Re: ME JUEGO EL CURSO¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 14:23 »
Gracias pero lo que pasa que esa funcion ya la tenia yo puesta no se si estará en su sitio pero los errores me los sigue dando asi que no se, pero es que me vale 3 puntos esto sobre la nota, porfaaaaaaaaaaa
buaaaaaaaaaaaaaaaaa

3
C/C++ / Re: Pero que es esto?
« en: Jueves 7 de Marzo de 2002, 14:13 »
OLLA con todo lo que sabes y lo bien que programas pq no lo utilizas para ayudarme un poco, anda porfavor; si te resulta tan fácil pq no me enseñas un poco. o me dejas un programa de ejemplo, o me dices una pagina donde haya problemas de ejemplo de este tipo pq los he buscao y no he encontrado nada.:D:D:D:D

4
C/C++ / Re: ME JUEGO EL CURSO¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 14:06 »
Me lo he currado y mucho pero me salen como 16 errores de asignacion de memoria, entonces ya he desistido y lo he buscado en 100000 pags de internet pero na de na, y solo pido un poco de ayuda para modificar este programa, solo cambiar los ficheros por puntero no pido tanto.

5
C/C++ / Re: ME JUEGO EL CURSO¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 13:58 »
Siento contestarte olla que no lo llevo tan mal pero lo que pasa es que la programación no es mi fuerte aunque no lo lleve muy bien,pero es que lo de los punteros es horroroso, asi que si porfavor sabes ayudame anda¡¡¡¡

6
C/C++ / Re: ME JUEGO EL CURSO¡¡¡¡¡¡¡¡¡¡
« en: Jueves 7 de Marzo de 2002, 13:07 »
LO SIENTO PERO ESTO ES IMPORTANTE NECESITO UN PROGRAMA CON UN MENU  CON PUNTEROS,ESTRUCTURAS Y ARRAYS PARA APROBAR LA ASIGNATURA, ES IMPORTANTE, ALGO SIMILAR A ESTO PERO CON ESTRUCTURAS O PUNTEROS O ESTE MISMO QUITANDO LO DE FICHEROS Y REMPLAZANDOLOS POR PUNTEROS A ESTRUCTURAS:

#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");
}





:P:P:P:P:(:(:(

7
Otras Bases de Datos / Re: iMPORTANTE
« en: Jueves 7 de Marzo de 2002, 13:03 »
NECESITARIA UNA BASE DE DATOS ENTERA SENCILLITA:MODELO RELACIONAL,E-R,CONSULTAS.... O UN LIBRO INTERESANTE DE DONDE PODER SACARLO. ES MUY IMPORTANTE.
GRACIAS

Páginas: [1]