Como se podría ordenar por el método de la burbuja

Iniciado por TheMainStayz, 2 Octubre 2015, 05:07 AM

0 Miembros y 1 Visitante están viendo este tema.

TheMainStayz

Hola, quisiera saber como se podría ordenar este programa por el método de la burbuja según sus ID (numero de trabajador). Gracias.

#include <stdio.h>
#include<iostream>
#include <stdlib.h>
#include <string.h>
#include<fstream>
#include <windows.h>
#include <ctype.h>
using namespace std;
class Inicio
{
   protected:
      protected:
      int i,j;
      
   public:
      void Portada();
      void Portada(int);
};
void Inicio::Portada(int j1 )
{
   char integrante1[]="\n\t\t\t Batman Lopez Cristian";
   char integrante2[]="\n\t\t\t Gibran Efrain Volkov";
   char integrante3[]="\n\t\t\t Alvarez Juarez Jose Guadalupe";
   char integrante4[]="\n\t\t\t Valle Breña Alezita";
   for(j1=0;j1<integrante1[j1]!='\0';j++)
   {
      printf("%c",integrante1[j]);
      Sleep(10);
   }
   for(j1=0;j1<integrante2[j1]!='\0';j++)
   {
      printf("%c",integrante2[j]);
      Sleep(10);
   }
   for(j1=0;j1<integrante3[j1]!='\0';j++)
   {
      printf("%c",integrante3[j]);
      Sleep(10);
   }
   for(j1=0;j1<integrante4[j1]!='\0';j++)
   {
      printf("%c",integrante4[j]);
      Sleep(10);
   }
   
      
}
void Inicio::Portada()
{
   char escuela[]="\n\t\t\t ESIME UNIDAD CULHUACAN";
   char empresa[]= "\n\n\t\t\tBATMAN ARKAHAM KNIGTH\n";
   char pro[]="\n\n\t\t\t    ESCUELA DE BATMAN";
   for(j=0;j<escuela[j]!='\0';j++)
   {
      printf("%c",escuela[j]);
      Sleep(10);
   }
      for(j=0;j<empresa[j]!='\0';j++)
   {
      printf("%c",empresa[j]);
      Sleep(10);
   }
      for(j=0;j<pro[j]!='\0';j++)
   {
      printf("%c",pro[j]);
      Sleep(10);
   }
      cout<<"\n\n\n                         Cargando el Programa.     \n\n"<<endl;
   
         for(i=0;i<80;i++)
      {
         printf("%c",219);
         Sleep(10);
         
      }
}
class Proceso
{
   protected:
      ofstream escritura;
      ifstream lectura;
          ifstream consulta;
          fstream aux;
          int opcc;
          char nombre[101],AP[110],AM[10];
      int sueldo, edad, clave, auxClave;
      char auxNombre[100];
      char auxAP[100];
      char auxAM[100];
      int auxedad,auxsueldo;
      int e;
      int hola[100];
      char auxGrupo[100];
      public:
         void Ingresar();
         void Buscar();
         void Eliminar();
         void Modificar();
         void Mostrar();   
         //void Ordenar();
};
class Menu:public Inicio,public Proceso
{   
   protected:
   int opc,j;
   public:
      void opcion();
};
void Menu::opcion()
{
   Proceso p;
   system("cls");
      for(j=0;j<80;j++)
   {
      
      printf("%c",178);
   }
   cout<<"\n\t\t\t[1] Registrar Trabajador.";
   cout<<"\n\n\t\t\t[2] Ver Trabajadores.";
   cout<<"\n\n\t\t\t[3] Borrar Trabajadores.";
   cout<<"\n\n\t\t\t[4] Modificar Trabajadores.";
   cout<<"\n\n\t\t\t[5] Ordenar trabajadores.";
   cout<<"\n\n\t\t\t[6] Salir.\n";
      for(j=0;j<80;j++)
   {
      
      printf("%c",178);
   }
   cout<<"\nElija una opcion:";
   cin>>opc;
   while(opc<1 || opc>7)
   {
      cout<<"\nOpcion Incorrecta, Elija otra opcion:";
      cin>>opc;
   }
   switch(opc)
   {
      case 1:
         p.Ingresar();
         break;
         case 2:
            p.Mostrar();
            break;
            case 3:
               p.Eliminar();
               break;
               case 4:
                  p.Modificar();
                  break;
                  case 5:
                     /*p.Ordenar();
                     break; //culo*/
                     case 6:
                        exit(2);
                        break; //CULO// culo
                        
                     
               
   }
}
void Proceso::Ingresar()
{
   system("cls");
   bool repetido=false;
    escritura.open("trabajo.doc",ios::out|ios::app);
    consulta.open("trabajo.doc",ios::in);
    if(escritura.is_open() && consulta.is_open()){
        cout<<"Ingresa el numero de Trabajador del Empleado: ";
        cin>>auxClave;
        consulta>>clave;
        while(!consulta.eof()){
            consulta>>nombre>>AP>>AM>>sueldo>>edad;
            if(clave==auxClave){
                cout<<"\nYa Existe un Registro con esta Clave\n\n";
                repetido=true;
                break;
                Menu m;
                m.opcion();
            }
            consulta>>clave;
        }
        if(repetido==false){
            cout<<"\nIngresa el nombre del Empleado: ";
            fflush(stdin);
            gets(nombre);
            cout<<"\nIngresa el Apellido Paterno: ";
            fflush(stdin);
            gets(AP);
            cout<<"\nIngresa el Apellido Materno: ";
            fflush(stdin);
            gets(AM);
            cout<<"\nIngresa el Sueldo del Empleado:";
            fflush(stdin);
            cin>>sueldo;
            hola[100]=sueldo;
            cout<<"\nIngresa la Edad del Empleado: ";
            fflush(stdin);
            cin>>edad;
            escritura<<auxClave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<" "<<edad <<"";
            cout<<"\n                       Guardando Trabajador"<<endl;
               for(e=0;e<80;e++)
         {
         printf("%c",219);
         Sleep(10);
         }
        }
      
    }else{
        cout<<"Error, el Archivo No se Pudo Abrir o No ha sido Creado"<<endl;
    }
    escritura.close();
    consulta.close();
    system("Pause");
      Menu m;
      m.opcion();
}
void Proceso::Mostrar()
{
   system("cls");
    lectura.open("trabajo.doc",ios::out|ios::in);
    if(lectura.is_open()){
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            cout<<""<<endl;
            cout<<"Clave: "<<clave<<endl;
            cout<<"Nombre: "<<nombre<<endl;
            cout<<"AP: "<<AP<<endl;
            cout<<"AM: "<<AM<<endl;
            cout<<"Sueldo:"<<sueldo;
            cout<<"\nEdad:"<<edad;     
         cout<<""<<endl;   
            lectura>>clave;
        }
    }else{
        cout<<"Error, el Archivo No se Pudo Abrir, No ha sido creado"<<endl;
    }
       lectura.close();
       Menu m;
       cout<<"\n";
            system("Pause");
            m.opcion();
}
void Proceso::Modificar()
{
   Menu m;
   system("cls");
    bool encontrado=false;
    aux.open("aux.doc",ios::out);
    lectura.open("trabajo.doc",ios::in);
    cout<<"Que desea Modificar\n";
    cout<<"\t\t\t[1]Nombre\n";
    cout<<"\t\t\t[2]AP\n";
    cout<<"\t\t\t[3]Am\n";
    cout<<"\t\t\t[4]Sueldo\n";
    cout<<"\t\t\t[5]Edad\n";
    cout<<"Elija una opcion:";
   cin>>opcc;
   while(opcc<1 || opcc>5)
   {
      cout<<"Opcion Invalida:";
      cin>> opcc;
   }
    switch(opcc)
    {
       case 1:
          if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa la Clave del Alumno que deseas Modificar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            if(auxClave==clave){
                encontrado=true;
                cout<<"Clave: "<<clave<<endl;
                cout<<"Nombre: "<<nombre<<endl;
               cout<<"AP: "<<AP<<endl;
               cout<<"AM: "<<AM<<endl;
               cout<<"Sueldo:"<<sueldo;
               cout<<"\nEdad: "<<edad;
                cout<<"\n\nIngresa el Nuevo Nombre del alumno con Clave "<<clave<<": ";
                fflush(stdin);
                gets(auxNombre);
                aux<<clave<<" "<<auxNombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<" "<<edad<<" ";
                  cout<<"\n             Modificando Nombre del Trabajador"<<endl;
                  for(e=0;e<80;e++)
            {
         printf("%c",219);
         Sleep(10);
            }
                     
            }else{
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<""<<edad<<"  ";
               
            }
            lectura>>clave;
        }
    }
   else{
        cout<<"No se pudoAbrir el Archivo o aun no ha sido Creado"<<endl;
       }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con clave "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("trabajo.doc");
    rename("aux.doc","trabajo.doc");
    cout<<"\n";
       system("Pause");
       m.opcion();
       break;
      case 2:
         if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa la Clave del Alumno que deseas Modificar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            if(auxClave==clave){
                encontrado=true;
                cout<<"Clave: "<<clave<<endl;
                cout<<"Nombre: "<<nombre<<endl;
               cout<<"AP: "<<AP<<endl;
               cout<<"AM: "<<AM<<endl;
               cout<<"Sueldo:"<<sueldo;
               cout<<"\n\nEdad: "<<edad;
                cout<<"\n\nIngresa el Nuevo Nombre del alumno con Clave "<<clave<<": ";
                fflush(stdin);
                gets(auxAP);
                aux<<clave<<" "<<nombre<<" "<<auxAP<<" "<<AM<<" "<<sueldo<<" "<<edad<<" ";
                  cout<<"\n             Modificando Nombre del Trabajador"<<endl;
                  for(e=0;e<80;e++)
            {
         printf("%c",219);
         Sleep(10);
            }
                     
            }else{
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<""<<edad<<"  ";
               
            }
            lectura>>clave;
        }
    }
   else{
        cout<<"No se pudoAbrir el Archivo o aun no ha sido Creado"<<endl;
       }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con clave "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("trabajo.doc");
    rename("aux.doc","trabajadores.doc");
    cout<<"\n";
    system("Pause");
    m.opcion();
    break;
    case 3:
       if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa la Clave del Alumno que deseas Modificar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            if(auxClave==clave){
                encontrado=true;
                cout<<"Clave: "<<clave<<endl;
                cout<<"Nombre: "<<nombre<<endl;
               cout<<"AP: "<<AP<<endl;
               cout<<"AM: "<<AM<<endl;
               cout<<"Sueldo:"<<sueldo;
               cout<<"\n\nEdad: "<<edad;
                cout<<"\n\nIngresa el Nuevo Nombre del alumno con Clave "<<clave<<": ";
                fflush(stdin);
                gets(auxAM);
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<auxAM<<" "<<sueldo<<" "<<edad<<" ";
                  cout<<"\n             Modificando AM del Trabajador"<<endl;
                  for(e=0;e<80;e++)
            {
         printf("%c",219);
         Sleep(10);
            }
                     
            }else{
                 aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<""<<edad<<"  ";
               
            }
            lectura>>clave;
        }
    }
   else{
        cout<<"No se pudoAbrir el Archivo o aun no ha sido Creado"<<endl;
       }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con clave "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("trabajo.doc");
    rename("aux.doc","trabajo.doc");
    cout<<"\n";
    system("Pause");
    m.opcion();
     break;
    case 4:
       if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa la Clave del Alumno que deseas Modificar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            if(auxClave==clave){
                encontrado=true;
                cout<<"Clave: "<<clave<<endl;
                cout<<"Nombre: "<<nombre<<endl;
               cout<<"AP: "<<AP<<endl;
               cout<<"AM: "<<AM<<endl;
               cout<<"Sueldo:"<<sueldo;
               cout<<"\nEdad: "<<edad;
                cout<<"\n\nIngresa el Nuevo Sueldo del alumno con Clave "<<clave<<": ";
                fflush(stdin);
                cin>>auxsueldo;
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<auxsueldo<<" "<<edad<<" ";
                  cout<<"\n             Modificando Sueldo del Trabajador"<<endl;
                  for(e=0;e<80;e++)
            {
         printf("%c",219);
         Sleep(10);
            }
                     
            }else{
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<""<<edad<<"  ";
               
            }
            lectura>>clave;
        }
    }
   else{
        cout<<"No se pudoAbrir el Archivo o aun no ha sido Creado"<<endl;
       }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con clave "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("trabajo.doc");
    rename("aux.doc","trabajo.doc");
    cout<<"\n";
       system("Pause");
       m.opcion();
       break;
      case 5:
         if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa la Clave del Empleado que deseas Modificar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            if(auxClave==clave){
                encontrado=true;
                cout<<"Clave: "<<clave<<endl;
                cout<<"Nombre: "<<nombre<<endl;
               cout<<"AP: "<<AP<<endl;
               cout<<"AM: "<<AM<<endl;
               cout<<"\nSueldo:"<<sueldo;
               cout<<"\nEdad: "<<edad;
                cout<<"\nIngresa la Nueva Edad del Empleado con Clave "<<clave<<": ";
                fflush(stdin);
                cin>>auxedad;
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<" "<<auxedad<<" ";
                  cout<<"\n             Modificando Edad del Trabajador"<<endl;
                  for(e=0;e<80;e++)
            {
         printf("%c",219);
         Sleep(10);
            }
                     
            }else{
               aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<""<<edad<<"  ";
               
            }
            lectura>>clave;
        }
    }
   else{
        cout<<"No se pudoAbrir el Archivo o aun no ha sido Creado"<<endl;
       }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con clave "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("trabajo.doc");
    rename("aux.doc","trabajo.doc");
    cout<<"\n";
    system("Pause");
    m.opcion();
    }
   
}
void Proceso::Eliminar()
{
   system("cls");
   fstream aux;
    bool encontrado=false;
    aux.open("aux.doc",ios::out);
    lectura.open("trabajo.doc",ios::in);
    if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa el Numero de del Empleado que deseas Eliminar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombre>>AP>>AM>>sueldo>>edad;
            if(auxClave==clave){
                encontrado=true;
                cout<<"\n             Eliminando  Trabajador"<<endl;
                for(e=0;e<80;e++)
         {
         printf("%c",219);
         Sleep(10);
         }
            }else{
                aux<<clave<<" "<<nombre<<" "<<AP<<" "<<AM<<" "<<sueldo<<" "<<edad<<" ";
            }
            lectura>>clave;
        }
    }
   else{
        cout<<"No se pudoAbrir el Archivo o aun no ha sido Creado"<<endl;
       }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con clave "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("trabajo.doc");
    rename("aux.doc","trabajo.doc");
    cout<<"\n";
      system("Pause");
      Menu m;
      m.opcion();
}
main()
{
   system("color 5A");
   Menu m;
   m.Portada();
   m.opcion();      
}









GRACIAS.


Orubatosu

Si es para un ejercicio, tiene un pase.
Si es para otra cosa, usa la librería MAP que es mucho mas rápida, sencilla y potente

https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Librer%C3%ADa_Est%C3%A1ndar_de_Plantillas/Maps
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998