elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Codigo Alta de Alumnos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Codigo Alta de Alumnos  (Leído 20,258 veces)
DJINVACION

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Codigo Alta de Alumnos
« 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:



Desde ya agradezco sus comentario para mejorar.

DJINVACION


En línea

Universal SAC

Desconectado Desconectado

Mensajes: 41


Universal SAC


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #1 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;


En línea

~UNIVERSAL[HACK]
DJINVACION

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #2 en: 8 Noviembre 2007, 05:14 am »

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!!!!
En línea

alt_hack_f4

Desconectado Desconectado

Mensajes: 32


"No me considero inteligente, solo soy curioso"


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #3 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...
« Última modificación: 8 Noviembre 2007, 06:06 am por alt_hack_f4 » En línea


DJINVACION

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #4 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.

En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #5 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
En línea


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

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #6 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 :)
En línea


-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

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #7 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 ::::
En línea

cuchita

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #8 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
En línea

DJINVACION

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Codigo Alta de Alumnos
« Respuesta #9 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
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
El 14% de los nuevos alumnos universitarios procede de la FP
Foro Libre
wolfbcn 1 2,429 Último mensaje 7 Junio 2011, 00:10 am
por Last_
Descuido de alumnos de FP informatica
Hacking
risto 0 2,425 Último mensaje 28 Marzo 2012, 12:57 pm
por risto
N alumnos con clases
Programación C/C++
acega 4 3,186 Último mensaje 8 Octubre 2013, 23:51 pm
por acega
Mis alumnos y sus extraños métodos de estudio: el escándalo “De Memory” « 1 2 »
Foro Libre
El_Andaluz 15 6,322 Último mensaje 20 Febrero 2015, 15:49 pm
por _Enko
Los alumnos que suspendan la 'reválida' de la ESO solo podrán matricularse « 1 2 3 »
Foro Libre
El_Andaluz 28 9,766 Último mensaje 1 Agosto 2016, 18:11 pm
por RevolucionVegana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines