Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Autores: Joel Cesar Fernandez Segura
- Edinson Saldaña Ramos
- Fecha: 12/09/2014
- Tema: Ordenamiento de Registros
- */
- #include<iostream>
- #include<cstdlib>
- #include<string.h>
- #define max 100
- #define max_char 50
- using namespace std;
- struct persona{
- int codigo;
- char nombres[max_char] ;
- char apellidos[max_char];
- };
- struct persona alumno[max], aux;
- void menu();
- void registrar_alumnos(int);
- void mostrar_alumnos(int);
- void mostrar_alumnos_apellido(int);
- void mostrar_alumnos_codigo(int);
- void ordenacion_burbuja_nombre(int);
- void ordenacion_burbuja_apellido(int);
- void ordenacion_burbuja(int);
- /*--------------- Funcion Principal --------------------------*/
- int main(void){
- system("color 0a");
- int opcion;
- int nro=0;
- do{
- menu();
- cin>>opcion;
- switch(opcion){
- case 1: cout<<"\n\nCANTIDAD DE ALUMNOS A REGISTRAR:";
- cin>>nro;
- registrar_alumnos(nro);
- break;
- case 2: mostrar_alumnos(nro);
- break;
- case 3: ordenacion_burbuja_nombre(nro);
- mostrar_alumnos(nro);
- break;
- case 4: ordenacion_burbuja_apellido(nro);
- mostrar_alumnos_apellido(nro);
- break;
- case 5: ordenacion_burbuja(nro);
- mostrar_alumnos_codigo(nro);
- break;
- case 6: return 0;
- default: cout<<"\nINGRESE UNA OPCION VALIDA...\n"; break;
- }
- system("pause"); system("cls");
- }while(opcion!=6);
- }
- /*--------------- Muestra el Menu --------------------------*/
- void menu(void){
- cout<<"\n\t\t[ REGISTRO DE ALUMNOS ]\n";
- cout<<"\t\t----------------------------\n\n";
- cout<<" 1. REGISTRAR ALUMNOS "<<endl;
- cout<<" 2. MOSTRAR ALUMNOS "<<endl;
- cout<<" 3. MOSTRAR ALUMNOS POR NOMBRE "<<endl;
- cout<<" 4. MOSTRAR ALUMNOS POR APELLIDO "<<endl;
- cout<<" 5. MOSTRAR ALUMNOS POR CODIGO "<<endl;
- cout<<" 6. SALIR "<<endl;
- cout<<"\n Ingrese opcion : ";
- }
- /*----------------------- Funcion para Registrar Alumnos --------------------------*/
- void registrar_alumnos(int nro){
- system("cls");
- for(int i=0; i<nro;i++){
- cout<<"\n\n\t\t[ REGISTRO ]\n";
- cout<<"\t\t------------";
- cout<<"\n\tDATOS DEL ALUMNO #"<<i+1;
- cout<<"\n\n\tCODIGO:"; cin>>alumno[i].codigo;
- cin.ignore(); cout<<"\n\tNOMBRES:"; cin.getline(alumno[i].nombres,max_char);
- cin.ignore(); cout<<"\tAPELLIDOS:"; cin.getline(alumno[i].apellidos,max_char);
- system("cls");
- }
- cout<<"\n\n\t REGISTRO COMPLETO...\n\n";
- }
- /*-------------------- Funcion que muestra a todos los alumnos registrados ------------------*/
- void mostrar_alumnos(int nro){
- if(nro==0){
- cout<<"\n\nNO HAY ALUMNOS REGISTRADOS...\n";
- }else { system("cls");
- cout<<"\n\t|ORDEN| NOMBRES | APELLIDOS | CODIGO |"<<endl;
- cout<<"\n\t------------------------------------------------------------------\n";
- for(int i=0;i<nro;i++){
- cout<<"\t "<<i<<" "<<alumno[i].nombres<<" "<<alumno[i].apellidos<<" "<<alumno[i].codigo<<endl;
- cout<<"\n\t------------------------------------------------------------------\n";
- }
- cout<<endl<<endl;
- }
- }
- /*-------------------- Funcion que muestra a todos los alumnos para la ordenacion por apellido ------------------*/
- void mostrar_alumnos_apellido(int nro){
- if(nro==0){
- cout<<"\n\nNO HAY ALUMNOS REGISTRADOS...\n";
- }else { system("cls");
- cout<<"\n\t|ORDEN| APELLIDOS | NOMBRES | CODIGO |"<<endl;
- cout<<"\n\t------------------------------------------------------------------\n";
- for(int i=0;i<nro;i++){
- cout<<"\t "<<i<<" "<<alumno[i].apellidos<<" "<<alumno[i].nombres<<" "<<alumno[i].codigo<<endl;
- cout<<"\n\t------------------------------------------------------------------\n";
- }
- cout<<endl<<endl;
- }
- }
- /*-------------------- Funcion que muestra a todos los alumnos para la ordenacion por codigo ------------------*/
- void mostrar_alumnos_codigo(int nro){
- if(nro==0){
- cout<<"\n\nNO HAY ALUMNOS REGISTRADOS...\n";
- }else { system("cls");
- cout<<"\n\t|ORDEN| CODIGO | NOMBRES | APELLIDOS |"<<endl;
- cout<<"\n\t-----------------------------------------------__-------------------\n";
- for(int i=0;i<nro;i++){
- cout<<"\t "<<i<<" "<<alumno[i].codigo<<" "<<alumno[i].nombres<<" "<<alumno[i].apellidos<<endl;
- cout<<"\n\t------------------------------------------------------------------\n";
- }
- cout<<endl<<endl;
- }
- }
- /*-----------------Ordenacion de Burbuja para los nombres --------------------------*/
- void ordenacion_burbuja_nombre(int n){
- int i,j, bandera;
- int temp;
- for(i=1; i<n; i++)
- {bandera=0; //inciamos la bandera en 0
- for(j=n-1; j>=i; j--){
- temp=strcmp(alumno[j-1].nombres,alumno[j].nombres);
- if(temp>0){
- aux=alumno[j];
- alumno[j]=alumno[j-1];
- alumno[j-1]=aux;
- bandera=1; //si hubo cambio cambiamos la bandera a 1
- }
- }
- if (bandera==0)
- break; //si no hubo cambios entonces salir del for
- }
- }
- /*-------------------Ordenacion de burbuja para los apellidos --------------------------*/
- void ordenacion_burbuja_apellido(int n){
- int i,j, bandera;
- int temp;
- for(i=1; i<n; i++)
- {bandera=0; //inciamos la bandera en 0
- for(j=n-1; j>=i; j--){
- temp=strcmp(alumno[j-1].apellidos,alumno[j].apellidos);
- if(temp>0){
- aux=alumno[j];
- alumno[j]=alumno[j-1];
- alumno[j-1]=aux;
- bandera=1; //si hubo cambio cambiamos la bandera a 1
- }
- }
- if (bandera==0)
- break; //si no hubo cambios entonces salir del for
- }
- }
- /*------------------------ ordenacion de burbuja para los codigos --------------------------*/
- void ordenacion_burbuja(int n){
- int i,j, bandera;
- for(i=1; i<n; i++)
- {bandera=0; //inciamos la bandera en 0
- for(j=n-1; j>=i; j--){
- if(alumno[j-1].codigo>alumno[j].codigo){
- aux=alumno[j];
- alumno[j]=alumno[j-1];
- alumno[j-1]=aux;
- bandera=1; //si hubo cambio cambiamos la bandera a 1
- }
- }
- if (bandera==0)
- break; //si no hubo cambios entonces salir del for
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement