Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - juanks92

#1
Programación C/C++ / Ayuda guardar archivos
28 Mayo 2013, 20:17 PM
Hola que tal tengo este programa y quiero guardarlo en archivos alguien me puede decir por que no corre el programa solo quiero saber de la opcion de guardar se que el programa no es el mejor pero soy un principiante gracias



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

struct alumnos
{
       char nombre[10];
       char estado [5];
       int edad;
};

alumnos lista[10];

int i=1;
int b,c,ver,j,w,x,op,h,nn;


alumnos altas();
alumnos bajas();
alumnos cambios();
alumnos despliegues();
alumnos guardar();

int main()

   {
    int t;
        FILE *archivo;
        char caracter;
        char nom[10];
        int edad1;

        archivo = fopen("Final.txt","r");

        if (archivo == NULL)
          {

           printf("\nError de apertura del archivo. \n\n");
          }
        else
          {
             int h=0;
             char texto[10];
             int zenb;
             while(fgets(lista[h].nombre, 10, archivo))
             {
               printf("%s", lista[h].nombre);
               fgets(texto,10,archivo);
               sscanf(texto,"%d",&zenb);
               lista[h].edad=zenb;             
               printf("%d", lista[h].edad);
               h++;
                       
             }
              fclose(archivo);
              nn=h;
              printf("%d", nn);
              getch();
          }

   do
   {
   printf("\nseleccione una de las opciones\n1.-altas===========>1\n2.-bajas===========>2\n3.-cambios=========>3\n4.-despliegues=====>4\n");
   scanf("%d",&op);
   system("cls");

       switch (op)
      {
        case 1: do
          {
           altas();
           printf("\n¿Quiere dar de alta ha alguien mas?\n");
           printf("Si la respuesta es si presione 1\npara salir presione 2\n");
           scanf("%d",&h);
          }while(h==1);
           break;
        case 2: bajas(); break;
        case 3: cambios(); break;
        case 4: despliegues(); break;
      }
    printf("Presione 1 para regresar al menu anterior\nPresione alt F4 para salir\n");
    scanf("%d",&x);

   }while(x==1);

  }
alumnos altas()
   {
    printf("Nombre:\n ");
    scanf("%s",&lista.nombre);
    system("cls");
    FILE *fp;
     fp = fopen ("Final.txt", "a" );
     printf("Edad:\n ");
    scanf("%d",&lista.edad);
    system("cls");
    printf("Estado:\n ");
    scanf("%s",&lista.estado);
     fprintf(fp,"%s\n",lista.nombre);
     fprintf(fp,"%d\n",lista.edad);
     fprintf(fp,"%s\n",lista.estado);
       
    system("cls");
     fclose ( fp );
     alumnos guardar();
     getch();

    i++;
   
    }   

  alumnos bajas()
   {
     printf("alumno que desea dar de baja\n");
     scanf("%d",&b);
     strcpy(lista.estado,"baja");
     alumnos guardar();
   }

  alumnos cambios()
   {
     printf("Que alumno desea modificar\n");
     scanf("%d",&c);
     printf("Datos actuales:\nnombre: %s\n",lista[c].nombre);
     printf("edad: %d\n",lista[c].edad);
     printf("estado:%s",lista[c].estado);

     printf("\nIngresar nuevos datos");
     printf("\nNombre: ");
     scanf("%s",&lista[c].nombre);
     system("cls");
     printf("Edad:");
     scanf("%d",&lista[c].edad);
     system("cls");
     printf("Estado:");
     scanf("%s",&lista[c].estado);
     system("cls");
   }

  alumnos despliegues()
   {
     printf("Presione 1 para ver un dato\nPresione otra tecla para ver todos los datos\n");
     scanf("%d",&ver);
     fflush(stdin);
     if (ver==1)
       {
       printf("Alumno al cual quiere visualizar\n");
       scanf("%d",&w);
       printf("nombre: %s\n",lista[w].nombre);
       printf("edad: %d\n",lista[w].edad);
       printf("estado: %s\n",lista[w].estado);
       }
     else
       {
       printf("Todos los datos son:\n");
       for (j=1;j<=i;j++)
         {
           printf("nombre: %s\n",lista[j].nombre);
           printf("edad: %d\n",lista[j].edad);
           printf("estado: %s\n",lista[j].estado);
         }
       }
      
      }

// Esta parte no me funciona        
   alumnos guardar()
{
     FILE *fp;
     fp = fopen ("Final.txt", "w" );
      for(i=0;i<nn;i++)
            {                                 
                  if(lista.estado!=1){
                  fprintf(fp,"%s\n",lista.nombre);
                  fprintf(fp,"%d\n",lista.edad);
                  fprintf(fp,"%d\n",lista.estado);
                  }
            }
     fclose ( fp );
}
     



#2
Programación C/C++ / Archivos
13 Mayo 2013, 18:29 PM
Hola que tal hice un programa de altas, bajas, despliegues y cambios y si funciona pero ahora me pidieron usarlo en archivos el programa tiene q dar de alta y guardar los datos si cierro el programa tiene q guardar esos datos al usar despliegues y si quiero hacer cambios tiene q guardar esos cambios alguien que me pueda ayudar aqui esta el programa de altas y bajas


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

struct alumnos
{
       char nombre[10];
       char estado [5];
       int edad;
};

alumnos lista[10];

int i=1;// variable altas y despliegues
int b; // variable bajas
int c; // variable cambios
int ver,j,w ; //variables despliegues
int x; // variable while(despliegues)
int op; // switch
int h; // variable while (switch)


alumnos altas();
alumnos bajas();
alumnos cambios();
alumnos despliegues();

main()
{
   do
   {
   printf("\nseleccione una de las opciones\n1.-altas\n2.-bajas\n3.-cambios\n4.-despliegues\n");
   scanf("%d",&op);

       switch (op)
      {
        case 1: do
          {
           altas();
           printf("¿Quiere dar de alta ha alguien mas?\n");
           printf("Si la respuesta es si presione 1\npara salir presione 2\n");
           scanf("%d",&h);
          }while(h==1);
           break;
        case 2: bajas(); break;
        case 3: cambios(); break;
        case 4: despliegues(); break;
      }
    printf("Presione 1 para regresar al menu anterior\nPresione alt F4 para salir\n");
    scanf("%d",&x);

   }while(x==1);

  }
alumnos altas()
   {
    printf("Nombre: ");
    scanf("%s",&lista.nombre);
    printf("Edad: ");
    scanf("%d",&lista.edad);
    printf("Estado: ");
    scanf("%s",&lista.estado);
    i++;
   }

  alumnos bajas()
   {
     printf("alumno que desea dar de baja\n");
     scanf("%d",&b);
     strcpy(lista.estado,"baja");
   }

  alumnos cambios()
   {
     printf("Que alumno desea modificar\n");
     scanf("%d",&c);
     printf("Datos actuales:\nnombre: %s\n",lista[c].nombre);
     printf("edad: %d\n",lista[c].edad);
     printf("estado:%s",lista[c].estado);

     printf("\nIngresar nuevos datos");
     printf("\nNombre: ");
     scanf("%s",&lista[c].nombre);
     printf("Edad:");
     scanf("%d",&lista[c].edad);
     printf("Estado:");
     scanf("%s",&lista[c].estado);
   }

  alumnos despliegues()
   {
     printf("Presione 1 para ver un dato\nPresione otra tecla para ver todos los datos\n");
     scanf("%d",&ver);
     if (ver==1)
       {
       printf("Alumno al cual quiere visualizar\n");
       scanf("%d",&w);
       printf("nombre: %s\n",lista[w].nombre);
       printf("edad: %d\n",lista[w].edad);
       printf("estado: %s\n",lista[w].estado);
       }
     else
       {
       printf("Todos los datos son:\n");
       for (j=1;j<=i-1;j++)
         {
           printf("nombre: %s\n",lista[j].nombre);
           printf("edad: %d\n",lista[j].edad);
           printf("estado: %s\n",lista[j].estado);
         }
       }
   }
#3
Programación C/C++ / Estructura de datos
22 Abril 2013, 23:20 PM
Tengo una duda ya me an estado corrigiendo ahora quiero saber por que todavia no me sigue compilando les agradeceria mucho

#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define max 5


struct alumno
{
   char  mat[10];
   char  nom[50];
   char  carrera[20];
   int   edad;
   
};

   int busqueda(alumno [10], char [20], int);
   void altas(struct alumno[10],int *);
   void bajas(struct alumno[10],int *);
   void cambios(struct alumno[10],int );
   void consultas(struct alumno[10],int );


  int main()
  {
       struct alumno students[10];
       int contador=0;
       char opcion;
       do
         {   
           system("cls")
           printf("1) Altas");
          printf("2) Bajas");
           printf("3) Cambios");
          printf("4) Consultas");
          printf("5) Salida");
          printf("Opcion [ ]\b\b");
          opcion=getch();
          switch(opcion)
                                     {
                                       case '1': altas(students,&contador); break;
                                        case '2': bajas(students,&contador); break;
                                       case '3': cambios(students,contador); break;
                                       case '4': consultas(students,contador); break;
                                       case '5': break;
                                       default: printf("Opcion no valida");
                                        getch();
                                      }
        }
       
       while(opcion!='5');


     int busqueda( struct alumno stu[], char llave[], int n)
                                             {
                                               int i;
                                               for (i=0; i<n; i++)
                                               if (strcmpi (stu.mat,llave)==0)
                                              return(i);
                                               return (-1);
                                             }

     void altas (struct alumno stu[], int *c)
                                                      {
                                                        int ban;
                                                        char temp[10];
                                                        float aux;
                                                        system("cls")
                                                        if (*c <max)
                                                                        { 
                                                                          do
                                                                             {
                                                                               clrscr();
                                                                              printf("Matricula: ");
                                                                              fflush(stdin);// limpia el buffer de entrada de datos, sirve para cuando necesitas tomar muchos datos seguidos y se generan saltos de línea automáticos que se guardan en este buffer.
                                                                               gets(temp);
                                                                              ban=busqueda(stu,temp,*c);
                                                                              if (ban!=-1)
                                                                                                         {
                                                                                                           printf("Ya existe.");
                                                                                                           getch();

                                                                                                          }
                                                                             }
                                                                         
                                                                          while (ban!=-1);
                                                                          strcpy(stu[*c].mat, temp);
                                                                          printf("Nombre: ");  gets(stu[*c].nom);
                                                                          printf("Carrera: "); gets(stu[*c].carrera);
                                                                          printf("Edad: "); scanf("%d",&stu[*c].edad);
     
                                                                        }

                                                        else
                                                             {
                                                               printf("No hay espacio suficiente");
                                                               getch();
                                                             }
                                                      }

     void bajas (struct alumno stu[], int *c)
                                              {
                                                int pos,i;
                                                char temp[10];
                                                system("cls")
                                                if (*c >0)
                                                               { 
                                                                 printf("Matricula: ");
                                                                 fflush(stdin);
                                                                 gets(temp);
                                                                 pos=busqueda(stu,temp,*c);
                                                                 if (pos!=-1)
                                                                                            {
                                                                                             for(i=pos;i<(*c)-1;i++)
                                                                                             stu=stu[i+1];
                                                                                             (*c)--;
                                                                                            }
                                                                 else
                                                                      {
                                                                       printf("No se encontro");
                                                                       getch();
                                                                      }
                                                               }
                                                else
                                                     {
                                                       printf("No hay datos");
                                                       getch();
                                                     }
                                              }


     void consultas(struct alumno stu[], int c)
                                                {
                                                  int pos,i;
                                                  char temp[10];
                                                  system("cls")
                                                  if (c >0)
                                                                  { 
                                                                    printf("Matricula: ");
                                                                    system("cls")
                                                                    fflush(stdin);
                                                                    gets(temp);
                                                                    pos=busqueda(stu,temp,c);
                                                                    if (pos!=-1)
                                                                                               {
                                                                                                printf("\nMatricula: %s",stu[pos].mat);
                                                                                                printf("\nNombre: %s", stu[pos].nom);
                                                                                                printf("\nCarrera: %s", stu[pos].carrera);
                                                                                                printf("\nEdad: %d", stu[pos].edad);
                                                                                                getch();
                                                                                               }
                                                                    else
                                                                         {
                                                                          printf("No se encontro");
                                                                          getch();
                                                                         }
                                                                  }
                                                  else
                                                        {
                                                          printf("No hay datos");
                                                          getch();
                                                        }
                                                }

     void cambios(struct alumno stu[], int c)
                                              {
                                                int pos;
                                                char temp[10],campo;
                                                float aux;

                                                system("cls")
                                                if (c >0)
                                                                     { 
                                                                       printf("Matricula: ");
                                                                       fflush(stdin);
                                                                       gets(temp);
                                                                       pos=busqueda(stu,temp,c);
                                                                       if (pos!=-1)
                                                                                                 {
                                                                                                  do
                                                                                                    { 
                                                                                                       system("cls")
                                                                                                      printf("--- Datos Actuales ---");
                                                                                                      printf("Matricula: %s",stu[pos].mat);
                                                                                                      printf("\nNombre: %s", stu[pos].nom);
                                                                                                      printf("\nCarrera: %s", stu[pos].carrera);
                                                                                                      printf("\nEdad: %d", stu[pos].edad);
                                                                                                      printf("\n \n Seleccione el campo que desea cambiar \n" );
                                                                                                      printf("1) Nombre");
                                                                                                      printf("2) Carrera");
                                                                                                      printf("3) Edad");
                                                                                                       printf("4) Regresar al menu Principal");
                                                                                                      printf("\nCampo: ");campo=getch();
                                                                                                      fflush(stdin);
                                                                                                      switch(campo)
                                                                                                                                                                 {
                                                                                                                                                                  case '1': printf("Nombre: ");  gets(stu[pos].nom); break;
                                                                                                                                                                  case '2': printf("Carrera: "); gets(stu[pos].carrera); break;
                                                                                                                                                                  case '3': printf("Edad: "); scanf("%d",&stu[pos].edad); break;
          
                                                                                                                                                                break;
                                                                                                                                                                  case '4': break;
                                                                                                                                                                 }
                                                                                                     }
                                                                                                   while (campo!='4');
                                                                                                 }
                                                                       else
                                                                            {
                                                                             printf("No se encontro");
                                                                             getch();
                                                                            }
                                                                     }
                                                else
                                                     {
                                                       printf("No hay datos");
                                                       getch();
                                                     }
                                              }

  }
