Vous êtes sur la page 1sur 2

// CALIFIC 1.

CPP
/* PROGRAMA QUE PERMITE PROCESAR LAS CALIFICACIONES DE UN CURSO DE ESTRUCTUAS DE
DATOS,
CLASIFICA LA NOMINA ALFABETICAMENTE POR EL NOMBRE DESCENDENTEMENTE POR E
L RENDIMIENTO.
PARA LO CUAL USAO PARA LO CUAL UTILIZA UN ARREGLO DE ESTRUCTURAS Y PUNTE
ROS A FUNCION */
// INCLUSION DE LIBRERIAS:
#include <iostream.h>
// Maximo de estudiante:
#define MAX 50
// Constante que especifica la finalizacion de la lectura
#define FINAL "FIN"
// Definicion del patron de la estructura:
struct estudiante{
char nombre[MAX];
float nt1,n2,nt3,prom;
};
// Arreglo de estructuras:
struct estudiante nomina[MAX];
// Tamaño logico del arreglo:
int tl;
// Tipo puntero a funcion:
typedef int (*orden) (struct estudiante x, struct estudiante y, int camp
o);
// Campo=0 --> por nombre, campo<>0 --> por promedio
// Prototipos de funciones:
struct estudiante lectura();
void escritura(struct estudiante);
int compara(struct estudiante x, struct estudiante y, int campo); /* Ret
orna <0 si el campo comparado de x es menor que el de y,
>0 si el campo comparado de z es mayor que el de y,
= 0 si son iguales los campos*/
int ascendente(struct estudiante x, struct estudiante y, int campo); //
Verifica que los campos de z e y se encuentren ordenados ascendentemente
int descendente(struct estudiante x, struct estudiante y, int campo);//
Verifica que los campos de x e y se encuentren ordenados descendentemente
int LeerNomina();
void EscribirNomina();
void ClasificarNomina(orden o, int c);
// Definiciones de funciones:
void main(){
//Ingresar la nomina
tl=LeerNomina();
cout<<"Nomina Original \n";
EscribirNomina();
//Clasificacion de la nomina ascendentemente por el nombre:
ClasificarNomina(ascendente,0);
cout<<"Nomina clasificada alfabeticamente por el nombre:\n";
EscribirNomina();
//Clasificacion de la nomina descendentemente por el promedio:
ClasificarNomina(descendente,1);
cout<<"Nomina por antiguedad:\n";
EscribirNomina();
}
int LeerNomina(){
/* Lee los datos de los estudiantes de un curso de estructuras de datos
hasta que en el nombre se ingrese la palabra "FIN" o
el tamaño logico del arreglo alcance el tamaño fisico*/
struct elemento x;
for (tl=0; tl < MAX; tl++){
nomina[tl]=lectura();
if (strcmp(nomina[tl], FINAL) ==0) return tl;
}
return tl;
}
void EscribirNomina(){
/* Despliega los datos de los estudiantes de un curso de estructuras de
datos*/
for (int i=0; i < tl; i++){
escritura(nomina[i]
}
}
void ClasificarNomina(orden od, int cp){
/* Clasifica la nomina de acuerdo a los valores de od y cp
}

Vous aimerez peut-être aussi