[C con Clase] Ayuda con estructuras y búsqueda!.
David Gonzalez H
davidgh en etb.net.co
Mie Abr 25 05:00:09 CEST 2007
Hola a todos!.
Me hice este pequeño snippet de código para una tarea de la U, el uso es
asi: Se ingresa el estado, código y nota del alumno usando estructuras y un
arreglo para almacenar n records, luego se muestran en pantalla los dats
introducidos y se muetra la mayor nota y el código del ealumno que la
obtuvo. Pero ahora el profesor nos pide que ordenenomos a los estudiantes
por código, o por nota
La cosa es que ni siguiendo el _gran_ ;-) curso de C Con Clase he podido
entender muy bien, o mejor implementar los algorimos de ordenamiento, aqui
os pego el programa para ver si algno me puede dar una mano con el modo de
hacer lo de ordenamiento.
Gracias:
**** inicio ****
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <conio2.h>
using namespace std;
typedef unsigned short int USHINT; //Para ahorrar carreta
struct es{ //Declaracion del tipo de estructura
USHINT id; //Contador para los registros introducidos
char estado; //variables miembro
int codigo;
double nota;
}es={0,'a',0,0.0};
USHINT ELEM=3;
int main(int argc, char *argv[], char *env[]){
clrscr();
struct es tabla[ELEM]; //Instancia un arreglo del tipo
//estructura es
//USHINT TAM=sizeof(tabla)/sizeof(tabla[0]);
double may = 0.0; //La nota mayor
USHINT pos = 0, num = 0;//La posicion de la mejor nota
textcolor(6);
cout << "\n\n\n\t\t PROGRAMA PARA GUARDAR LAS NOTAS DE\n";
cout << "\t\t LOS ESTUDIANTES DE DE PROGRAMACION BASICA\n\n\n\n";
//Captura los datos guardandolos en el arreglo
for(int i=0; i<ELEM; i++){
textcolor(i+1);
tabla[i].id=i;
cout << "\n\t REGISTRO NUMERO "<<i+1<<endl;
cout << "\t Ingrese el estado del alumno (a/i): ";
cin >> tabla[i].estado;
cout << "\t Ingrese el codigo del alumno: 20071020";
cin >> tabla[i].codigo;
cout << "\t Ingrese la nota del alumno: ";
cin >> tabla[i].nota;
num += 1;
}
//Muestra los datos iterando el arreglo
textcolor(6);
cout << "\n\t REGSITRO DE LOS ALUMNOS" <<endl;
for(int i=0; i<ELEM; i++){
textcolor(i+2);
cout << "\n\t ALUMNO "<< i+1 <<endl;
cout << "\n\t El estado del alumno es: "
<< tabla[i].estado <<endl;
cout << "\t Codigo del alumno: 200710200"
<< tabla[i].codigo <<endl;
cout << "\t Nota del alumno : <"
<< tabla[i].nota << ">" <<endl;
}
//Itera el arreglo y muestra la nota mayor
for(int i=0; i<ELEM; i++){
if(tabla[i].nota > may){
may = tabla[i].nota;
pos = tabla[i].codigo;
}
}
textcolor(8);
cout << "\n\t\t\t Se ingresaron: " << num << " alumnos\n\n";
textcolor(13);
cout << "\t\t\t La nota mayor es: <" << may << ">"<<endl
<< "\t\t\t Y la obtuvo el codigo: 200710200"<< pos << endl;
getch();
textcolor(0);
return 0;
}
**** FIN ****
PS:
Perdonen mi modo chapucero de programar, peor estoy en primero :'-(
Mil gracias!.
---
DAVID GONZALEZ H.
Ingeniería de Sistemas
Universidad Distrital
GNU/Linux
Administracion de redes y servidores
Más información sobre la lista de distribución Cconclase