Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <fstream>
- std::string extraerNIT(std::string ®istro_de_venta);
- int buscar_pos_de_menor(std::string registros[],int nro_de_registros, int indice_actual);
- void ordenar_registros(std::string registros[], int nro_de_registros);
- int main(int argc, char * argv[]){
- std::string registros[20];
- char entrada[100];
- int i = 0;
- std::ifstream infile("ventas.txt");
- while(infile.getline(entrada,100) && i < 20)// capacidad max 20 registros
- registros[i++] = entrada;
- infile.close();
- ordenar_registros(registros,i);
- for(int j = 0; j < i; ++j)
- std::cout << registros[j] << std::endl;
- }
- std::string extraerNIT(std::string ®istro_de_venta){
- int final = registro_de_venta.find_first_of(' ');
- std::string NIT = registro_de_venta.substr(0,final);
- return NIT;
- }
- int buscar_pos_de_menor(std::string registros[],int nro_de_registros, int indice_actual){
- int pos_de_menor = indice_actual;
- std::string NIT_menor = extraerNIT(registros[indice_actual]);
- for(int pos_sig = indice_actual + 1; pos_sig < nro_de_registros; ++pos_sig){
- std::string NIT_sig = extraerNIT(registros[pos_sig]);
- if(NIT_sig.compare(NIT_menor) < 0){
- NIT_menor = NIT_sig;
- pos_de_menor = pos_sig;
- }
- }
- return pos_de_menor;
- }
- void ordenar_registros(std::string registros[], int nro_de_registros){
- for(int r = 0; r < nro_de_registros - 1; ++r){
- int pos_de_menor = buscar_pos_de_menor(registros,nro_de_registros,r);
- std::string temp = registros[r];
- registros[r] = registros[pos_de_menor];
- registros[pos_de_menor] = temp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement