Autor
|
Tema: Codigo Alta de Alumnos (Leído 20,157 veces)
|
DJINVACION
Desconectado
Mensajes: 11
|
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
|
|
|
En línea
|
|
|
|
Universal SAC
Desconectado
Mensajes: 41
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;
|
|
|
En línea
|
|
|
|
DJINVACION
Desconectado
Mensajes: 11
|
Gracias, man pero de alli me salen otros errores IMAGENDisculpa mi necedad pero este proyecto debo entregar el viernes y no se que hacer desde ya gracias!!!!
|
|
|
En línea
|
|
|
|
alt_hack_f4
Desconectado
Mensajes: 32
"No me considero inteligente, solo soy curioso"
|
Estas empezando y ya hiciste este codigo ... 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
Mensajes: 11
|
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
Mensajes: 502
|
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
|
|
|
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
Mensajes: 502
|
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
Mensajes: 11
|
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 ::::
|
|
|
En línea
|
|
|
|
cuchita
Desconectado
Mensajes: 8
|
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
Mensajes: 11
|
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
|
|
|
|
|
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,404
|
7 Junio 2011, 00:10 am
por Last_
|
|
|
Descuido de alumnos de FP informatica
Hacking
|
risto
|
0
|
2,393
|
28 Marzo 2012, 12:57 pm
por risto
|
|
|
N alumnos con clases
Programación C/C++
|
acega
|
4
|
3,142
|
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,249
|
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,634
|
1 Agosto 2016, 18:11 pm
por RevolucionVegana
|
|