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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Funciones, selectivas y repetitivas. (tiene un error al ejecutarse, ayuda!) en: 4 Junio 2010, 03:52 am
Hola, tengo este codico en el compilador dev-c.
El problema que tengo es que en los menus que tengo, de alumnos y maestros, cuando elijo capturar o mostrar al terminar de hacer la funcion termina el programa.
Puse unas estructuras hacer-mientras para que siempre te regrese a algun menu y despues ya solo si lo desides, salir, mostrar datos, buscar datos, o salir del programa.
Por aho esta en codigo
Código
  1. return;
que segun encontre deberia regresarme al menu anterior, donde quiera que este la funcion, y no lo hace.

Ojala vean que es lo que le falta o le sobra y me digan para que funcione correctamente.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct profesor
  6. {
  7.       char nombre[50],codigo[10],carrera[40],materia1[20],materia2[20],materia3[20],materia4[20],materia5[20];
  8.       int opcmp;
  9. } profesores[20];
  10.  
  11. struct alumno
  12. {
  13.       char nombre[50],codigo[10],carrera[40];
  14.       int edad, opcma, numdecap;      
  15.       float promedio[5];
  16.       char sexo[1];
  17. } alumnos[100];
  18.  
  19.  
  20. void menuprincipal(int *r)
  21. {    
  22.     int opcionmp;
  23.     do{
  24.        printf("1-Alumnos  2-Profesores  3-Salir del programa\n");
  25.        scanf("%d",&opcionmp);
  26.        system("CLS");
  27.        if(opcionmp!=1&&opcionmp!=2&&opcionmp!=3)
  28.           {printf("La opcion elegida es incorrecta\n");
  29.           system("PAUSE");
  30.           printf("'Presione cualquier tecla para continuar la ejecucion del programa'");
  31.           system("CLS");}}
  32.     while(opcionmp!=1&&opcionmp!=2&&opcionmp!=3);
  33.     *r=opcionmp;
  34. }
  35.  
  36. void menuinicio(int opcionmi)
  37. {
  38.     do{
  39.        printf("1-Alumnos  2-Profesores  3-Salir del programa\n");
  40.        scanf("%d",&opcionmi);
  41.        system("CLS");
  42.        if(opcionmi!=1&&opcionmi!=2&&opcionmi!=3)
  43.           {printf("La opcion elegida es incorrecta\n");
  44.           system("PAUSE");
  45.           printf("'Presione cualquier tecla para continuar la ejecucion del programa'");
  46.           system("CLS");}}
  47.     while(opcionmi!=1&&opcionmi!=2&&opcionmi!=3);
  48. }
  49.  
  50.  
  51. void capturardatosA(int r)
  52. {
  53.     int i;
  54.     for(i=0;i<r;i++){
  55.                      printf("Introduce el nombre del alumno: ");
  56.                      fflush(stdin);
  57.                      gets(alumnos[i].nombre);
  58.                      do{
  59.                      printf("Introduce la edad: ");
  60.                      scanf("%i",&alumnos[i].edad);
  61.                      if(alumnos[i].edad<0){
  62.                                            printf("La edad es incorrecta");
  63.                                            system("PAUSE");
  64.                                            }}
  65.                      while(alumnos[i].edad<0);
  66.                      printf("Introduce el sexo con las letras  M  o  F  : ");
  67.                      fflush(stdin);
  68.                      gets(alumnos[i].sexo);
  69.                      printf("Escriba tal y como se encuentra en el menu la carrera del alumno:\ninformatica \ncomputacion \nindustrial \ncomunicaciones_y_electronica \ncivil \ningenieria_quimica \ncontaduria \nadministracion\n");
  70.                      gets(alumnos[i].carrera);
  71.                      printf("Introduce Su Codigo: ");
  72.                      fflush(stdin);
  73.                      gets(alumnos[i].codigo);
  74.                      printf("Introduce Su Promedio: ");
  75.                      scanf("%f", &alumnos[i].promedio);                        
  76.                      printf("\n");
  77.                      return;}
  78.  
  79. }
  80.  
  81. void mostrardatosA(int r)
  82. {
  83.     int i;
  84.     for(i=0;i<r;i++){
  85.                         printf("%s\n", alumnos[i].nombre);
  86.                         printf("Edad: %i\n", alumnos[i].edad);
  87.                         printf("Sexo: %s\n", alumnos[i].sexo);                        
  88.                         printf("Carrera: %s\n", alumnos[i].carrera);
  89.                         printf("Codigo: %s\n", alumnos[i].codigo);
  90.                         printf("Promedio: %f", alumnos[i].promedio);
  91.                         printf("\n\n");
  92.                         }
  93. }
  94.  
  95. void mostrarbusquedasA(int r)
  96. {
  97.     printf("%s\n", alumnos[r].nombre);
  98.     printf("Edad: %i\n", alumnos[r].edad);
  99.     printf("Sexo: %s\n", alumnos[r].sexo);                        
  100.     printf("Carrera: %s\n", alumnos[r].carrera);
  101.     printf("Codigo: %s\n", alumnos[r].codigo);
  102.     printf("Promedio: %f", alumnos[r].promedio);    
  103. }      
  104.  
  105. void capturardatosP(int r)
  106. {
  107.     int i,l;
  108.     for(i=0;i<r;i++){
  109.                        printf("Introduce el nombre del profesor: ");
  110.                        fflush(stdin);
  111.                        gets(profesores[i].nombre);
  112.                        printf("Escriba tal y como se encuentra en el menu la carrera del profesor:\ninformatica\ncomputacion\nindustrial\ncomunicaciones_y_electronica\ncivil\ningenieria_quimica\ncontaduria\nadministracion\n");
  113.                        gets(profesores[i].carrera);
  114.                        printf("\nIntroduce Su Codigo: ");
  115.                        fflush(stdin);
  116.                        gets(profesores[i].codigo);  
  117.                        printf("¿Cuantas materias imparte? Como maximo 5. ");
  118.                        scanf("%i", &l);
  119.                        printf("Introduce el nombre de las materias:\n");
  120.                        do{
  121.                        switch(l){
  122.                                  case 1:
  123.                                       fflush(stdin);
  124.                                       gets(profesores[i].materia1);
  125.                                       break;
  126.                                  case 2:
  127.                                       fflush(stdin);
  128.                                       gets(profesores[i].materia1);
  129.                                       fflush(stdin);
  130.                                       gets(profesores[i].materia2);
  131.                                       break;
  132.                                  case 3:
  133.                                       fflush(stdin);
  134.                                       gets(profesores[i].materia1);
  135.                                       fflush(stdin);
  136.                                       gets(profesores[i].materia2);
  137.                                       fflush(stdin);
  138.                                       gets(profesores[i].materia3);
  139.                                       break;
  140.                                  case 4:
  141.                                       fflush(stdin);
  142.                                       gets(profesores[i].materia1);
  143.                                       fflush(stdin);
  144.                                       gets(profesores[i].materia2);
  145.                                       fflush(stdin);
  146.                                       gets(profesores[i].materia3);
  147.                                       fflush(stdin);
  148.                                       gets(profesores[i].materia4);
  149.                                       break;
  150.                                  case 5:
  151.                                       fflush(stdin);
  152.                                       gets(profesores[i].materia1);
  153.                                       fflush(stdin);
  154.                                       gets(profesores[i].materia2);
  155.                                       fflush(stdin);
  156.                                       gets(profesores[i].materia3);
  157.                                       fflush(stdin);
  158.                                       gets(profesores[i].materia4);
  159.                                       fflush(stdin);
  160.                                       gets(profesores[i].materia5);
  161.                                       break;
  162.                                   default:
  163.                                            printf("El numero de materias es incorrecto");}}
  164.                        while(l!=1&&l!=2&&l!=3&&l!=4&&l!=5);                                      
  165. }}
  166.  
  167. void mostrarbusquedasP(int r)
  168. {
  169.     printf("%s\n", profesores[r].nombre);
  170.     printf("Carrera: %s\n", profesores[r].carrera);
  171.     printf("Codigo: %s\n", profesores[r].codigo);
  172.     printf("Sus clases son:\n");
  173.     printf("%s",profesores[r].materia1);
  174.     printf("%s",profesores[r].materia2);
  175.     printf("%s",profesores[r].materia3);
  176.     printf("%s",profesores[r].materia4);
  177.     printf("%s",profesores[r].materia5);
  178. }  
  179.  
  180. void mostrardatosP(int r)
  181. {
  182.     int i;
  183.     printf("\n");
  184.     for(i=0;i<r;i=i+1){
  185.                         printf("%s\n", profesores[i].nombre);
  186.                         printf("Carrera: %s\n", profesores[i].carrera);
  187.                         printf("Codigo: %s\n", profesores[i].codigo);
  188.                         printf("Imparte:\n");
  189.                         printf("%s  ", profesores[i].materia1);
  190.                         printf("%s  ", profesores[i].materia2);
  191.                         printf("%s  ", profesores[i].materia3);
  192.                         printf("%s  ", profesores[i].materia4);
  193.                         printf("%s", profesores[i].materia5);
  194.                         printf("\n\n");
  195.                         }
  196. }  
  197.  
  198. void busquedadealumnos()
  199. {                  
  200.                    int z,i;
  201.                    char codigoz[10],materia[20],carrera[40];
  202.                    printf("1-Buscar por codigo   2-Buscar por materia  3-Buscar por carrera");
  203.                    scanf("%d",&z);
  204.                    switch(z){
  205.                    case 1:            fflush(stdin);
  206.                                       printf("Introduce el codigo que quieres buscar:\n");
  207.                                       gets(codigoz);
  208.                                       for(i=0;i<20;i=i+1){
  209.                                                           if(strcmp(codigoz,alumnos[i].codigo)==0)
  210.                                                           mostrarbusquedasA(i);                                                                              
  211.                                                           }
  212.                                       break;
  213.                    case 2:
  214.                                       fflush(stdin);
  215.                                       printf("Introduce la materia que quieres buscar:\n");
  216.                                       gets(materia);
  217.                                       for(i=0;i<20;i=i+1){
  218.                                                           if(strcmp(materia,profesores[i].materia1)==0)
  219.                                                           mostrarbusquedasA(i);
  220.                                                           }
  221.                                       for(i=0;i<20;i=i+1){
  222.                                                           if(strcmp(materia,profesores[i].materia2)==0)
  223.                                                           mostrarbusquedasA(i);
  224.                                                           }
  225.                                       for(i=0;i<20;i=i+1){
  226.                                                           if(strcmp(materia,profesores[i].materia3)==0)
  227.                                                           mostrarbusquedasA(i);
  228.                                                           }
  229.                                       for(i=0;i<20;i=i+1){
  230.                                                           if(strcmp(materia,profesores[i].materia4)==0)
  231.                                                           mostrarbusquedasA(i);
  232.                                                           }              
  233.                                       for(i=0;i<20;i=i+1){
  234.                                                           if(strcmp(materia,profesores[i].materia5)==0)
  235.                                                           mostrarbusquedasA(i);
  236.                                                           }                              
  237.                                       break;
  238.                    case 3:            fflush(stdin);
  239.                                       printf("Introduce la carrera que deseas buscar:\n");
  240.                                       gets(carrera);
  241.                                       for(i=0;i<100;i=i+1){
  242.                                                           if(strcmp(carrera, alumnos[i].carrera)==0)
  243.                                                           mostrarbusquedasA(i);                                                                              
  244.                                                           }
  245.                                       break;
  246.                                  default:
  247.                                          printf("Opcion Incorrecta \n"); }
  248. }
  249.  
  250. void busquedademaestros()
  251. {                  
  252.                    int z,i;
  253.                    char codigoz[10],materia[20],carrera[40];
  254.                    printf("1-Buscar por codigo   2-Buscar por materia  3-Buscar por carrera");
  255.                    scanf("%d",&z);
  256.                    switch(z){
  257.                    case 1:            fflush(stdin);
  258.                                       printf("Introduce el codigo que quieres buscar:\n");
  259.                                       gets(codigoz);
  260.                                       for(i=0;i<20;i=i+1){
  261.                                                           if(strcmp(codigoz,alumnos[i].codigo)==0)
  262.                                                           mostrarbusquedasP(i);                                                                              
  263.                                                           }
  264.                                       break;
  265.                    case 2:
  266.                                       fflush(stdin);
  267.                                       printf("Introduce la materia que quieres buscar:\n");
  268.                                       gets(materia);
  269.                                       for(i=0;i<20;i=i+1){
  270.                                                           if(strcmp(materia,profesores[i].materia1)==0)
  271.                                                           mostrarbusquedasP(i);
  272.                                                           }
  273.                                       for(i=0;i<20;i=i+1){
  274.                                                           if(strcmp(materia,profesores[i].materia2)==0)
  275.                                                           mostrarbusquedasP(i);
  276.                                                           }
  277.                                       for(i=0;i<20;i=i+1){
  278.                                                           if(strcmp(materia,profesores[i].materia3)==0)
  279.                                                           mostrarbusquedasP(i);
  280.                                                           }
  281.                                       for(i=0;i<20;i=i+1){
  282.                                                           if(strcmp(materia,profesores[i].materia4)==0)
  283.                                                           mostrarbusquedasP(i);
  284.                                                           }              
  285.                                       for(i=0;i<20;i=i+1){
  286.                                                           if(strcmp(materia,profesores[i].materia5)==0)
  287.                                                           mostrarbusquedasP(i);
  288.                                                           }                              
  289.                                       break;
  290.                    case 3:            fflush(stdin);
  291.                                       printf("Introduce la carrera que deseas buscar:\n");
  292.                                       gets(carrera);
  293.                                       for(i=0;i<100;i=i+1){
  294.                                                           if(strcmp(carrera, alumnos[i].carrera)==0)
  295.                                                           mostrarbusquedasA(i);                                                                              
  296.                                                           }
  297.                                       break;
  298.                                  default:
  299.                                          printf("Opcion incorrecta \n"); }
  300. }
  301.  
  302. void menuprofesores()
  303. {
  304.     int x,y;
  305.     do{
  306.        printf("1-Capturar datos  2-Mostrar datos  3-Regresar al menu principal 4-Buscar por codigo, carrera o materia 5-Salir del programa\n");
  307.        scanf("%d",&profesores[20].opcmp);
  308.        if(profesores[20].opcmp!=1&&profesores[20].opcmp!=2&&profesores[20].opcmp!=3&&profesores[20].opcmp!=4&&profesores[20].opcmp!=5)
  309.           {printf("La opcion elegida es incorrecta");
  310.           system("PAUSE");
  311.           printf("'Presione cualquier tecla para continuar la ejecucion del programa'");
  312.           system("CLS");}}
  313.     while(profesores[20].opcmp!=1&&profesores[20].opcmp!=2&&profesores[20].opcmp!=3&&profesores[20].opcmp!=4&&profesores[20].opcmp!=5);
  314.     switch (profesores[20].opcmp){
  315.            case 1: {printf("¿Cuantos profesores desea capturar?");
  316.                 scanf("%d",&x);
  317.                 capturardatosP(x);
  318.                 break;}
  319.            case 2: {printf("¿Cuantos profesores desea mostrar?");
  320.                 scanf("%d",&y);
  321.                 mostrardatosP(y);
  322.                 break;}
  323.            case 3: return;
  324.            case 4: busquedademaestros();
  325.            case 5: printf("Hasta luego y gracias por el 100 ;)\n\n");
  326. }}    
  327.  
  328. void menualumnos()
  329. {
  330.     int x,y;
  331.     do{
  332.     do{
  333.        printf("1-Capturar datos \n2-Mostrar datos \n3-Buscar por codigo, materia o carrera \n4-Regresar al menu principal \n5-Salir del programa\n");
  334.        scanf("\n%d",&alumnos[100].opcma);
  335.        system("CLS");
  336.        if(alumnos[100].opcma!=1&&alumnos[100].opcma!=2&&alumnos[100].opcma!=3&&alumnos[100].opcma!=4&&alumnos[100].opcma!=5)
  337.           {printf("La opcion elegida es incorrecta");
  338.           system("PAUSE");
  339.           printf("'Presione cualquier tecla para continuar la ejecucion del programa'");
  340.           system("CLS");}}
  341.     while(alumnos[100].opcma!=1&&alumnos[100].opcma!=2&&alumnos[100].opcma!=3&&alumnos[100].opcma!=4&&alumnos[100].opcma!=5);
  342.     switch (alumnos[100].opcma){
  343.            case 1: {printf("¿Cuantos alumnos desea capturar?");
  344.                 scanf("%d",&x);
  345.                 capturardatosA(x);
  346.                 break;}
  347.            case 2: {printf("¿Cuantos alumnos desea mostrar?");
  348.                 scanf("%d",&y);
  349.                 mostrardatosA(y);
  350.                 break;}
  351.            case 3: {busquedadealumnos();
  352.                    break;}
  353.            case 4: return;
  354.                 break;
  355.            case 5: printf("Hasta luego y gracias por el 100 ;)\n\n");
  356.                 break;
  357.                 }}
  358.     while(alumnos[100].opcma!=1&&alumnos[100].opcma!=2&&alumnos[100].opcma!=3&&alumnos[100].opcma!=4&&alumnos[100].opcma!=5);
  359. ;}
  360.  
  361.  
  362. int main(int argc, char *argv[])
  363. {
  364.    int x;
  365.    menuprincipal(&x);
  366.    switch(x){
  367.          case 1: menualumnos();
  368.                  break;
  369.          case 2: menuprofesores();
  370.                  break;
  371.          default: printf("Hasta luego y gracias por el 100 ;)\n\n");
  372.                   break;}
  373.  
  374.  system("PAUSE");
  375.  return 0;
  376. }
2  Programación / Programación C/C++ / Re: Ordenamiento burbuja en: 25 Abril 2010, 23:35 pm
Corrijo
El problema es
1-Pedir numero de materias
2-Obtener promedio
3-Imprimir la calificacion mas alta

Esto es lo que tengo, ya me imprime el promedio; aunque siempre me imprime 0 como si fuera la calificacion mas alta.
Segun yo utilizo el ordenamiento para imprimir la que quede "hasta al final" e imprimirla.
Por si me ayudan otra vez, jeje

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define  M 10
  4. int main(int argc, char *argv[])
  5. {
  6.  int n, i, j, temp;
  7.  float  calif[M], prom=0;
  8.  printf ("Cuantas materias tomaste en el semestre:");
  9.  scanf ("%d", &n);
  10.  for(i=0; i<n; i++){
  11.  {      printf("Dame tu calificacion:");
  12.           scanf("%f", &calif[i]);
  13.           prom=prom + calif[i];
  14.           }
  15.           for (j=i; j<n; j++)
  16.               {if (calif[i]>calif[j])
  17.               temp=calif[i];
  18.               calif[i]=calif[j];
  19.               calif[j]=temp;
  20.               }}
  21.  
  22.  printf("\n\nTu calificacion mas alta es: %i", calif[i]);
  23.  
  24.  calif[i] = prom/n;
  25.  printf("\n\n\nTu promedio es:  %.02f\n\n", calif[n]);
  26.  system("PAUSE");
  27.  return 0;
  28. }

3  Programación / Programación C/C++ / Ordenamiento burbuja en: 24 Abril 2010, 23:23 pm
Hola tengo un arreglo en dev c que me pide calificaciones y me entrega el promedio, me han pedido que lo mejore imprimienole además del promedio la calificacion mas alta del alumno, se debe tomar en cuenta que el maximo de calificaciones por semestre es 10; estuve buscando y encontre algo que es ordenamiento burbuja, pero no supe adaptarlo a mi programa. por si alguien me puede ayudar con el codigo a imprimir la calificacion mas alta porfavor!


este es el codigo
Citar
#include <stdio.h>
#include <stdlib.h>
#define  M 10
int main(int argc, char *argv[])
{
  int n, i;
  float  calif[M], prom=0;
  printf ("Cuantas materias tomaste en el semestre:");
  scanf ("%d", &n);
  for(i=0; i<n; i++)
  {        printf("Dame tu calificacion:");
           scanf("%f", &calif);
           prom=prom + calif;
           }
  calif = prom/n;
  printf("\nTus calificaciones son:\n");
  for(i=0; i<n; i++)
  printf("\n%.02f", calif );
  printf("\n\n\nTu promedio es:  %.02f\n\n\n\n", calif[n]);
 
  system("PAUSE");   
  return 0;
}

Agradezco de antemano
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines