Archivo Ordenamiento C++

Archivo Ordenamiento C++ este es un ejemplo para ordenar los datos en un archivo o fichero escrito en c++, ha sido ejecutado en VisualStudio aunque también debe de correr en cualquier compilador standar, si tienes alguna duda no dudes en postearlo, que con gusto te ayudaré.

/*

Choc Cac, Victor Hugo.

La aplicación es ordena por el número de carnet (pero no se puede colocar
un caracter como separador ejemplo 10-1010, si no solo 101010)

*/

#include <fstream>
#include <iostream>
#include <cstdlib>
#include <Windows.h>

using namespace std;

const int maximo = 3;//maximo de estudiantes, solo puse tres.

struct Estudiante{
double carne;
char nombre[100];
};

void CrArchivo();
void SinArchivo();
void OrArchivo();

Estudiante Datos[maximo];

int _tmain(int argc, _TCHAR* argv[])
{
int menu;
do
{
system(“cls”);
cout<<endl<<“===Archivo de Ordenamiento===\n\n”;
cout<<“1. Agregar Alumnos.\n”;
/*
Observación:
Antes de selecionar la opcion 3 podemos ver, la opcion 2 para ver la lista desordenada, ahora bien si
selecciona la opcion 3 y seguidamente la opcion 2 observaremos que la lista ya esta ordenada

Para verificar si la lista fue ordenada, salimos de la aplicación y seleccionamos la opción 3.
*/
cout<<“2. Archivo No ordenado(antes de ordenar) y ordenado(despues guardardo).\n”;
cout<<“3. Archivo ordenar(ordena los datos).\n”;
cout<<“4. Salir.\n”;
cout<<“Que Opcion: “;

cin>>menu;

switch (menu)
{
case 1:
{
CrArchivo();
}
break;
case 2:
{
SinArchivo();
}
break;
case 3:
{
OrArchivo();
}
break;
case 4:
{
menu =-1;
}
break;
default: cout<<“\nFuera de Rango, teclee una opcion validad……\n”;
}
}while(menu !=-1);
return 0;
}

void CrArchivo()
{
int numero = 1;
system(“cls”);
ofstream salida(“ordenacion.bin”, ios::out | ios::binary);
if(!salida)
{
cout << “\nNo puede crearse el archivo ordenacion.bin\n”;
system(“pause”);
return exit(1);
}
for(int conta=0; conta < maximo;conta++)
{
cout << “\nIngrese Su Carne: “;
cin>> Datos[conta].carne;
cin.ignore();
cout << “Nombre completo estudiante: “;
cin.getline(Datos[conta].nombre,31);
salida.write((char *) &Datos, sizeof(Datos));
}
salida.close();
}
void SinArchivo()
{
int numero = 1;
system(“cls”);
ifstream abrir(“ordenacion.bin”, ios::in | ios::binary);
if(!abrir)
{
cout << “\nNo puede abrirse el archivo ordenacion.bin\n”;
system(“pause”);
return exit(1);
}

for(int conta=0;conta < maximo; conta++)
{
abrir.read((char *) &Datos, sizeof(Datos));
cout << “\nEstrutura No.” << numero;
cout << “\nSu nombre es: ” << Datos[conta].nombre;
cout << “\nSu Carne es: ” << Datos[conta].carne << “\n\n” << endl;
numero++;
}
abrir.close();
system(“pause”);
}
void OrArchivo()
{
int i, j;
int numero = 1;
Estudiante temp;
system(“cls”);
fstream abrir(“ordenacion.bin”, ios::out| ios::binary);
if(!abrir)
{
cout << “\nNo puede abrirse el archivo ordenacion.bin\n”;
system(“pause”);
return exit(1);
}

for (i = 0; i < maximo – 1 ; i++)
{

for (j = i + 1; j < maximo ; j++)
{
if (Datos[i].carne > Datos[j].carne)
{
temp = Datos[i];
Datos[i] = Datos[j];
Datos[j] = temp;
}
}
}

cout << “Espere, Ordenando lista….”;
Sleep(5000);
system(“cls”);
for(int conta=0;conta<maximo;conta++)
{

cout << “\nEstrutura No.” << numero;
cout << “\nSu nombre es: ” << Datos[conta].nombre;
cout << “\nSu Carne es: ” << Datos[conta].carne << “\n\n”;
numero++;
abrir.write((char*) &Datos, sizeof(Datos));
}
system(“pause”);
system(“cls”);
cout << “Guardando lista, espere….”;
Sleep(5000);
abrir.close();
system(“cls”);
}

Esta entrada fue publicada en Diversidad y etiquetada . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *