Codigo Alta de Alumnos

Iniciado por DJINVACION, 8 Noviembre 2007, 01:41 AM

0 Miembros y 1 Visitante están viendo este tema.

DJINVACION

Hola de nuevo, bueno gracias ha este foro y el manual que baje me he aventurado en C++ con dos compiladores Borland y Dev para un proyecto de la U. Aca pongo el codigo y las imagenes del error que me da cuando compilo

CODIGO:


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

typedef struct alumno{
   char nombre[20];
   char apellido[20];
   char direccion[30];
   char correoe[40];
   int nota;
Alumno();

/* Arreglo que almacena alumnos */
alumno[40];
/* Contiene el numero de alumnos actual */
int total = 0;

void cargar(), guardar(), insertar(Alumno info);
void ingresar(), buscar(), modificar(), eliminar(), ordenar(), mostrar();
char menu(void);

void main(void)
}

   clrscr();
   cargar();
   char op;

   for(;;)
   {
     switch(op=menu())
     {
        case '1':
           ingresar();
           getch();
           break;
        case '2':
           buscar();
           getch();
           break;
        case '3':
           modificar();
           getch();
           break;
        case '4':
           eliminar();
           getch();
           break;
        case '5':
           ordenar();
           getch();
           break;
        case '6':
           mostrar();
           getch();
           break;
        case '7':
           break;
        default :
           printf("Opcion no valida");
           getch();
           break;
     }

     if(op=='7') break;
     clrscr();
   }

   printf("Presione (g) para guardar los cambios: ");

   if(getche()=='g')
      guardar();
}


void insertar(Alumno info)
{
   strcpy(alumnos[total].nombre, info.nombre);
   strcpy(alumnos[total].direccion, info.direccion);
   alumnos[total].nota = info.nota;
   total++;
}

void cargar()
{
   Alumno info;
   FILE *fp;

   fp=fopen("alumnos.txt","r");
   if(fp==NULL)
   {
      printf("No se puede abrir el archivo\n");
      return;
   }

   while(!feof(fp))
   {
      if(fread(&info, sizeof(Alumno), 1, fp)!=1) break;
      insertar(info);
   }

   fclose(fp);
}

void guardar()
{
   Alumno info;
   FILE *fp;

   fp=fopen("alumnos.txt","w");
   if(fp==NULL)
   {
      printf("No se puede abrir el archivo\n");
      return;
   }

   for(int i=0; i<total; i++)
     fwrite(&alumnos[i], sizeof(Alumno), 1, fp);

   fclose(fp);
}

void ingresar()
{
   Alumno info;

   printf("Ingrese nombre: "); gets(info.nombre);
   printf("Ingrese direccion: "); gets(info.direccion);
   printf("Ingrese nota: "); scanf("%d", &(info.nota));
   insertar(info);
   printf("Alumno ingresado exitosamente");
}

