Jump to content

ayuda con programar en C


Recommended Posts

así no vas a llegar a ningún lado, rootea el código del ash williams, que está súper entendible y claro

si la estructura de ash william esta super buena y el trabajo que hizo se lo agradesco pero necesito que recomienden algo mas y tambien enviar a un txt la informacion guardada


#include <stdlib.h>
#include <stdio.h>
typedef struct{
char asignatura[10];
int nota[6];
int pond[4];
int promedio;
}Notas;
typedef struct{
char nombre[10];
char rut[12];
Notas notas[2];
} Alumno;
int main(void)
{
float notas[100],pond[100], moda, mayor, menor, promedio = 0;
int N, i, j, encontro, mayorRepeticion = 0;
{   int opcion,cont,i,x,w,posicion;
       Alumno arreglo_alumnos[100];
       cont = 0;

       do{
       printf("\nMenu de Opciones\n");
       printf("1.Ingresar Datos del Alumno   \n");
       printf("2.Mostrar Datos del Alumno \n");
       printf("3.Salir                           \n");
       printf("\n\n");
       printf("ingrese opcion : ");
       scanf("%d",&opcion);
       switch (opcion)
       {
         case 1:
         {
                 printf("Ingreso Alumno\n");
                 if(cont < 99)
                 {
                  printf("Nombre Alumno : ");
                  gets(arreglo_alumnos[cont].nombre);
                  gets(arreglo_alumnos[cont].nombre);
                  printf("Rut Alumno : ");
                  gets(arreglo_alumnos[cont].rut);
                  printf("Asignatura 1 : \n");
                  printf("Nombre Asignatura : ");
                  gets(arreglo_alumnos[cont].notas[0].asignatura);
                  printf("Cantidad de notas?:_");
                  scanf("%d",&N);
                   for(i = 0; i < N ;i++){
                   printf("Ingrese la nota %d: ",i + 1);
                   scanf("%f",&notas[i]);
                   printf("Ingrese la %d ponderacion: ",i + 1);
                   scanf("%f",&pond[i]);
                   cont = cont + 1;
                   }
                       mayor = menor = notas[0];
                       for(i = 1; i < N ;i++){
                           if(notas[i] > mayor){
                               mayor = notas[i];
                               }
                           if(notas[i] < menor){
                               menor = notas[i];
                               }
                       }
                       for(i = 0; i < N ;i++){
                           encontro = 0;
                           for(j = i-1; j >= 0 && encontro != 1; j--){
                               if(notas[i] == notas[j]){
                               encontro = 1;
                               }
                           }
                       if(encontro == 0){
                           encontro = 1;
                           for(j = i + 1; j < N; j++){
                               if(notas[i] == notas[j]){
                                   encontro++;
                                   }
                               }
                           if(encontro > mayorRepeticion){
                               mayorRepeticion = encontro;
                               moda = notas[i];
                               }
                           }
                       promedio = promedio + notas[i];
                   }
               printf("\nPromedio de notas: %.2f\n",promedio/N);
               printf("Moda: %.2f\n",moda);
               printf("Maxima nota: %.2f\n",mayor);
               printf("Minima nota: %.2f\n",menor);
               if (promedio >= 40)
                   {
                       printf("La asignatura fue APROBADA!");}
               else {
                       printf("La asignatura fue REPROBADA!");
                       }
               printf("\n\n\n");
               printf("Asignatura 2 : \n");
               printf("Nombre Asignatura : ");
               gets(arreglo_alumnos[cont].notas[1].asignatura);
               printf("Cantidad de notas?:_");
               scanf("%d",&N);
               for(i = 0; i < N ;i++){
               printf("Ingrese la nota %d: ",i + 1);
               scanf("%f",&notas[i]);
               printf("Ingrese la %d ponderacion: ",i + 1);
               scanf("%f",&pond[i]);
               cont = cont + 1;
}
mayor = menor = notas[0];
for(i = 1; i < N ;i++){
if(notas[i] > mayor){
mayor = notas[i];
}
if(notas[i] < menor){
menor = notas[i];
}
}
for(i = 0; i < N ;i++){
encontro = 0;
for(j = i-1; j >= 0 && encontro != 1; j--){
if(notas[i] == notas[j]){
encontro = 1;
}
}
if(encontro == 0){
encontro = 1;
for(j = i + 1; j < N; j++){
if(notas[i] == notas[j]){
encontro++;
}
}
if(encontro > mayorRepeticion){
mayorRepeticion = encontro;
moda = notas[i];
}
}
promedio = promedio + notas[i];
}
printf("\nPromedio de notas: %.2f\n",promedio/N);
printf("Moda: %.2f\n",moda);
printf("Maxima nota: %.2f\n",mayor);
printf("Minima nota: %.2f\n",menor);
if (promedio >= 40)
{
printf("La asignatura fue APROBADA!\n");
} else {
printf("La asignatura fue REPROBADA!\n");
arreglo_alumnos[cont].notas[1].promedio = (arreglo_alumnos[cont].notas[1].nota[0] + arreglo_alumnos[cont].notas[1].nota[1] + arreglo_alumnos[cont].notas[2].nota[2]) / 3;
}
}
else
                 {
                         printf("Imposible completar operación\n");
                 }
         }
         case 2:
         {
                 if(opcion == 2){
                 printf("Ingrese el numero de lista del alumno : ");
                 scanf("%d",&posicion);
                 if(posicion-1 < cont)
                 {
                       printf("Datos del alumno : \n");
                       printf("Nombre Completo : %s \n", arreglo_alumnos[posicion-1].nombre);
                       printf("Nombre Completo : %s \n", arreglo_alumnos[posicion-1].nombre);
                       printf("asignatura : %s \n", arreglo_alumnos[cont].notas[0].asignatura);
                       printf("\nPromedio de notas: %.2f\n",promedio/N);


                 }
                 else
                 {

                         printf("Alumno no existe....");
                 }
                 }
         }
       }
       }while(opcion < 3);
return 0;
}
}

Edited by soulsitg
Link to comment
Share on other sites

así no vas a llegar a ningún lado, rootea el código del ash williams, que está súper entendible y claro

si la estructura de ash william esta super buena y el trabajo que hizo se lo agradesco pero necesito hacer algo asi


typede fstruct
char asignatura[50];
int nota[6];
int pond [6];
int promedio;
}Notas;

como dejo esto que sea "Nota i hasta tener una ponderacion =100%

 

gets(arreglo_alumnos[cont].notas[0].asignatura);
printf("Nota 1 : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].nota[0]);
printf("ponderacion : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].pond[0]);
printf("Nota 2 : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].nota[1]);
printf("ponderacion : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].pond[1]);
printf("Nota 3 : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].nota[2]);

la ponderacion deberia depender de la cantidad de notas que tengas..

despues de leer las notas, y leer las ponderaciones.. sumai las puras ponderaciones no mas..y esperai a que te de el 100% o sino repetir la accion no mas.. atras te deje una idea de como hacerlo.. es arto pajero andar leyendo 1x1.. y sobre todo cuando tienes que leer distintas cantidades de notas y ponderaciones..

Link to comment
Share on other sites

' timestamp='1341648923' post='17910250']

así no vas a llegar a ningún lado, rootea el código del ash williams, que está súper entendible y claro

si la estructura de ash william esta super buena y el trabajo que hizo se lo agradesco pero necesito hacer algo asi


typede fstruct
char asignatura[50];
int nota[6];
int pond [6];
int promedio;
}Notas;

como dejo esto que sea "Nota i hasta tener una ponderacion =100%

 

gets(arreglo_alumnos[cont].notas[0].asignatura);
printf("Nota 1 : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].nota[0]);
printf("ponderacion : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].pond[0]);
printf("Nota 2 : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].nota[1]);
printf("ponderacion : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].pond[1]);
printf("Nota 3 : ");
scanf("%d",&arreglo_alumnos[cont].notas[0].nota[2]);

la ponderacion deberia depender de la cantidad de notas que tengas..

despues de leer las notas, y leer las ponderaciones.. sumai las puras ponderaciones no mas..y esperai a que te de el 100% o sino repetir la accion no mas.. atras te deje una idea de como hacerlo.. es arto pajero andar leyendo 1x1.. y sobre todo cuando tienes que leer distintas cantidades de notas y ponderaciones..

ajajajajajaja si vastante pajero xD es una nota no creo que aya una forma mas simple

al final deje otra manera si puedes miralo denuevo

Edited by soulsitg
Link to comment
Share on other sites

hmm.. teni el enunciado completo? asi como por ser :rolleyes: por que haz cambiado el codigo un monton de veces y ni tu sabes a lo que quieres llegar :mmm:

empezaste con funciones, ahora casi ni veo los struct.. ahora ni lees de texto.. :mellow:

Link to comment
Share on other sites

' timestamp='1341650397' post='17910260']

hmm.. teni el enunciado completo? asi como por ser :rolleyes: por que haz cambiado el codigo un monton de veces y ni tu sabes a lo que quieres llegar :mmm:

empezaste con funciones, ahora casi ni veo los struct.. ahora ni lees de texto.. :mellow:

 

 

x2, espero el enunciado

Edited by zafrada
Link to comment
Share on other sites

' timestamp='1341650397' post='17910260']

hmm.. teni el enunciado completo? asi como por ser :rolleyes: por que haz cambiado el codigo un monton de veces y ni tu sabes a lo que quieres llegar :mmm:

empezaste con funciones, ahora casi ni veo los struct.. ahora ni lees de texto.. :mellow:

 

 

x2, espero el enunciado

aqui va el anunciado

 

 

La tarea consiste en escribir un programa en C que permita llevar el control de las calificaciones de los ramos de un alumno durante un semestre.

Lo anterior significa que el programa debe ser capaz de registrar y modificar calificaciones de las asignaturas que tiene el alumno y entregar opciones para que se calculen las notas finales cuando todas las calificaciones estén registradas.

Considere que el máximo de asignaturas a manejar es 6 y que el máximo de calificaciones por asignatura es 10. Cada asignatura requiere un número de calificaciones (cada una con su respectiva ponderación) para determinar la nota final.

El programa debe ser capaz de realizar las siguientes tareas:

· Cargar las asignaturas, ponderaciones y calificaciones desde un archivo de texto.

· Realizar modificaciones, eliminaciones y cambios de cualquier especie.

· Grabar asignaturas, ponderaciones y calificaciones hacia un archivo de texto.

· Leer el archivo y ingresar notas que no fueron ingresada y no sobreescribir notas que estan guaradada

Edited by soulsitg
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...