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 - ricarcuc

#1
estoy creando un programa:
1.   Almacenar en un arreglo los datos personales de los alumnos (máximo 40) de un salón de clases (código, nombre, dirección, edad, sexo, cal1, cal2, promedio), calcular el promedio y almacenarlo en el campo promedio, posteriormente imprimir:
a) Lista de los alumnos.
b) Lista de los alumnos que tienen una determinada edad y aprobaron.
c) Promedio del grupo.
d) Promedio de los alumnos comprendido entre un rango de edades especificado por el usuario.

pero cuando selecciono B o C o D el penultimo estudiante ingresado tine un codigo que no deveri y el ultimo que se imprime es 0 ya sea que inicialice en 1 la variable del for o en 0 agradecere su ayuda  :-\ al final del codigo ahi una imagen que muestra el error para esta prueba utilice el ingreso de 4 estudiantes por lo tedioso que es ingresar los 40 y al ingresar los cuarenta estudiantes se produce el mismo error

#include <iostream>
#include <stdlib.h> //NUEVA LIBRERIA
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <string>
#include <F:\c++\proyecto final\libreria validacion de enteros\bibliotecavalidaint.cpp>

using namespace std;
using namespace validacionIngresoint;

struct alumno{
int codigo,cod;
char nombre[50];
char direccion[50];
char sexo[30];

int edad;
float cal1,cal2,prom,sumagrup,promediogrupo,promedioedad;
};


/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main() {

char opc,resp,aux,entero;
string estudiante;
int contador,ingresado=0, salida,i, j,c,k,bandera,edadbuscar;
alumno a[4];

do{
opc=aux;
system ("cls");

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
printf("\tBien Venido Usuario\n");
printf("Elige alguna de las siguientes Opciones\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
printf("\n\ta) Ingresar Alumno\n");
printf("\tb) Lista de Alumnos\n");
printf("\tc) Promedio del grupo\n");
printf("\td) Promedio de alumnos de determinada edad\n");
cout<<"--> ";cin>>opc;
do{
bandera=aux;
opc=tolower(opc);
if((opc!='a')&&(opc!='b')&&(opc!='c')&&(opc!='d'))
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
printf("\n---<Por favor elija una opcion valida>---: ");
bandera=1;
cin>>opc;
}
}while(bandera==1);

switch(opc){

case 'a':
{

for(i=1;i<=4;i++)
{   
system ("cls");
a[i].cod=i;
cout << "\n Codigo de alumno: "<<a[i].cod;
getchar ();
cout << "\nIngrese nombre del estudiante: ";
gets(a[i].nombre);
                            cout << "Ingrese direccion del estudiante: ";
                            gets(a[i].direccion);
cout << "Ingrese sexo del estudiante: ";
gets(a[i].sexo);

cout << "Ingrese edad del Estudiante: ";

do{
a[i].edad=tomarInt();

if(a[i].edad<1||a[i].edad>100)
{
cout << "\nEdad Ingresada no valida la edad deve de ser mayor a 0 años y menor a 100 o comuniquese con proveedor del sistema: \n";
}
cout<<"("<<i<<")";
}while (a[i].edad<1||a[i].edad>100);

                            cout << "Ingrese calificacion 1 (1-100pts.): ";
                            do{
a[i].cal1=tomarInt();
if(a[i].cal1>100||a[i].cal1<1)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"\nNota ingresada debe ser de 1-100 pts. \e";
}
}while(a[i].cal1>100||a[i].cal1<1);

cout << "Ingrese calificacion 2 (1-100pts.): ";

do{
a[i].cal2=tomarInt();
if(a[i].cal2>100||a[i].cal2<1)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"\nNota ingresada debe ser de 1-100 pts.\e ";
cout<<"("<<i<<")";
}
cout<<"("<<i<<")";
}while(a[i].cal2>100||a[i].cal2<1);
cout<<"\n\n";
a[i].prom = (a[i].cal1 + a[i].cal2)/2;
a[i].sumagrup=a[i].sumagrup+a[i].prom;
system ("pause");
ingresado++;
            }
cout<<"Usted ingreso ";

a[i].promediogrupo=(a[i].sumagrup)/40;
system ("pause");
    system ("cls");

break;
   }
   
case 'b':
{
   
   
    system ("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
      cout << "\tLista de Alumnos\n\n" << endl;
     
  if(ingresado>1)
{
  for(j=1; j<=i; j++)
        {
        if(ingresado>1||ingresado<41)
  {
   
    cout << "SU CODIGO" << "----> " << a[j].cod << endl;
  cout << "SU NOMBRE" << "----> " << a[j].nombre << endl;
  cout << "CALIFICACION 1" << "----> " << a[j].cal1 << endl;
  cout << "CALIFICACION 2" << "----> " << a[j].cal2 << endl;
    cout << "PROMEDIO" << "----> " << a[j].prom << endl;
    cout <<"________________________________________________________________________\n";
    putchar('\a');
    }
        }
   
     }
     else
     {
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
      printf("\t<<< No ahi datos Ingresados >>>\n\n");
}
      break;
    }

         case 'c':
   {


        system ("cls");
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
        if(ingresado++>0){
   
      cout << "\n\tEl promedio del grupo de alumnos ingresado es de: " << a[i].promediogrupo<< endl;
  }
  else
  {
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
  cout << "\n\t<<NO AHI DATOS INGRESADOS>>\n";
   }
 
system ("pause");
system ("cls");
      break;
   }
   case 'd':{
do{
if(ingresado>1)
{

          system ("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
cout <<"\t>>>>>Verificaremos promedio de notas segun Edad <<<<<\n\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
      cout << "\n Ingrese edad a buscar: " << endl;
     
  do
  {
getchar();
  edadbuscar=tomarInt();
   
for(k=1; k<=i; k++)
    {
    if (edadbuscar == a[k].edad)
    {
    a[k].promedioedad=a[k].promedioedad+a[k].prom ;
    contador=contador+1;
    }
    }
if(edadbuscar!=a[k].edad)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
cout<<"\n No existen alumnos de "<<edadbuscar<<" años\e"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"\n Si decea realizar otra busque digite s: ";
cin>>resp;
}

    }while((edadbuscar!=a[k].edad)&&(resp=='s'||resp=='S'));
   
    cout<<"alumnos de esta edad: "<<contador;
    a[k].promedioedad=a[k].promedioedad/contador;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
    cout<<"\n\tEl promedio total alumnos de "<<edadbuscar<<" años es de: "<<a[k].promedioedad;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
    cout<<"\nDigite S para realizar otra CONSULTA: ";
   
cin>>resp;
    system ("cls");
    }
    else{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
    cout<<"\n\t>>>> NO AHI ALUMNOS INGRESADOS <<<<\n\n";
   }
}while(resp=='s'||resp=='S');

break;
   }

   }

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"\nDigite S para Realizar otra operacion segun opciones de menu: ";
    cin>>resp;
    }while(resp=='s'||resp=='S');

return 0;
}