void buscar()
{
   char nombre[20];
   int i;

   printf("Ingrese nombre a buscar: ");
   gets(nombre);

   for(i=0; i<total; i++)
      if(!strcmp(alumnos[i].nombre, nombre))
      {
printf("--- Datos del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos[i].nombre);
printf("Direccion: %s\n", alumnos[i].direccion);
printf("Nota: %d", alumnos[i].nota);

break;
      }

   if(i==total)
      printf("Alumno no encontrado");
}

void modificar()
{
   char nombre[20];
   int i;

   printf("Ingrese nombre a modificar: ");
   gets(nombre);

   for(i=0; i<total; i++)
      if(!strcmp(alumnos[i].nombre, nombre))
      {
printf("--- Datos actuales del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos[i].nombre);
printf("Direccion: %s\n", alumnos[i].direccion);
printf("Nota: %d\n\n", alumnos[i].nota);

         printf("--- Nuevos datos del alumno ---\n");
         printf("Ingrese nombre: "); gets(alumnos[i].nombre);
         printf("Ingrese direccion: "); gets(alumnos[i].direccion);
         printf("Ingrese nota: "); scanf("%d", &(alumnos[i].nota));

         printf("\n\nDatos actualizados exitosamente!");

         break;
      }

   if(i==total)
      printf("Alumno no encontrado");
}

void eliminar()
{
   char nombre[20];
   int i;

   printf("Ingrese nombre a eliminar: ");
   gets(nombre);

   for(i=0; i<total; i++)
      if(!strcmp(alumnos[i].nombre, nombre))
      {
         /* Recorre registros posteriores */
         for(int j=i+1; j<total; j++)
         {
            strcpy(alumnos[j-1].nombre, alumnos[j].nombre);
            strcpy(alumnos[j-1].direccion, alumnos[j].direccion);
            alumnos[j-1].nota = alumnos[j].nota;
         }

         printf("Alumno eliminado");
         total--;
         break;
      }

   if(i==total)
      printf("Alumno no encontrado");
}

void ordenar()
{
   int i, j;
   Alumno temp;

   for(i=0; i<total-1; i++)
   {
      for(j=i+1; j<total; j++)
      if(strcmp(alumnos[i].nombre, alumnos[j].nombre)>0)
      {
         /* Copia en variable temporal datos actuales */
         strcpy(temp.nombre, alumnos[i].nombre);
         strcpy(temp.direccion, alumnos[i].direccion);
         temp.nota = alumnos[i].nota;

         /* Intercambia informacion */
         strcpy(alumnos[i].nombre, alumnos[j].nombre);
         strcpy(alumnos[i].direccion, alumnos[j].direccion);
         alumnos[i].nota = alumnos[j].nota;

         strcpy(alumnos[j].nombre, temp.nombre);
         strcpy(alumnos[j].direccion, temp.direccion);
         alumnos[j].nota = temp.nota;
      }
   }
   printf("Se han ordenado los registros");
}

void mostrar()
{
   printf("--- Listado de alumnos ---\n");
   printf("Num. - Nombre - Direccion - Nota\n");
   for(int i=0; i<total; i++)
   {
      printf("%d - ", i+1);
      printf("%s - ", alumnos[i].nombre);
      printf("%s - ", alumnos[i].direccion);
      printf("%d\n", alumnos[i].nota);
   }
}


char menu(void)
{
   char c;
   printf("(1)Ingresar, (2)Buscar, (3)Modificar, (4)Eliminar, (5)Ordenar, (6)Mostrar lista\n(7)Salir\n");

   printf("Seleccion: ");
   c=getche();
   printf("\n");
   return(c);
}



Error que me sale:



Desde ya agradezco sus comentario para mejorar.

DJINVACION

Universal SAC

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

typedef struct {
   char nombre[20];
   char apellido[20];
   char direccion[30];
   char correoe[40];
   int nota;
} Alumno;

/* Arreglo que almacena alumnos */
Alumno alumno[40];
/* Contiene el numero de alumnos actual */
int total = 0;
~UNIVERSAL[HACK]

DJINVACION

Gracias, man pero de alli me salen otros errores

IMAGEN


Disculpa mi necedad pero este proyecto debo entregar el viernes y no se que hacer

desde ya gracias!!!!

alt_hack_f4

#3
Estas empezando y ya hiciste este codigo  :o... primero entiendelo bien, la mayoria de los errores q tienes es declarando y usando las estructuras de datos...


DJINVACION

pues de empezar empezar, no pero algunas cosas me las he estado investigando?.

Pero antes que nada ya logre resolverlo, que paso bueno tenia una llave cerrada sin antes tener una abierta.

pero estoy ahora investigando como se mueve el texto en devc++ (no me funciona el gotoxy).

Igual cuando lo termine que aqui son las 11:00 pm pues hasta que lo logre.


43H4FH44H45H4CH49H56H45H

Seria asi en TC++ y en Borland
#include <stdio.h>
#include <string.h>
#include <conio.h>

typedef struct {
  char nombre[20];
  char apellido[20];
  char direccion[30];
  char correoe[40];
  int nota;
} Alumno;

/* Arreglo que almacena alumnos */
Alumno alumnos [40];
/* Contiene el numero de alumnos actual */
int total = 0;
int i,j;

void cargar(), guardar(), insertar(Alumno info);
void ingresar(), buscar(), modificar(), eliminar(), ordenar(), mostrar();
char menu(void);

void main(void)
{
 char op;

  clrscr();
  cargar();


  for(;;)
  {
    switch(op=menu())
    {
case '1':
  ingresar();
  getch();
  break;
case '2':
  buscar();
  getch();
  break;
case '3':
  modificar();
  getch();
  break;
case '4':
  eliminar();
  getch();
  break;
case '5':
  ordenar();
  getch();
  break;
case '6':
  mostrar();
  getch();
  break;
case '7':
  break;
default :
  printf("Opcion no valida");
  getch();
  break;
    }

    if(op=='7') break;
    clrscr();
  }

  printf("Presione (g) para guardar los cambios: ");

  if(getche()=='g')
     guardar();
}


void insertar(Alumno info)
{
  strcpy(alumnos[total].nombre, info.nombre);
  strcpy(alumnos[total].direccion, info.direccion);
  alumnos[total].nota = info.nota;
  total++;
}

void cargar()
{
  Alumno info;
  FILE *fp;

  fp=fopen("alumnos.txt","r");
  if(fp==NULL)
  {
     printf("No se puede abrir el archivo\n");
     return;
  }

  while(!feof(fp))
  {
     if(fread(&info, sizeof(Alumno), 1, fp)!=1) break;
     insertar(info);
  }

  fclose(fp);
}

void guardar()
{
  Alumno info;
  FILE *fp;

  fp=fopen("alumnos.txt","w");
  if(fp==NULL)
  {
     printf("No se puede abrir el archivo\n");
     return;
  }

  for(i=0; i<total; i++)
    fwrite(&alumnos[i], sizeof(Alumno), 1, fp);

  fclose(fp);
}

void ingresar()
{
  Alumno info;

  printf("Ingrese nombre: "); gets(info.nombre);
  printf("Ingrese direccion: "); gets(info.direccion);
  printf("Ingrese nota: "); scanf("%d", &(info.nota));
  insertar(info);
  printf("Alumno ingresado exitosamente");
}

void buscar()
{
  char nombre[20];

  printf("Ingrese nombre a buscar: ");
  gets(nombre);

  for(i=0; i<total; i++)
     if(!strcmp(alumnos[i].nombre, nombre))
     {
printf("--- Datos del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos[i].nombre);
printf("Direccion: %s\n", alumnos[i].direccion);
printf("Nota: %d", alumnos[i].nota);

break;
     }

  if(i==total)
     printf("Alumno no encontrado");
}

void modificar()
{
  char nombre[20];

  printf("Ingrese nombre a modificar: ");
  gets(nombre);

  for(i=0; i<total; i++)
     if(!strcmp(alumnos[i].nombre, nombre))
     {
printf("--- Datos actuales del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos[i].nombre);
printf("Direccion: %s\n", alumnos[i].direccion);
printf("Nota: %d\n\n", alumnos[i].nota);

printf("--- Nuevos datos del alumno ---\n");
printf("Ingrese nombre: "); gets(alumnos[i].nombre);
printf("Ingrese direccion: "); gets(alumnos[i].direccion);
printf("Ingrese nota: "); scanf("%d", &(alumnos[i].nota));

printf("\n\nDatos actualizados exitosamente!");

break;
     }

  if(i==total)
     printf("Alumno no encontrado");
}

void eliminar()
{
  char nombre[20];

  printf("Ingrese nombre a eliminar: ");
  gets(nombre);

  for(i=0; i<total; i++)
     if(!strcmp(alumnos[i].nombre, nombre))
     {
/* Recorre registros posteriores */
for(j=i+1; j<total; j++)
{
   strcpy(alumnos[j-1].nombre, alumnos[j].nombre);
   strcpy(alumnos[j-1].direccion, alumnos[j].direccion);
   alumnos[j-1].nota = alumnos[j].nota;
}

printf("Alumno eliminado");
total--;
break;
     }

  if(i==total)
     printf("Alumno no encontrado");
}

void ordenar()
{
  Alumno temp;

  for(i=0; i<total-1; i++)
  {
     for(j=i+1; j<total; j++)
     if(strcmp(alumnos[i].nombre, alumnos[j].nombre)>0)
     {
/* Copia en variable temporal datos actuales */
strcpy(temp.nombre, alumnos[i].nombre);
strcpy(temp.direccion, alumnos[i].direccion);
temp.nota = alumnos[i].nota;

/* Intercambia informacion */
strcpy(alumnos[i].nombre, alumnos[j].nombre);
strcpy(alumnos[i].direccion, alumnos[j].direccion);
alumnos[i].nota = alumnos[j].nota;

strcpy(alumnos[j].nombre, temp.nombre);
strcpy(alumnos[j].direccion, temp.direccion);
alumnos[j].nota = temp.nota;
     }
  }
  printf("Se han ordenado los registros");
}

void mostrar()
{
  printf("--- Listado de alumnos ---\n");
  printf("Num. - Nombre - Direccion - Nota\n");
  for(i=0; i<total; i++)
  {
     printf("%d - ", i+1);
     printf("%s - ", alumnos[i].nombre);
     printf("%s - ", alumnos[i].direccion);
     printf("%d\n", alumnos[i].nota);
  }
}


char menu(void)
{
  char c;
  printf("(1)Ingresar, (2)Buscar, (3)Modificar, (4)Eliminar, (5)Ordenar, (6)Mostrar lista\n(7)Salir\n");

  printf("Seleccion: ");
  c=getche();
  printf("\n");
  return(c);
}


Esto por la libreria conio, si quieres hacerla correr en dev c++ u otro que no acepte conio cambia clrscr(); por system("cls")

Solo un comentario, el code tiene algunas fallas el momento de escribir los ficheros:S

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

43H4FH44H45H4CH49H56H45H

Cita de: DJINVACION en  8 Noviembre 2007, 06:05 AM
pues de empezar empezar, no pero algunas cosas me las he estado investigando?.

Pero antes que nada ya logre resolverlo, que paso bueno tenia una llave cerrada sin antes tener una abierta.

pero estoy ahora investigando como se mueve el texto en devc++ (no me funciona el gotoxy).

Igual cuando lo termine que aqui son las 11:00 pm pues hasta que lo logre.



Gotoxy esta en conio, para devc++ existe un emulador para ello pero no te servira de mucho, mejor usa borland si te gusta esa libreria, o cambiala esas funciones de lconio en otros compiladores por llamadas al sistema como mencione antes :)

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

DJINVACION

bueno hasta el momento Code_Live todo me salio bien, pero no se como calcular el promedio de cada alumno cuando utilice la opcion buscar

este es el codigo para insertar un alumno:
void insertar(Alumno info)
{
   strcpy(alumnos[total].carne, info.carne);
   strcpy(alumnos[total].nombre, info.nombre);
   strcpy(alumnos[total].direccion, info.direccion);
   strcpy(alumnos[total].correoe, info.correoe);
   alumnos[total].nota1 = info.nota1;
   alumnos[total].nota2 = info.nota2;
   alumnos[total].nota3 = info.nota3;
   alumnos[total].nota4 = info.nota4;
   alumnos[total].tot = info.tot; [color=red]/*Aqui debo sumar las 4 notas, no se como lo hago y a la vez lo guarge*/[/color]
   total++;
}


void buscar()
{
   char carne[11];
   int i;

   printf("Ingrese carnè a buscar: ");
   gets(carne);



   for(i=0; i<total; i++)
      if(!strcmp(alumnos[i].carne, carne))
      {
printf("--- Datos del alumno ---\n");
printf("Num.: %d\n", i+1);
    printf("Carné: %s\n", alumnos[i].carne);
printf("Nombre: %s\n", alumnos[i].nombre);
printf("Direccion: %s\n", alumnos[i].direccion);
printf("Correo: %s\n", alumnos[i].correoe);
printf("Nota1: %d", alumnos[i].nota1);
    printf("Nota2: %d", alumnos[i].nota2);
    printf("Nota3: %d", alumnos[i].nota3);
    printf("Nota4: %d", alumnos[i].nota4);
    printf("Promedio: %d", alumnos[i].tot);[color=red]/*Aqui tendria que salir la suma de las 4 notas*/[/color]
    break;
      }

   if(i==total)
      printf("Alumno no encontrado");
}


Bien es aqui donde estoy barado investigando en sam google siendo la 1:03 AM

tengo que terminas gzz gzz gzz ::::

cuchita

hola,,, por fa nesecito ayuda con un codigo,,,en c++ tiene que controlar las ventas de una farmacia con puntos para clientes y todo,,, ayudenme por faaaaaa

DJINVACION

Y que es lo que tienes para empezar??

Muestra en un nueva tema tu situacion para ver como se te ayuda, pero deber empezar en algo para poderte ayudar.


zzzzzgop zzzgpzzz