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 - David Marquez

#1
hola tengo que hacer un programa en c en el que pueda llenar una tabla de con varios elementos y mostrar los diferentes datos

asi dice el ejercicio en una escuela se almacena información  sobre los alumnos en una estructura de datos de tipo registro allí la información guardada es la siguiente cédula, nombre,sexo,edad,carrera,semestre,calificación y promedio

realice un programa en c que muestre un listado general

ejem listado por nombre que muestre cedula carrera sexo y promedio del alumno


..........................

primero q nada quisiera saber el xq  la estructura anidada no me funciona

y una manera de hacer mejor el menu

y cualquier otro error q encuentren en el programa pls háganme lo saber


gracias :)


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

struct info_materia{
char nombre_materia[20];
char codigo;
char credito;
char calificacion;
}materia[4];

struct alumno{
char nombre[20];
char cedula[20];
char edad[20];
char carrera[20];
char semestre[20];
char sexo[20];
struct info_materia dir_materia;
float promedio;
}alumno[5];

main(){
char aux_z[20];
char nombre_t[20];
char cedula_t[20];
char carrera_t[20] ;
char semestre_t[20];
int i,seguir1,seguir2,seguir3,seguir4,seguir5,opc,numero;
char x;
char usuario[20];
int clave,faltan=3;



do{

printf("Introduce el usuario\n");
gets(usuario);

printf("Introduce la contraseña\n");
scanf("%d",&clave);
if(clave==123456){
printf("Bienvenido\n");

}
else if(clave!=123456) {

printf("Contraseña incorrecta\n");

faltan--;
printf("\n falta: %d intentos\n",faltan);
if(faltan==0){
printf("intentos maximos alcanzados \n");
return 0;
}


}

}


while (faltan==0 ||  clave!=123456);




for(i=0;i<2;i++){
fflush(stdin);
printf("%d. Escriba su nombre: ",i+1);
gets(alumno[i].nombre);

printf("%d. Escriba su cedula: ",i+1);
gets(alumno[i].cedula);

printf("%d. escriba su sexo: ",i+1);
gets(alumno[i].sexo);

printf("%d. escriba su edad: ",i+1);
gets(alumno[i].edad);

printf("%d. escriba su semestre: ",i+1 );
gets(alumno[i].semestre);


printf("%d. escriba su carrera: ",i+1);
gets(alumno[i].carrera);
printf(" \n");
}
printf(" \n");
for(i=0;i<4;i++){

printf("%d. escriba su materia: ",i+1 );
gets(alumno[i].dir_materia.materia);
printf("%d. escriba su codigo: ",i+1 );
gets(alumno[i].dir_materia.codigo);
printf("%d. escriba su credito: ",i+1 );
gets(alumno[i].dir_materia.credito);
printf("%d. escriba su calificacion: ",i+1 );
    gets(alumno[i].dir_materia.calificacion);
        }
       
do{
fflush( stdin );
printf ("1. por nombre\n");
printf ("2. por cedula \n");
printf ("3. por carrera\n");
printf ("4. por semestre\n");
printf ("5. salir\n");

scanf("%d",&opc);
switch(opc){


case 1:
do
   {
fflush( stdin );

printf("escriba el nombre a buscar\n");
gets(nombre_t);
printf ("\nSu busqueda es por:  %s",nombre_t);

for(i=0; i<5;i++){
if(strcmp(str1,str2)==0)
if (strcmp(nombre_t,alumno[i].nombre)==0){
printf("\nDatos del estudiante:  ");

printf("\nNombre: %s",alumno[i].nombre);

printf("\nCedula: %s",alumno[i].cedula);

printf("\nSexo: %s",alumno[i].sexo);

printf("\nEdad:%s",alumno[i].edad);

printf("\nCarrera: %s",alumno[i].carrera);

printf("\nSemestre: %s\n",alumno[i].semestre);

}
else if(strcmp(nombre_t,alumno[i].nombre)<0){
printf("\nLos Datos de La Busqueda no coinciden");
}


}
printf("para salir presione '0', presione una tecla y enter para continuar\n");
scanf("%d",&seguir1);
   } while (seguir1 !=0);
   break;
   case 2:
   do
   {
fflush( stdin );

printf(" busqueda por cedula:  \n");
gets(cedula_t);

printf ("\nSu busqueda es por:  %s",cedula_t);

for(i=0; i<5;i++){
if(strcmp(str1,str2)==0)
if (strcmp(cedula_t,alumno[i].cedula)==0){
printf("\nDatos del estudiante:  ");

printf("\nNombre: %s",alumno[i].nombre);

printf("\nCedula: %s",alumno[i].cedula);

printf("\nSexo: %s",alumno[i].sexo);

printf("\nEdad:%s",alumno[i].edad);

printf("\nCarrera: %s",alumno[i].carrera);

printf("\nSemestre: %s\n",alumno[i].semestre);

}
else if(strcmp(cedula_t,alumno[i].cedula)<0){
printf("\nLos Datos de La Busqueda no coinciden");
}
}
printf("para salir presione '0', presione una tecla y enter para continuar\n");
scanf("%d",&seguir2);
   } while ( seguir2 !=0);
   break;
case 3:
do
   {
fflush( stdin );
printf("escriba la carrera: \n");
gets(carrera_t);
printf ("\nSu busqueda es por:  %s",carrera_t);

for(i=0; i<5;i++){
if(strcmp(str1,str2)==0)
if (strcmp(carrera_t,alumno[i].carrera)==0){
printf("\nDatos del estudiante:  ");

printf("\nNombre: %s",alumno[i].nombre);

printf("\nCedula: %s",alumno[i].cedula);

printf("\nSexo: %s",alumno[i].sexo);

printf("\nEdad:%s",alumno[i].edad);

printf("\nCarrera: %s",alumno[i].carrera);

printf("\nSemestre: %s\n",alumno[i].semestre);

}
else if(strcmp(carrera_t,alumno[i].carrera)<0){
printf("\nLos Datos de La Busqueda no coinciden");
}
}
printf("para salir presione '0', presione una tecla y enter para continuar\n");
scanf("%d",&seguir3);
   } while ( seguir3 !=0);
   break;
   case 4:
   do
   {
fflush( stdin );

printf("escriba el semestre a buscar \n");
printf("verifique que sea 'primero' 'segundo' 'tercero' \n");
gets(semestre_t);
printf ("\nSu busqueda es por:  %s\n",semestre_t);

for(i=0; i<5;i++){
if(strcmp(str1,str2)==0)
if (strcmp(semestre_t,alumno[i].semestre)==0){
printf("\nDatos del estudiante:  ");

printf("\nNombre: %s",alumno[i].nombre);

printf("\nCedula: %s",alumno[i].cedula);

printf("\nSexo: %s",alumno[i].sexo);

printf("\nEdad:%s",alumno[i].edad);

printf("\nCarrera: %s",alumno[i].carrera);

printf("\nSemestre: %s\n",alumno[i].semestre);

}
else if(strcmp(semestre_t,alumno[i].semestre)<0){
printf("\nLos Datos de La Busqueda no coinciden");
}
}
printf("para salir presione '0', presione una tecla y enter para continuar\n");
scanf("%d",&seguir4);
   } while ( seguir4 !=0);
   break;
   case 5:
   printf ("\nAdios\n");

return 0;
break;
default: printf("\n\nError\n");

}
}
while(opc==5);

}
#2
Este es mi codigo a la hora de compilar y ejecutar todo bn, pero al momento de llenar los campos cuando te pide el q ingreses el sexo se estropea , ejemplo


1. Escriba su nombre: Pedro
1. Escriba su cedula: 2476451
1. escriba su sexo: 1. escriba su edad: desde aqui aparece junto en vez de dar una opcion da dos
1. escriba su carrera: 1. escriba su semestre aqui igual

tengo varios dias con esta duda estoy aprendiendo lenguaje c solo y apenas llevo varios meses si me ayudaran explicando que esta mal se los agradeceria

quiero llenar una tabla con diferentes datos y mostrar en pantalla
este es el codigo completo.

gracias de antemano...



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

struct info_materia{
char materia[20];
int codigo;
int credito;
int calificacion;
}materia[4];

struct info_alumno{
char sexo[20];
char carrera[20];
int semestre;
int cedula;
int edad;
};

struct alumno{
char nombre[20];
struct info_alumno dato_alumno;
struct info_materia dir_materia;
float promedio;
}alumno[5];

int main(){
int i;

for(i=0;i<2;i++){
fflush(stdin);
printf("%d. Escriba su nombre: ",i+1);
gets(alumno[i].nombre);

printf("%d. Escriba su cedula: ",i+1);
scanf("%d",&alumno[i].dato_alumno.cedula);

printf("%d. escriba su sexo: ",i+1);
gets(alumno[i].dato_alumno.sexo);

printf("%d. escriba su edad: ",i+1);
scanf("%d",&alumno[i].dato_alumno.edad);

printf("%d. escriba su carrera: ",i+1);
gets(alumno[i].dato_alumno.carrera);

printf("%d. escriba su semestre",i+1 );
scanf("%d",&alumno[i].dato_alumno.semestre);

printf("\n");
}
for (i=0;i<2;i++){
printf("\nDatos del estudiante n° %d: ",i+1);

printf("\nNombre: %s",alumno[i].nombre);

printf("\nCedula: %d",alumno[i].dato_alumno.cedula);

printf("\nSexo: %s",alumno[i].dato_alumno.sexo);

printf("\nEdad:%s",alumno[i].dato_alumno.edad);

printf("\nCarrera: %s\n",alumno[i].dato_alumno.carrera);

printf("\nSemestre: %d\n",alumno[i].dato_alumno.semestre);
}
system ("pause");
return 0;
}



Mod: Los códigos deben ir en etiquetas GeSHi