#4
Programación C/C++ / estructura de datos
22 Abril 2013, 20:25 PM
Hola que tal me dejaron un proyecto de estructura de datos de dar altas y bajas al igual que modificaciones de alumnos pero al momento de compilar me marca error  en el primer printf alguien sabria decirme por que seria de mucha ayuda si me lo pueden resolver ya que no se que sea aqui esta el codigo:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define max 5


struct alumno{
   char  mat[10];
   char  nom[50];
   char  carrera[20];
   int   edad;
   
};

int busqueda(alumno [10], char [20], int);
void altas(struct alumno[10],int *);
void bajas(struct alumno[10],int *);
void cambios(struct alumno[10],int );
void consultas(struct alumno[10],int );


  int main()
{
   struct alumno students[10];
   int contador=0;
   char opcion;
   do
   {   system("cls")
    printf("1) Altas");
   printf("2) Bajas");
   printf("3) Cambios");
   printf("4) Consultas");
   printf("5) Salida");
   printf("Opcion [ ]\b\b");
   opcion=getch();
   switch(opcion)
   {
     case '1': altas(students,&contador); break;
     case '2': bajas(students,&contador); break;
     case '3': cambios(students,contador); break;
     case '4': consultas(students,contador); break;
     case '5': break;
     default: printf("Opcion no valida"); getch();
   }
   }while(opcion!='5');


int busqueda( struct alumno stu[], char llave[], int n)
{
  int i;

  for (i=0; i<n; i++)
      if (strcmpi (stu.mat,llave)==0)
     return(i);
  return (-1);
}

void altas (struct alumno stu[], int *c)
{
  int ban;
  char temp[10];
  float aux;

  system("cls")
  if (*c <max)
  {  do{ clrscr();
    printf("Matricula: ");
    fflush(stdin);// limpia el buffer de entrada de datos, sirve para cuando necesitas tomar muchos datos seguidos y se generan saltos de línea automáticos que se guardan en este buffer.


    gets(temp);
    ban=busqueda(stu,temp,*c);
    if (ban!=-1)
    {
       printf("Ya existe.");
       getch();

    }
  }while (ban!=-1);

       strcpy(stu[*c].mat, temp);
       printf("Nombre: ");  gets(stu[*c].nom);
       printf("Carrera: "); gets(stu[*c].carrera);
       printf("Edad: "); scanf("%d",&stu[*c].edad);
     
}

  else
  {
     printf("No hay espacio suficiente");
     getch();
  }


void bajas (struct alumno stu[], int *c)
{
  int pos,i;
  char temp[10];

  clrscr();
  if (*c >0)
  {  printf("Matricula: ");
     fflush(stdin);
     gets(temp);
     pos=busqueda(stu,temp,*c);
     if (pos!=-1)
     {
   for(i=pos;i<(*c)-1;i++)
      stu=stu[i+1];
   (*c)--;
     }
     else
     {
   printf("No se encontro");
   getch();
     }
  }
  else
  {
     printf("No hay datos");
     getch();
  }
}


void consultas(struct alumno stu[], int c)
{
  int pos,i;
  char temp[10];

  clrscr();
  if (c >0)
  {  printf("Matricula: ");
     clrscr();
     fflush(stdin);
     gets(temp);
     pos=busqueda(stu,temp,c);
     if (pos!=-1)
     {
   printf("\nMatricula: %s",stu[pos].mat);
   printf("\nNombre: %s", stu[pos].nom);
   printf("\nCarrera: %s", stu[pos].carrera);
   printf("\nEdad: %d", stu[pos].edad);
   getch();
     }
     else
     {
   printf("No se encontro");
   getch();
     }
  }
  else
  {
     printf("No hay datos");
     getch();
  }
}

void cambios(struct alumno stu[], int c)
{
  int pos;
  char temp[10],campo;
  float aux;

  clrscr();
  if (c >0)
  {  printf("Matricula: ");
     fflush(stdin);
     gets(temp);
     pos=busqueda(stu,temp,c);
     if (pos!=-1)
     {
   do
   {  clrscr();
      printf("--- Datos Actuales ---");
      printf("Matricula: %s",stu[pos].mat);
      printf("\nNombre: %s", stu[pos].nom);
      printf("\nCarrera: %s", stu[pos].carrera);
      printf("\nEdad: %d", stu[pos].edad);
      printf("\n \n Seleccione el campo que desea cambiar \n" );
      puts("1) Nombre");
      puts("2) Carrera");
      puts("3) Edad");
       puts("4) Regresar al menu Principal");
      printf("\nCampo: ");campo=getch();
      fflush(stdin);
      switch(campo)
      {
          case '1': printf("Nombre: ");  gets(stu[pos].nom); break;
          case '2': printf("Carrera: "); gets(stu[pos].carrera); break;
          case '3': printf("Edad: "); scanf("%d",&stu[pos].edad); break;
          
          break;
          case '4': break;
      }
   }while (campo!='4');
     }
     else
     {
   printf("No se encontro");
   getch();
     }
  }
  else
  {
     printf("No hay datos");
     getch();
  }
}

}
si encuentran otro error y lo localizan se los agradecere