para descargar el archivo

Anuncio
Cátedra I Informática
Autor I Carlos Bartó
Examen de regularidad
Nombre:
Fecha: 25/02/07
NOTA:
Carrera:
Matrícula:
En una planilla llamada notas.txt se tienen cargadas las notas de 50 alumnos de un
curso ordenadas de la siguiente manera: columna 1: numero de matricula del
alumno, columna 2: nota del primer parcial, columna 3: nota del segundo parcial y
columna 4: nota del tercer parcial. Realice un programa en C++ que:
a) Guarde en un arreglo denominado datos los valores que se encuentran en la
planilla notas.txt (10 puntos).
b) Permita el ingreso de la nota de los trabajos finales para cada alumno y
guarde esos valores en una columna en el arreglo datos (10 puntos).
c) A través de una función, calcule el promedio de las cuatro notas de cada
alumno y guardelas en un arreglo denominado promedio en donde en la primer
columna se encuentre la matricula del alumno y en la segunda el promedio de
las cuatro notas. Muestre desde el main ( ) una tabla que contenga los
valores del arreglo promedio (20 puntos).
d) Con una función llamada estadística calcule y muestre la cantidad de alumnos
que tienen una nota menor que 4, la cantidad de alumnos con nota mayor o
igual que 4 y menor que 6 y la cantidad de alumnos con nota mayores o igual
que 6 (20 puntos).
e) Calcule mediante una función el valor máximo de las notas promedio de todos
los alumnos y muéstrela desde el main (10 puntos)
f) Calcule el valor relativo de la nota de cada alumno (valrelativo=nota
promedio del alumno/nota máxima) y guárdelas en un archivo denominado
valorrel.txt en donde la primer columna tenga la matricula del alumno y en la
segunda columna el valor relativo (30 puntos)
Cátedra I Informática
Autor I Carlos Bartó
Solución
#include<iostream>
#include<fstream>
#include<math.h>
#include <cstdlib>
#include <iomanip>
using namespace std;
const int elem=50;
int main ()
{
float datos [elem][5];
float promedio[elem][2];
void calcprom(float [elem][5], float [elem][2]);
void estadistica(float [elem][2]);
float maximo(float [elem][2]);
float valmax;
ifstream lectura;
int i, j;
char nombre[30]="notas.txt";
lectura.open(nombre);
if (lectura.fail())
{
cout<<"El archivo no se encontro."<<endl;
system("pause");
exit(1);
};
for (i=0; i<elem; i++)
{
for (j=0; j<4; j++)
{
lectura >>datos[i][j];
}
}
lectura.close();
for (i=0; i<elem; i++)
{
cout<<"Ingrese las notas de los trabajos finales para el alumno "<<datos[i][0]<<endl;
cin >>datos[i][4];
}
calcprom(datos, promedio);
Cátedra I Informática
Autor I Carlos Bartó
cout<<"---------------------------------"<<endl;
cout<<setw(6)<<"Matricula"<<setw(15)<<"Promedio"<<endl;
cout<<"---------------------------------"<<endl;
for (i=0;i<elem;i++)
{
cout<<setw(5)<<promedio[i][0]<<setw(18)<<promedio[i][1]<<endl;
}
cout<<"---------------------------------"<<endl;
system("pause");
estadistica(promedio);
valmax=maximo(promedio);
cout<<"La nota promedio maxima fue de "<<valmax;
system("pause");
ofstream guardar;
char nombre2[30]="valrelativo.txt";
guardar.open(nombre2);
if (guardar.fail())
{
cout<<"El archivo no se encontro."<<endl;
system("pause");
exit(1);
};
guardar<<"Valores relativos: "<<endl;
for (i=0; i<elem; i++)
{
guardar<<promedio[i][0]<<" ";
guardar<<promedio[i][1]/valmax<<endl;
}
guardar<<endl;
guardar.close();
return 0;
}
// Funciones
void calcprom (float datos[elem][5], float promedio[elem][2])
{
int i;
for (i=0; i<elem; i++)
{
promedio[i][0]=datos[i][0];
promedio[i][1]=(datos[i][1]+datos[i][2]+datos[i][3]+datos[i][4])/4;
}
return;
}
void estadistica (float promedio[elem][2])
{
int i;
int a=0;
Cátedra I Informática
Autor I Carlos Bartó
int b=0;
int c=0;
for (i=0; i<elem; i++)
{
if(promedio[i][1]<4)
a=a+1;
else if (promedio[i][1]>=4&& promedio[i][1]<6)
b=b+1;
else if (promedio[i][1]>=6)
c=c+1;
}
cout<<a<< " alumnos tuvieron una nota menor que 4"<<endl;
cout<<b<< " alumnos tuvieron una nota igual o mayor que cuatro y menor que 6"<<endl;
cout<<c<< " alumnos tuvieron una nota mayor o igual que 6"<<endl;
system("pause");
}
return;
float maximo (float promedio[elem][2])
{
int i;
float max=promedio[0][1];
for (i=1; i<elem; i++)
{
if (promedio[i][1]>max)
{
max=promedio[i][1];
}
}
return max;
}
Descargar