C/Visual C - trabajo de matrices

 
Vista:

trabajo de matrices

Publicado por Iron Maiden (3 intervenciones) el 13/06/2005 19:46:04
hola amigos de la wqeb del programador necesito hacer el sgte programa:
En el cuarto medio A del colegio Rubén Castro se necesita de un sistema que sea capaz de administrar las notas de los alumnos y determinar su promedio final, indicando automáticamente si el alumno reprobó o aprobó el año. El curso cuenta con 40 alumnos inscritos y los ramos que cursan son 5, de los cuales la única nota conocida es el promedio final. La nota de aprobación del año debe ser superior o igual a 4.0, con un máximo de 7.0 y un mínimo de 1.0. Los datos que el programa debe manejar son:

1. Número de alumno.
2. Nombre completo del alumno.
3. Promedios anuales de los cinco ramos que cursa.

El usuario debe tener un menú en la pantalla que le indique las opciones de:

• Buscar el promedio final de un alumno en particular y saber si aprobó o reprobó el año.
• Mostrar en pantalla el listado del curso con su promedio final y su situación (aprobado/reprobado).
• Opción de abandonar el programa.
• Otras opciones que usted estime conveniente incluir.
ojala me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:trabajo de matrices

Publicado por Angel (3 intervenciones) el 13/06/2005 22:50:10
Yo creo que debes de realizar una matriz de Registros (struct), de la siguiente forma para empezar a trabajar en tu programa.

#include<iostream>
#include<string>
using namespace std;

struct Mi_registro {
string nombre; //Nombre del alumno.
float prom; //Promedio final.
float nota1; //Nota 1.
float nota2; //Nota 2.
string aprobado; //Indicador de aprobado o reprobado.
//etc...... //Demas....
};

int main(){
Mi_registro A //'A' es una matriz del tipo Mi_registro.
int u;
string busqueda;

//***************************Modulo de ingreso de datos*****************************
for (int i=0; i<40; i++){
cout<<"Ingrese el nombre del alumno"<<endl;
cin>>A[i].nombre; //hay una funcion que permite obtener
//toda la linea, era algo asi como "cin.getline"
cout<<"Nota 1"<<endl;
cin>>A[i].nota1;
//Y sigues con los demas datos que necesites
} //Cierra el for.

Luego debes de hallar el promedio, es decir sumas todas las notas y las divides entre el numero de ellas que halla. Recuerda recorrer la matriz que creaste dentro de un mismo "for" desde 0 hasta 40, de uno en uno (i++);
Una vez tengas los promedios almacenados en "A[i].prom" por ejemplo.
Creas el siguiente modulo para hallar los aprobados y reprobados:

//*********************Modulo de Aprobados****************************
for (int i=0; i<40; i++) {
if(A[i].prom>=4) {
A[i].aprobado="Aprobado";
}
else
{
A[i].aprobado="Reprobado";
}
} //Cierra el for.

Listo, ahora debes de sacar por pantalla todos los registros de estudiantes

//********************Modulo de Impresion por pantalla******************

for(int i=0; i<40; i++){
cout<<"Nombre del Alumno: "<<A[i].nombre<<endl;
cout<<"Nota 1: "<<A[i].nota1<<endl;
//Y todos los demas datos que consideres necesarios.
} //Cierra el for.

Luego falta el modulo de busqueda:

*******************Modulo de Busqueda por Nombre*********************
cout<<" Ingrese el Nombre a buscar"<<endl;
cin>>busqueda;
for(int i=0; i<40; i++){
if (busqueda==A[i].nombre){
cout<<"Alumno encontrado"<<endl;
cout<<"Nota1: "<<A[i].nota1<<endl;
//Y todos los demas campos que necesites del registro que creaste (Mi_registro)
u=1;
}
} //Cierra for.

if (u==0) {
cout<<"Alumno no encontrado"<<endl;
}

********************************************************************************
} //Cierra el main.

Bueno, trate de ayudarte lo mas que pude, espero que sea de tu agrado toda esa informacion, recuerda buscar lo de la funcion "cin.getline", o "gets", en la red, esque yo no se como utilizarla, recuerda que sirve para tomar toda la linea que el usuario escriba, es decir:

Introduzca Nombre?
Fulanito Sanchez

...con el "cin" solo va a tomar hasta Fulanito, con el "gets" o "cin.getline" tomara toda la linea.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar