Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DJINVACION en 8 Noviembre 2007, 01:41 am



Título: Codigo Alta de Alumnos
Publicado por: DJINVACION en 8 Noviembre 2007, 01:41 am
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:

Código:
#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:

(http://s1.subirimagenes.com/imagenes/previo/thump_1610619c.jpg) (http://www.subirimagenes.com/imagen-de-c-1610619.html)

Desde ya agradezco sus comentario para mejorar.

DJINVACION


Título: Re: Codigo Alta de Alumnos
Publicado por: Universal SAC en 8 Noviembre 2007, 04:33 am
Código:
#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;


Título: Re: Codigo Alta de Alumnos
Publicado por: DJINVACION en 8 Noviembre 2007, 05:14 am
Gracias, man pero de alli me salen otros errores

IMAGEN
(http://s1.subirimagenes.com/imagenes/previo/thump_1611078eoor2.jpg) (http://www.subirimagenes.com/imagen-de-eoor2-1611078.html)

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

desde ya gracias!!!!


Título: Re: Codigo Alta de Alumnos
Publicado por: alt_hack_f4 en 8 Noviembre 2007, 05:49 am
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...


Título: Re: Codigo Alta de Alumnos
Publicado por: 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.



Título: Re: Codigo Alta de Alumnos
Publicado por: 43H4FH44H45H4CH49H56H45H en 8 Noviembre 2007, 06:08 am
Seria asi en TC++ y en Borland
Código:
#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


Título: Re: Codigo Alta de Alumnos
Publicado por: 43H4FH44H45H4CH49H56H45H en 8 Noviembre 2007, 06:10 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 :)


Título: Re: Codigo Alta de Alumnos
Publicado por: DJINVACION en 8 Noviembre 2007, 08:03 am
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:
Código:
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++;
}

Código:
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 ::::


Título: Re: Codigo Alta de Alumnos
Publicado por: cuchita en 8 Noviembre 2007, 18:04 pm
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


Título: Re: Codigo Alta de Alumnos
Publicado por: DJINVACION en 9 Noviembre 2007, 00:13 am
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


Título: Re: Codigo Alta de Alumnos
Publicado por: 43H4FH44H45H4CH49H56H45H en 9 Noviembre 2007, 04:36 am
Para calcular el promedio y la suma de las notas de alumnos lo haria asi :)
Código:
#include<stdio.h>
#include<stdlib.h>
#define Tot 2

struct notas
{
int nota[2];
};
struct notas es[Tot];

int main()
{
int total;
for (total=1;total<4;total++){
       
printf("\nIngrese nota1 del alumno Numero: %d\n", total);
scanf("%d",&es[total].nota[total]);
     }
     
     for (total=1;total<4;total++){
     
printf("\nLas Notas son: %d \n", es[total].nota[total]);

}
    printf("\n La suma de las Notas es: %d \n", (es[1].nota[1]+es[2].nota[2]+es[3].nota[3]));
    printf("\n y su promedio: %d \n", (es[1].nota[1]+es[2].nota[2]+es[3].nota[3])/3);
system("pause");
return 0;
}

El struct solo lo puse para que te ubiques, porque en mi ejemplo no es necesario, pero en el programa completo sip  :P

El define y el int que puse a 2, referencia que solo aceptara tres notas osea la 0,1y2
 :xD


Título: Re: Codigo Alta de Alumnos
Publicado por: DJINVACION2005 en 20 Diciembre 2007, 15:32 pm
 :xD FELIZ NAVIDAD  :rolleyes: :rolleyes:

Bueno despues de algunos dias fuera he regresado y aqui esta el codigo final, sin antes agradecer a los que ayudaron con esto. La intencion de subirlo no es mas que muestra de lo mucho que me ayudo este foro y para que otros que esten con un problema similiar pues aqui lo tienen resuelto.

Nota: Tengo un bug a la hora de ir al Help(Ayuda) si ves en que falle favor decirmelo para corregirlo.

P.D. No hay nada mejor que compartir sin esperar nada a cambio. Libertad gracias al Código Libre.!!!


Código:
#include <stdio.h>
#include <string.h>
#include <conio.h>

typedef struct alumno{
   char carne[32];
   char nombre[20];
   char direccion[30];
   char correoe[20];
   int  nota1;
   int  nota2;
   int  nota3;
   int  nota4;
   int  tot;
   }Alumno;

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

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

main()
{


   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':
           ayuda();
           getch();
           break;
        case '8':
           break;
        default :
           printf("Opcion no valida");
           getch();
           break;
     }

     if(op=='8') break;

   }

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

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


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;
   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 carne: "); gets(info.carne);
   printf("Ingrese nombre: "); gets(info.nombre);
   printf("Ingrese direccion: "); gets(info.direccion);
   printf("Ingrese Correo:"); gets(info.correoe);
   printf("Ingrese Parcial No 1: "); scanf("%d", &(info.nota1));
   printf("Ingrese Parcial No 2: "); scanf("%d", &(info.nota2));
   printf("Ingrese Zona: "); scanf("%d", &(info.nota3));
   printf("Ingrese Exmen Final: "); scanf("%d", &(info.nota4));
   insertar(info);
   printf("Alumno ingresado exitosamente\n");
}

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

   printf("Ingrese carne 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].nota1+alumnos[i].nota2+alumnos[i].nota3+alumnos[i].nota4);
    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("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\n\n", alumnos[i].nota1);
     printf("Nota2: %d\n\n", alumnos[i].nota2);
     printf("Nota3: %d\n\n", alumnos[i].nota3);
     printf("Nota4: %d\n\n", alumnos[i].nota4);
         printf("--- Nuevos datos del alumno ---\n");
         printf("Carné: %s\n", alumnos[i].carne);
         printf("Ingrese nombre: "); gets(alumnos[i].nombre);
         printf("Ingrese direccion: "); gets(alumnos[i].direccion);
         printf("Ingrese correo: "); gets(alumnos[i].correoe);
         printf("Ingrese nota1: "); scanf("%d", &(alumnos[i].nota1));
         printf("Ingrese nota2: "); scanf("%d", &(alumnos[i].nota2));
         printf("Ingrese nota3: "); scanf("%d", &(alumnos[i].nota3));
         printf("Ingrese nota4: "); scanf("%d", &(alumnos[i].nota4));

         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].carne, alumnos[j].carne);
            strcpy(alumnos[j-1].nombre, alumnos[j].nombre);
            strcpy(alumnos[j-1].direccion, alumnos[j].direccion);
            strcpy(alumnos[j-1].correoe, alumnos[j].correoe);
            alumnos[j-1].nota1 = alumnos[j].nota1;
            alumnos[j-1].nota2 = alumnos[j].nota2;
            alumnos[j-1].nota3 = alumnos[j].nota3;
            alumnos[j-1].nota4 = alumnos[j].nota4;
         }

         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.carne, alumnos[i].carne);
         strcpy(temp.nombre, alumnos[i].nombre);
         strcpy(temp.direccion, alumnos[i].direccion);
         strcpy(temp.correoe, alumnos[i].correoe);
         temp.nota1 = alumnos[i].nota1;
         temp.nota2 = alumnos[i].nota2;
         temp.nota3 = alumnos[i].nota3;
         temp.nota4 = alumnos[i].nota4;
         /* Intercambia informacion */
         strcpy(alumnos[i].carne, alumnos[j].carne);
         strcpy(alumnos[i].nombre, alumnos[j].nombre);
         strcpy(alumnos[i].direccion, alumnos[j].direccion);
         strcpy(temp.correoe, alumnos[i].correoe);
         temp.nota1 = alumnos[i].nota1;
         temp.nota2 = alumnos[i].nota2;
         temp.nota3 = alumnos[i].nota3;
         temp.nota4 = alumnos[i].nota4;

         strcpy(alumnos[i].carne, alumnos[j].carne);
         strcpy(alumnos[j].nombre, temp.nombre);
         strcpy(alumnos[j].direccion, temp.direccion);
         strcpy(temp.correoe, alumnos[i].correoe);
         temp.nota1 = alumnos[i].nota1;
         temp.nota2 = alumnos[i].nota2;
         temp.nota3 = alumnos[i].nota3;
         temp.nota4 = alumnos[i].nota4;
      }
   }
   printf("Se han ordenado los registros");
}

void mostrar()
{

   for(int i=0; i<total; i++)
   {
      printf("Num: %d\n", i+1);
      printf("carne: %s\n", alumnos[i].carne);
      printf("nombre: %s\n", alumnos[i].nombre);
      printf("direccion: %s\n", alumnos[i].direccion);
      printf("correo electronico: %s\n", alumnos[i].correoe);
      printf("parcial No 1: %d\n", alumnos[i].nota1);
      printf("parcial No 2: %d\n", alumnos[i].nota2);
      printf("parcial No 3: %d\n", alumnos[i].nota3);
      printf("parcial No 4: %d\n", alumnos[i].nota4);
      printf("Promedio: %d", alumnos[i].nota1+alumnos[i].nota2+alumnos[i].nota3+alumnos[i].nota4);
         }
}

void ayuda()
{
textcolor(50);cprintf("\n                        ---Proyecto en C++ ---\n");
   printf("\n Este trabajo es un programa que tiene como fin, mostrar el listado de alumnos\n de la Carrera de Ingenieria en Sistemas de Informacion y Ciencias de la\n Computacion. En este programa se tienen que especificar los datos principales\n del alumno para ingresarlo o buscarlo en el mismo. Los datos son: nombres\n carne, correo electronico y las notas adquiridas en el semestre correspondiente\n\n");
   printf("1. Ingresar = Aqui podras ingresar los datos del alumno.\n");
   printf("2. Buscar = Por medio del carne en esta opcion podras hallar al alumno que\n   buscas.\n");
   printf("3. Modificar = En esta opcion se podran hacer cambios en los datos del alumno\n   ya ingresado.\n");
   printf("4. Eliminar = Esta opcion servira para quitar del listado de alumnos x y de la\n   base de datos.\n");
   printf("5. Ordenar = Los ordena en forma que fueron ingresados.\n");
   printf("6. Mostrar lista = Muestra el total de alumnos ingresados en base de datos en\n   una lista.\n");
   printf("7. Ayuda = Proporciona sopporte para dudas.\n");
   printf("8. Salida = Opcion para salir del programa, si desea guardar los cambios\n   presiona (g).\n");
   }

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

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


Título: Re: Codigo Alta de Alumnos
Publicado por: Solenbum en 20 Diciembre 2007, 19:07 pm
muy bueno tu aporte si señor en toda la cara

enhorabuena  :rolleyes:


Título: alguien puede ayudarme?
Publicado por: 0rkud en 10 Diciembre 2015, 23:07 pm
alguien puede ayudarme