Foros del Web » Programaciˇn para mayores de 30 ;) » C/C++ »

Programa para sacar promedio

Estas en el tema de Programa para sacar promedio en el foro de C/C++ en Foros del Web. Hola, la intenciˇn de poner este programa es para que me puedan opiniˇnes buenas o malas, es un proyecto final y la verdad soy un ...
  #1 (permalink)  
Antiguo 02/06/2012, 10:26
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
AntigŘedad: 11 a˝os, 1 mes
Puntos: 3
Busqueda Programa para sacar promedio

Hola, la intenciˇn de poner este programa es para que me puedan opiniˇnes buenas o malas, es un proyecto final y la verdad soy un novato en esto asÝ que si pueden marcar errores o sugerir algo por favor no duden se lo agradecerÚ mucho.
Cˇdigo:
/*Programa que hace algo
Hecho por: Alguien
Nombre: la loca de kass y cristian :D
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define FLOTANTES 15
#define ENTEROS 7
#define RESULTADO 5
float var[FLOTANTES];
int op[ENTEROS];
float res[RESULTADO];
int i;
void parcial(void);
void parcial(void) {
printf("PARCIALES:\n1=Primer Parcial\n2=Segundo Parcial\n3=Tercer Parcial\nElige el parcial a evaluar: ");
scanf("%d",&i);*
switch (i) {
case 1:*
for (i=1; i<=3; i++) {*
printf("Estas evaluando el %d%c parcial\n",i,248);
do {
printf("Cuantos puntos asignaras de examen en el %d%c parcial: ",i,248);
scanf("%f",&var[1]);
if (var[1]>9) {
printf("No puedes poner un valor mayor a 9\n");
}
} while (var[1]>9);
var[0]=10-var[1];
printf("Son %.1f puntos de evaluacion continua\n",var[0]);*
printf("\nCuantos puntos o firmas maximas de evaluacion continua en el %d%c: ",i,248);
scanf("%f",&var[2]);
do {
printf("\nCuanto fue su calificacion en el examen: ");
scanf("%f",&var[3]);
if (var[3]>10) {
printf("La maxima calificacion es 10");
}
} while (var[3]>10);
printf("\nCuantos puntos o firmas tuvo el alumno considerando que el maximo es %.2f: ",var[2]);
scanf("%f",&var[4]);
var[5]=(var[1]/10)*var[3];
var[6]=(var[0]/var[2])*var[4];
res[i]=var[5]+var[6];
printf("\nEvaluacion de examen: %.2f \nEvaluacion Continua: %.2f \nsu promedio es de: %.2f en el %d%c parcial\n",var[5],var[6],res[i],i,248);
}
var[7]=(res[1]+res[2]+res[3])/3;
printf("El promedio total de cuarto semestre es: %.2f\n",var[7]);
break;
case 2:
do {
printf("Cual es la calificacion del primer parcial: ");
scanf("%f",&var[7]);
if (var[7]>10) {
printf("La calificacion no puede ser mayor a 10");
}
} while (var[7]>10);
for (i=2; i<=3; i++) {*
printf("Estas evaluando el %d%c parcial\n",i,248);
do {
printf("Cuantos puntos asignaras de examen en el %d%c parcial: ",i,248);
scanf("%f",&var[1]);
if (var[1]>9) {
printf("No puedes poner un valor mayor a 9\n");
}
} while (var[1]>9);
var[0]=10-var[1];
printf("Son %.1f puntos de evaluacion continua\n",var[0]);
printf("\nCuantos puntos o firmas maximas de evaluacion continua en el %d%c: ",i,248);
scanf("%f",&var[2]);
do {
printf("\nCuanto fue su calificacion en el examen: ");
scanf("%f",&var[3]);
if (var[3]>10) {
printf("La maxima calificacion es 10");
}
} while (var[3]>10);
printf("\nCuantos puntos o firmas tuvo el alumno considerando que el maximo es %.2f: ",var[2]);
scanf("%f",&var[4]);
var[5]=(var[1]/10)*var[3];
var[6]=(var[0]/var[2])*var[4];
res[i]=var[5]+var[6];
printf("\nEvaluacion de examen: %.2f \nEvaluacion Continua: %.2f \nsu promedio es de: %.2f en el %d%c parcial\n",var[5],var[6],res[i],i,248);
}
var[8]=(var[7]+res[2]+res[3])/3;
printf("El promedio total de cuarto semestre es: %.2f\n",var[8]);
break;
case 3:
do {
printf("Cual es la calificacion del primer parcial: ");
scanf("%f",&var[7]);
if (var[7]>10) {
printf("La calificacion no puede ser mayor a 10");
}
} while (var[7]>10);
do {
printf("Cual es la calificacion del segundo parcial: ");
scanf("%f",&var[8]);
if (var[8]>10) {
printf("La calificacion no puede ser mayor a 10");
}
} while (var[8]>10);*
printf("Estas evaluando el %d%c parcial\n",i,248);
do {
printf("Cuantos puntos asignaras de examen en el %d%c parcial: ",i,248);
scanf("%f",&var[1]);
if (var[1]>9) {
printf("No puedes poner un valor mayor a 9\n");
}
} while (var[1]>9);
var[0]=10-var[1];
printf("Son %.1f puntos de evaluacion continua\n",var[0]);
printf("\nCuantos puntos o firmas maximas de evaluacion continua en el %d%c: ",i,248);
scanf("%f",&var[2]);
do {
printf("\nCuanto fue su calificacion en el examen: ");
scanf("%f",&var[3]);
if (var[3]>10) {
printf("La maxima calificacion es 10");
}
} while (var[3]>10);
printf("\nCuantos puntos o firmas tuvo el alumno considerando que el maximo es %.2f: ",var[2]);
scanf("%f",&var[4]);
var[5]=(var[1]/10)*var[3];
var[6]=(var[0]/var[2])*var[4];
res[i]=var[5]+var[6];
printf("\nEvaluacion de examen: %.2f \nEvaluacion Continua: %.2f \nsu promedio es de: %.2f en el %d%c parcial\n",var[5],var[6],res[i],i,248);
var[9]=(var[7]+var[8]+res[3])/3;
printf("El promedio total de cuarto semestre es: %.2f\n",var[9]);
break;
default:
printf("No hay un %d%c parcial",i,248);
break;
}
return;
}*
int main (void) {
int j;
char con[4];
char materia[16];
char si[3]={'s','i'};
system("color 3f");
do {
printf("-----------------COLEGIO TECNOLOGICO DE MEXICO---------------\n");
printf("\n╔═══════════════════════════════════════════════════════════╗");
printf("\n║ * .:Evaluacion y costos de 4%c Smestre de Informatica:. * *║",248);
printf("\n╠═══════════════════════════════════════════════════════════╣");
printf("\n║ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ║");
printf("\n║ * * * 1.- Promedios * * * * * * * *2.- Costos * * * * * * ║");
printf("\n║ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ║");
printf("\n║ * * * * * * * * * * * *3.-Salir * * * * * * * * * * * * * ║");
printf("\n╚═══════════════════════════════════════════════════════════╝\n");
printf(" * * * * * * * * * * * Que hara? ");scanf("%d",&op[7]);
switch(op[7]) {
case 1:
for(j=9; j>=0; j--) {
printf("\n╔═══════════════════════════════════════════╗\n");
printf("\nMATERIAS DISPONIBLES:\nIngles IV\nCalculo Diferencial\nDerecho\nCalculos Financieros II\nQuimica II\nFisica II\nOfimatica\nProgramacion Estructurada\nContabilidad\n");
printf("\nEscriba la materia a evaluar: ");
fflush(stdin);
gets(materia);
printf("\nEsta evaluando %s\n",materia);
parcial();
printf("\nAcaba de evaluar %s\n\a",materia);*
printf("╚═════════════════════════════════════════════╝\n");
printf("\n\nDesea evaluar otra materia? SI o NO\n");
fflush(stdin);
gets(con);
strcmp(con,si);
if(strcmp(con,si)==0) {
* * * * * * *j--;
* * * * * * *} else {
* * * * * * * * * * j=0;
* * * * * * * * * * }
}
* * *break;*
* * *case 2:
* * *printf("Costos y Descuentos por \"BECAS\"\n");
* * *break;
* * *}
* * *if(op[7]>3) {
* * * * * * * * *printf("Opcion invalida intente otra vez");
* * * * * * * * *}
} while (op[7]>3);
printf("Hasta Luego\n");
system("pause");
return 0;
}
  #2 (permalink)  
Antiguo 02/06/2012, 11:04
 
Fecha de Ingreso: diciembre-2008
Mensajes: 50
AntigŘedad: 13 a˝os, 8 meses
Puntos: 0
Respuesta: Programa para sacar promedio

Te lo dejo con formato por si alguien se anima, y yo te puedo dar un consejo: Intenta ahorrar en cˇdigo. Tienes una barbaridad de cˇdigo y muy lioso. Es buen programador el que programa lo que necesita con el menor n˙mero de lÝneas posibles.... despuÚs ya vendran las cosas bonitas ;)

De primeras, te recomendarÝa que dividieses el cˇdigo en varias funciones. Escribieses el prototipo arriba del todo, debajo de los #include, y justo despuÚs del prototipo una buena funciˇn main, compacta y clara. Por ˙ltimo, las definiciones de las funciones debajo del main con suficientes comentarios para que se entienda todo. y, como te digo, cuanto menos cˇdigo, mejor.

Y tranqui, tiene buena pinta, pero todo es mejorable :D

Cˇdigo C:
Ver original
  1. /*Programa que hace algo
  2. Hecho por : Alguien
  3. Nombre : la loca de kass y cristian : D
  4. */
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8. #define FLOTANTES 15
  9. #define ENTEROS 7
  10. #define RESULTADO 5
  11. float var[FLOTANTES];
  12. int op[ENTEROS];
  13. float res[RESULTADO];
  14. int i;
  15. void parcial(void);
  16.  
  17. void parcial(void) {
  18.     printf("PARCIALES:\n1=Primer Parcial\n2=Segundo Parcial\n3=Tercer Parcial\nElige el parcial a evaluar: ");
  19.     scanf("%d", &i);
  20.     *
  21.     switch (i) {
  22.         case 1:*
  23.             for (i = 1; i <= 3; i++) {
  24.                 *
  25.                 printf("Estas evaluando el %d%c parcial\n", i, 248);
  26.                 do {
  27.                     printf("Cuantos puntos asignaras de examen en el %d%c parcial: ", i, 248);
  28.                     scanf("%f", &var[1]);
  29.                     if (var[1] > 9) {
  30.                         printf("No puedes poner un valor mayor a 9\n");
  31.                     }
  32.                 } while (var[1] > 9);
  33.                 var[0] = 10 - var[1];
  34.                 printf("Son %.1f puntos de evaluacion continua\n", var[0]);
  35.                 *
  36.                 printf("\nCuantos puntos o firmas maximas de evaluacion continua en el %d%c: ", i, 248);
  37.                 scanf("%f", &var[2]);
  38.                 do {
  39.                     printf("\nCuanto fue su calificacion en el examen: ");
  40.                     scanf("%f", &var[3]);
  41.                     if (var[3] > 10) {
  42.                         printf("La maxima calificacion es 10");
  43.                     }
  44.                 } while (var[3] > 10);
  45.                 printf("\nCuantos puntos o firmas tuvo el alumno considerando que el maximo es %.2f: ", var[2]);
  46.                 scanf("%f", &var[4]);
  47.                 var[5] = (var[1] / 10) * var[3];
  48.                 var[6] = (var[0] / var[2]) * var[4];
  49.                 res[i] = var[5] + var[6];
  50.                 printf("\nEvaluacion de examen: %.2f \nEvaluacion Continua: %.2f \nsu promedio es de: %.2f en el %d%c parcial\n", var[5], var[6], res[i], i, 248);
  51.             }
  52.             var[7] = (res[1] + res[2] + res[3]) / 3;
  53.             printf("El promedio total de cuarto semestre es: %.2f\n", var[7]);
  54.             break;
  55.         case 2:
  56.             do {
  57.                 printf("Cual es la calificacion del primer parcial: ");
  58.                 scanf("%f", &var[7]);
  59.                 if (var[7] > 10) {
  60.                     printf("La calificacion no puede ser mayor a 10");
  61.                 }
  62.             } while (var[7] > 10);
  63.             for (i = 2; i <= 3; i++) {
  64.                 *
  65.                 printf("Estas evaluando el %d%c parcial\n", i, 248);
  66.                 do {
  67.                     printf("Cuantos puntos asignaras de examen en el %d%c parcial: ", i, 248);
  68.                     scanf("%f", &var[1]);
  69.                     if (var[1] > 9) {
  70.                         printf("No puedes poner un valor mayor a 9\n");
  71.                     }
  72.                 } while (var[1] > 9);
  73.                 var[0] = 10 - var[1];
  74.                 printf("Son %.1f puntos de evaluacion continua\n", var[0]);
  75.                 printf("\nCuantos puntos o firmas maximas de evaluacion continua en el %d%c: ", i, 248);
  76.                 scanf("%f", &var[2]);
  77.                 do {
  78.                     printf("\nCuanto fue su calificacion en el examen: ");
  79.                     scanf("%f", &var[3]);
  80.                     if (var[3] > 10) {
  81.                         printf("La maxima calificacion es 10");
  82.                     }
  83.                 } while (var[3] > 10);
  84.                 printf("\nCuantos puntos o firmas tuvo el alumno considerando que el maximo es %.2f: ", var[2]);
  85.                 scanf("%f", &var[4]);
  86.                 var[5] = (var[1] / 10) * var[3];
  87.                 var[6] = (var[0] / var[2]) * var[4];
  88.                 res[i] = var[5] + var[6];
  89.                 printf("\nEvaluacion de examen: %.2f \nEvaluacion Continua: %.2f \nsu promedio es de: %.2f en el %d%c parcial\n", var[5], var[6], res[i], i, 248);
  90.             }
  91.             var[8] = (var[7] + res[2] + res[3]) / 3;
  92.             printf("El promedio total de cuarto semestre es: %.2f\n", var[8]);
  93.             break;
  94.         case 3:
  95.             do {
  96.                 printf("Cual es la calificacion del primer parcial: ");
  97.                 scanf("%f", &var[7]);
  98.                 if (var[7] > 10) {
  99.                     printf("La calificacion no puede ser mayor a 10");
  100.                 }
  101.             } while (var[7] > 10);
  102.             do {
  103.                 printf("Cual es la calificacion del segundo parcial: ");
  104.                 scanf("%f", &var[8]);
  105.                 if (var[8] > 10) {
  106.                     printf("La calificacion no puede ser mayor a 10");
  107.                 }
  108.             } while (var[8] > 10);
  109.             *
  110.             printf("Estas evaluando el %d%c parcial\n", i, 248);
  111.             do {
  112.                 printf("Cuantos puntos asignaras de examen en el %d%c parcial: ", i, 248);
  113.                 scanf("%f", &var[1]);
  114.                 if (var[1] > 9) {
  115.                     printf("No puedes poner un valor mayor a 9\n");
  116.                 }
  117.             } while (var[1] > 9);
  118.             var[0] = 10 - var[1];
  119.             printf("Son %.1f puntos de evaluacion continua\n", var[0]);
  120.             printf("\nCuantos puntos o firmas maximas de evaluacion continua en el %d%c: ", i, 248);
  121.             scanf("%f", &var[2]);
  122.             do {
  123.                 printf("\nCuanto fue su calificacion en el examen: ");
  124.                 scanf("%f", &var[3]);
  125.                 if (var[3] > 10) {
  126.                     printf("La maxima calificacion es 10");
  127.                 }
  128.             } while (var[3] > 10);
  129.             printf("\nCuantos puntos o firmas tuvo el alumno considerando que el maximo es %.2f: ", var[2]);
  130.             scanf("%f", &var[4]);
  131.             var[5] = (var[1] / 10) * var[3];
  132.             var[6] = (var[0] / var[2]) * var[4];
  133.             res[i] = var[5] + var[6];
  134.             printf("\nEvaluacion de examen: %.2f \nEvaluacion Continua: %.2f \nsu promedio es de: %.2f en el %d%c parcial\n", var[5], var[6], res[i], i, 248);
  135.             var[9] = (var[7] + var[8] + res[3]) / 3;
  136.             printf("El promedio total de cuarto semestre es: %.2f\n", var[9]);
  137.             break;
  138.         default:
  139.             printf("No hay un %d%c parcial", i, 248);
  140.             break;
  141.     }
  142.     return;
  143. }
  144. *
  145. int main(void) {
  146.     int j;
  147.     char con[4];
  148.     char materia[16];
  149.     char si[3] = {'s', 'i'};
  150.     system("color 3f");
  151.     do {
  152.         printf("-----------------COLEGIO TECNOLOGICO DE MEXICO---------------\n");
  153.         printf("\n╔═══════════════════════════════════════════════════════════╗");
  154.         printf("\n║ * .:Evaluacion y costos de 4%c Smestre de Informatica:. * *║", 248);
  155.         printf("\n╠═══════════════════════════════════════════════════════════╣");
  156.         printf("\n║ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ║");
  157.         printf("\n║ * * * 1.- Promedios * * * * * * * *2.- Costos * * * * * * ║");
  158.         printf("\n║ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ║");
  159.         printf("\n║ * * * * * * * * * * * *3.-Salir * * * * * * * * * * * * * ║");
  160.         printf("\n╚═══════════════════════════════════════════════════════════╝\n");
  161.         printf(" * * * * * * * * * * * Que hara? ");
  162.         scanf("%d", &op[7]);
  163.         switch (op[7]) {
  164.             case 1:
  165.                 for (j = 9; j >= 0; j--) {
  166.                     printf("\n╔═══════════════════════════════════════════╗\n");
  167.                     printf("\nMATERIAS DISPONIBLES:\nIngles IV\nCalculo Diferencial\nDerecho\nCalculos Financieros II\nQuimica II\nFisica II\nOfimatica\nProgramacion Estructurada\nContabilidad\n");
  168.                     printf("\nEscriba la materia a evaluar: ");
  169.                     fflush(stdin);
  170.                     gets(materia);
  171.                     printf("\nEsta evaluando %s\n", materia);
  172.                     parcial();
  173.                     printf("\nAcaba de evaluar %s\n\a", materia);
  174.                     *
  175.                     printf("╚═════════════════════════════════════════════╝\n");
  176.                     printf("\n\nDesea evaluar otra materia? SI o NO\n");
  177.                     fflush(stdin);
  178.                     gets(con);
  179.                     strcmp(con, si);
  180.                     if (strcmp(con, si) == 0) {
  181.                         * * * * * * *j--;
  182.                         * * * * * * *
  183.                     } else {
  184.                         * * * * * * * * * * j = 0;
  185.                         * * * * * * * * * *
  186.                     }
  187.                 }
  188.                 * * *break;
  189.                 *
  190.                 * * *case 2:
  191.                 * * *printf("Costos y Descuentos por \"BECAS\"\n");
  192.                 * * *break;
  193.                 * * *
  194.         }
  195.         * * *if (op[7] > 3) {
  196.             * * * * * * * * *printf("Opcion invalida intente otra vez");
  197.             * * * * * * * * *
  198.         }
  199.     } while (op[7] > 3);
  200.     printf("Hasta Luego\n");
  201.     system("pause");
  202.     return 0;
  203. }

Etiquetas: final, programa, promedios, proyecto
Atenciˇn: Estßs leyendo un tema que no tiene actividad desde hace mßs de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:25.