Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: David Marquez en 4 Noviembre 2016, 06:13 am



Título: Hola me enseñarían cuales son los problemas en mi código?
Publicado por: David Marquez en 4 Noviembre 2016, 06:13 am
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 :)


Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. struct info_materia{
  6. char nombre_materia[20];
  7. char codigo;
  8. char credito;
  9. char calificacion;
  10. }materia[4];
  11.  
  12. struct alumno{
  13. char nombre[20];
  14. char cedula[20];
  15. char edad[20];
  16. char carrera[20];
  17. char semestre[20];
  18. char sexo[20];
  19. struct info_materia dir_materia;
  20. float promedio;
  21. }alumno[5];
  22.  
  23. main(){
  24. char aux_z[20];
  25. char nombre_t[20];
  26. char cedula_t[20];
  27. char carrera_t[20] ;
  28. char semestre_t[20];
  29. int i,seguir1,seguir2,seguir3,seguir4,seguir5,opc,numero;
  30. char x;
  31. char usuario[20];
  32. int clave,faltan=3;
  33.  
  34.  
  35.  
  36. do{
  37.  
  38. printf("Introduce el usuario\n");
  39. gets(usuario);
  40.  
  41. printf("Introduce la contraseña\n");
  42. scanf("%d",&clave);
  43. if(clave==123456){
  44. printf("Bienvenido\n");
  45.  
  46. }
  47. else if(clave!=123456) {
  48.  
  49. printf("Contraseña incorrecta\n");
  50.  
  51. faltan--;
  52. printf("\n falta: %d intentos\n",faltan);
  53. if(faltan==0){
  54. printf("intentos maximos alcanzados \n");
  55. return 0;
  56. }
  57.  
  58.  
  59. }
  60.  
  61. }
  62.  
  63.  
  64. while (faltan==0 ||  clave!=123456);
  65.  
  66.  
  67.  
  68.  
  69. for(i=0;i<2;i++){
  70. fflush(stdin);
  71. printf("%d. Escriba su nombre: ",i+1);
  72. gets(alumno[i].nombre);
  73.  
  74. printf("%d. Escriba su cedula: ",i+1);
  75. gets(alumno[i].cedula);
  76.  
  77. printf("%d. escriba su sexo: ",i+1);
  78. gets(alumno[i].sexo);
  79.  
  80. printf("%d. escriba su edad: ",i+1);
  81. gets(alumno[i].edad);
  82.  
  83. printf("%d. escriba su semestre: ",i+1 );
  84. gets(alumno[i].semestre);
  85.  
  86.  
  87. printf("%d. escriba su carrera: ",i+1);
  88. gets(alumno[i].carrera);
  89. printf(" \n");
  90. }
  91. printf(" \n");
  92. for(i=0;i<4;i++){
  93.  
  94. printf("%d. escriba su materia: ",i+1 );
  95. gets(alumno[i].dir_materia.materia);
  96. printf("%d. escriba su codigo: ",i+1 );
  97. gets(alumno[i].dir_materia.codigo);
  98. printf("%d. escriba su credito: ",i+1 );
  99. gets(alumno[i].dir_materia.credito);
  100. printf("%d. escriba su calificacion: ",i+1 );
  101.    gets(alumno[i].dir_materia.calificacion);
  102.       }
  103.  
  104. do{
  105. fflush( stdin );
  106. printf ("1. por nombre\n");
  107. printf ("2. por cedula \n");
  108. printf ("3. por carrera\n");
  109. printf ("4. por semestre\n");
  110. printf ("5. salir\n");
  111.  
  112. scanf("%d",&opc);
  113. switch(opc){
  114.  
  115.  
  116. case 1:
  117. do
  118.   {
  119. fflush( stdin );
  120.  
  121. printf("escriba el nombre a buscar\n");
  122. gets(nombre_t);
  123. printf ("\nSu busqueda es por:  %s",nombre_t);
  124.  
  125. for(i=0; i<5;i++){
  126. if(strcmp(str1,str2)==0)
  127. if (strcmp(nombre_t,alumno[i].nombre)==0){
  128. printf("\nDatos del estudiante:  ");
  129.  
  130. printf("\nNombre: %s",alumno[i].nombre);
  131.  
  132. printf("\nCedula: %s",alumno[i].cedula);
  133.  
  134. printf("\nSexo: %s",alumno[i].sexo);
  135.  
  136. printf("\nEdad:%s",alumno[i].edad);
  137.  
  138. printf("\nCarrera: %s",alumno[i].carrera);
  139.  
  140. printf("\nSemestre: %s\n",alumno[i].semestre);
  141.  
  142. }
  143. else if(strcmp(nombre_t,alumno[i].nombre)<0){
  144. printf("\nLos Datos de La Busqueda no coinciden");
  145. }
  146.  
  147.  
  148. }
  149. printf("para salir presione '0', presione una tecla y enter para continuar\n");
  150. scanf("%d",&seguir1);
  151.   } while (seguir1 !=0);
  152.   break;
  153.   case 2:
  154.   do
  155.   {
  156. fflush( stdin );
  157.  
  158. printf(" busqueda por cedula:  \n");
  159. gets(cedula_t);
  160.  
  161. printf ("\nSu busqueda es por:  %s",cedula_t);
  162.  
  163. for(i=0; i<5;i++){
  164. if(strcmp(str1,str2)==0)
  165. if (strcmp(cedula_t,alumno[i].cedula)==0){
  166. printf("\nDatos del estudiante:  ");
  167.  
  168. printf("\nNombre: %s",alumno[i].nombre);
  169.  
  170. printf("\nCedula: %s",alumno[i].cedula);
  171.  
  172. printf("\nSexo: %s",alumno[i].sexo);
  173.  
  174. printf("\nEdad:%s",alumno[i].edad);
  175.  
  176. printf("\nCarrera: %s",alumno[i].carrera);
  177.  
  178. printf("\nSemestre: %s\n",alumno[i].semestre);
  179.  
  180. }
  181. else if(strcmp(cedula_t,alumno[i].cedula)<0){
  182. printf("\nLos Datos de La Busqueda no coinciden");
  183. }
  184. }
  185. printf("para salir presione '0', presione una tecla y enter para continuar\n");
  186. scanf("%d",&seguir2);
  187.   } while ( seguir2 !=0);
  188.   break;
  189. case 3:
  190. do
  191.   {
  192. fflush( stdin );
  193. printf("escriba la carrera: \n");
  194. gets(carrera_t);
  195. printf ("\nSu busqueda es por:  %s",carrera_t);
  196.  
  197. for(i=0; i<5;i++){
  198. if(strcmp(str1,str2)==0)
  199. if (strcmp(carrera_t,alumno[i].carrera)==0){
  200. printf("\nDatos del estudiante:  ");
  201.  
  202. printf("\nNombre: %s",alumno[i].nombre);
  203.  
  204. printf("\nCedula: %s",alumno[i].cedula);
  205.  
  206. printf("\nSexo: %s",alumno[i].sexo);
  207.  
  208. printf("\nEdad:%s",alumno[i].edad);
  209.  
  210. printf("\nCarrera: %s",alumno[i].carrera);
  211.  
  212. printf("\nSemestre: %s\n",alumno[i].semestre);
  213.  
  214. }
  215. else if(strcmp(carrera_t,alumno[i].carrera)<0){
  216. printf("\nLos Datos de La Busqueda no coinciden");
  217. }
  218. }
  219. printf("para salir presione '0', presione una tecla y enter para continuar\n");
  220. scanf("%d",&seguir3);
  221.   } while ( seguir3 !=0);
  222.   break;
  223.   case 4:
  224.   do
  225.   {
  226. fflush( stdin );
  227.  
  228. printf("escriba el semestre a buscar \n");
  229. printf("verifique que sea 'primero' 'segundo' 'tercero' \n");
  230. gets(semestre_t);
  231. printf ("\nSu busqueda es por:  %s\n",semestre_t);
  232.  
  233. for(i=0; i<5;i++){
  234. if(strcmp(str1,str2)==0)
  235. if (strcmp(semestre_t,alumno[i].semestre)==0){
  236. printf("\nDatos del estudiante:  ");
  237.  
  238. printf("\nNombre: %s",alumno[i].nombre);
  239.  
  240. printf("\nCedula: %s",alumno[i].cedula);
  241.  
  242. printf("\nSexo: %s",alumno[i].sexo);
  243.  
  244. printf("\nEdad:%s",alumno[i].edad);
  245.  
  246. printf("\nCarrera: %s",alumno[i].carrera);
  247.  
  248. printf("\nSemestre: %s\n",alumno[i].semestre);
  249.  
  250. }
  251. else if(strcmp(semestre_t,alumno[i].semestre)<0){
  252. printf("\nLos Datos de La Busqueda no coinciden");
  253. }
  254. }
  255. printf("para salir presione '0', presione una tecla y enter para continuar\n");
  256. scanf("%d",&seguir4);
  257.   } while ( seguir4 !=0);
  258.   break;
  259.   case 5:
  260.   printf ("\nAdios\n");
  261.  
  262. return 0;
  263. break;
  264. default: printf("\n\nError\n");
  265.  
  266. }
  267. }
  268. while(opc==5);
  269.  
  270. }