/* PROYECTO 3: Calcular Notas de Alumnos
-- Crea un programa en C++ para guardar las notas de N alumnos.
* N tiene que ser mayor o igual que 20 o menor o igual que 30
* Esto se debe de verificar en el programa, y en caso de que el numero de alumnos este fuera del rango se debe de mostrar
la opción de ingresar de nuevo el numero de alumnos.
* Una vez que tengamos los notas guardadas dentro de un arreglo, hay que:
* Sumar todas las calificaciones.
* Mostrar el promedio del salón.
* Mostrar el alumno con nota mas alta.
* Mostrar alumnos con nota promedio (rango de promedio – 1 a promedio + 1).
* Mostrar el alumno con menor nota.
*A los alumnos que tiene una nota menor o igual a 6 se les encargo un trabajo.
* Este trabajo suma un punto mas a su nota.
* Se debe de utilizar el arreglo con las notas originales para generar otro arreglo con las notas modificadas de estos alumnos.
* Imprimir las dos notas en columnas diferentes.
* Al final se debe de mostrar la opción para volver a calcular mas notas de alumnos, o finalizar el programa.
*/
#include<iostream>
#include<conio.h>//Libreria para dar pausa al programa con getch();
using namespace std;
//Crea un programa en C++ para guardar las notas de N alumnos.
int main(){
//Variables
int n, i, alto = 0, bajo = 0, c;// alto y bajo es para tomar el valor de la posicion[i], c es para contar cuantos alumnos hay que tengan menos o igual que 6
float nota[30], suma, prom = 0, notaAlta, notaBaja, notaAdicional[30];//notaAdicional sirve pára los que tengan menos de 6 en nota
bool salir = false;
char resp= 's';
cout<<" * * * ********************************************* * * * "<<endl;
cout<<"* * * * * * **Proyecto#3:Guardar las notas de N Alumnos** * * * * * *"<<endl;
cout<<" * * * ********************************************* * * * "<<endl<<endl;
do{
n = 0, i = 0, c = 0, suma = 0;
do{
cout<<endl<<"\t Escriba cuantos alumnos se van a inscribir para guardar sus notas: ";
cin>>n;//N tiene que ser mayor o igual que 20 y menor o igual que 30
if(n>=20 && n<=30){
cout<<endl<<"\t Camarada, ud. eligio "<<n<<" alumnos. A continuacion, se procede a guardar los datos: "<<endl;getch();
//Si es verdadero, entonces se podrá colocar las N notas
for(i; i<n; i++){
do{// Validacion para que solo acepte numeros desde el 1 al 10
cout<<endl<<"\t\t Nota del alumno #"<<i+1<<": "; cin>>nota[i];
if(nota[i]>=1 && nota[i]<=10){//-1 1 5 10 11
suma += nota[i];// Suma de todas las notas del salon
}else{
cout<<"\t Error!!, solo se permite ingresar notas desde el 1 al 10..."<<endl;getch();
}
}while(nota[i] < 1 || nota[i] > 10);
}
prom= (suma/n);// Promedio de todas las notas del salon
salir=true;//salir ahora sera verdadero, para que de esta forma salga del do-while
}else{
//Si N esta fuera de rango entonces, debe volver a colocar N
cout<<endl<<"\t\t El numero que coloco esta fuera de rango, se permite solo entre 20 a 30 alumnos..."<<endl;getch();
salir=false;
}
}while(!salir);//Verificacion de N alumnos.
notaAlta = 0, notaBaja = 0;
for(i=0; i<n; i++){
if(notaBaja==0){// Para darle un valor directo a nota baja y que esta compare con las siguientes notas.
notaBaja=nota[i];
}
if(nota[i]>notaAlta){// Para conseguir la nota mas alta y saber que alumno fue
notaAlta=nota[i];
alto=i;
}else if(nota[i]<notaBaja){// Para conseguir la nota mas baja y saber que alumno fue
notaBaja=nota[i];
bajo=i;
}
}
cout<<endl<<"**************************************************************************************"<<endl<<endl;
// Mostrar promedio del salon y alumnos con nota promedio (rango de promedio – 1 a promedio + 1).
cout<<endl<<"\t El promedio del salon es de: "<<prom<<endl;getch();
cout<<endl<<"\t Alumnos con nota cercana al promedio: "<<endl<<endl;
for(i=0; i<n; i++){
if(nota[i]<=(prom+1) && nota[i]>=(prom-1)){
cout<<"\t\t Alumno # "<<i+1<<" con nota de "<<nota[i]<<"."<<endl<<endl;
}
}
cout<<endl<<"**************************************************************************************"<<endl<<endl;
getch();
cout<<endl<<"\t La nota mas alta es de: "<<notaAlta<<" y le corresponde al alumno #"<<alto+1<<endl;getch();
cout<<endl<<"\t La nota mas baja es de: "<<notaBaja<<" y le corresponde al alumno #"<<bajo+1<<endl;getch();
cout<<endl<<endl<<"**************************************************************************************"<<endl<<endl;
for(i=0; i<n; i++){// Proceso para encontrar a los alumnos que tengan 6 o menos en su nota para darles un punto adicional
if(nota[i]<=6){
notaAdicional[i]=nota[i]+1;// Guardara por posicion[i] la nota con 6 o menos sumandole el punto adicional.
c++;
}
}
if(c){// Se le sumara un punto a la nota de cada alumno que tenga menos o igual que 6.
cout<<endl<<"\t Hay un total de "<<c<<" Alumnos con nota menor o igual que 6."<<endl;
cout<<endl<<"\t Se les asignara un trabajo, para que sumen un punto a su nota final."<<endl<<endl;getch();
cout<<"\t Alumnos: "<<"\tNotas Originales: "<<"\t Nota Modificadas: "<<endl<<endl;
for(i=0; i<n; i++){// Proceso para encontrar a los alumnos que tengan 6 o menos en su nota para darles un punto adicional
if(nota[i]<=6){
cout<<"\t Alumno #"<<i+1<<": \t"<<nota[i]<<"\t\t\t "<<notaAdicional[i]<<endl;
}
}
}else{
cout<<endl<<"\t No hay alumnos con nota menor o igual que 6..."<<endl;getch();
}
cout<<endl<<endl<<"**************************************************************************************"<<endl<<endl;
do{
cout<<endl<<"\t Desea volver a ingresar notas? (S/N): ";cin>>resp;
if(resp=='S' || resp=='s'){
salir=false;
}else if(resp=='N' || resp=='n'){
cout<<endl<<"\t Adios camarada..."<<endl;
salir=true;
}else{
cout<<endl<<"\t Error!, Debe elegir S o N.."<<endl;
}
}while(resp!='S' && resp!='N' && resp!='s' && resp!='n');
}while(!salir);
cout<<endl<<"\t> > > > > > Hecho por Victor Galarza < < < < < <"<<endl<<endl;
return 0;
}