Título: Como se podría ordenar por el método de la burbuja Publicado por: TheMainStayz en 2 Octubre 2015, 05:07 am 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. Título: Re: Como se podría ordenar por el método de la burbuja Publicado por: ivancea96 en 2 Octubre 2015, 14:07 pm http://www.c.conclase.net/orden/?cap=burbuja (http://www.c.conclase.net/orden/?cap=burbuja)
Título: Re: Como se podría ordenar por el método de la burbuja Publicado por: Orubatosu en 2 Octubre 2015, 15:27 pm 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 Título: Re: Como se podría ordenar por el método de la burbuja Publicado por: TheMainStayz en 2 Octubre 2015, 19:24 pm es para un ejercicio, gracias
|