#include <iostream>
#include <fstream>
using namespace std;
void drukintro ();
void geef_rij( int& aantal, int getallen[]);
void kies_bestand (int aantal, int rij[]);
void lees_bestand (char bestandnaam[], int aantal, int bestandrij[]);
void sorteerint(int aantal, int rij[]);
void printintrij(int aantal, int rij[]);
void drukintro ()
{
int i;
cout << "Dit is een programma dat een rij van getallen sorteert" << endl
<< "en het voorkomen van elk getal telt," << endl
<< "en daarna van hoog naar laag op het scherm drukt." << endl;
for ( i=0; i<=54; i++)
{
cout << "-";
}
cout << endl << endl;
}
void geef_rij( int& aantal, int getallen[])
{
int i, eigen_getal;
cout << "How many numbers do you want to enter ?" << endl;
cin >> aantal;
for (i=0; i<aantal; i++)
{
cin >> eigen_getal;
getallen [i]= eigen_getal;
}
}
void kies_bestand (int aantal, int rij[])
{
int keuze_lijst;
cout << "Which list do you want to use ?" << endl
<< "For list 1, type 1" << endl
<< "For list 2, type 2" << endl
<< "For list 3, type 3" << endl << endl;
cout << "Keuze : ";
cin >> keuze_lijst;
if (keuze_lijst < 1 || keuze_lijst > 3 )
{
cout << "This list doesn't exist !" << endl;
exit(1);
}
if (keuze_lijst == 1)
{
lees_bestand ("lijst1.txt", aantal, rij);
}
if (keuze_lijst == 2)
{
lees_bestand ("lijst2.txt", aantal, rij);
}
if (keuze_lijst == 3)
{
lees_bestand ("lijst3.txt", aantal, rij);
}
}
void lees_bestand (char bestandnaam[], int aantal, int bestandrij[])
{
ifstream bestand;
int i=0;
bestand.open(bestandnaam);
if ( ! bestand.fail() )
{
do
{
bestand >> bestandrij[i];
i++;
}while (i<aantal);
bestand.close();
}
else if (bestand.fail())
{
cout << "Opening of txt file failed ! \n";
exit(1);
}
}
void sorteerint(int aantal, int rij[])
{
int i,j,temp;
for (i=0; i<aantal-1; i++)
for (j=aantal-1; j>i; j--)
if (rij[j-1]>rij[j])
{
temp=rij[j];
rij[j]=rij[j-1];
rij[j-1]=temp;
}
}
void printintrij(int aantal, int rij[])
{
int i;
for (i=0; i<aantal; i++)
cout << rij[i] << " ";
cout << endl;
}
int main ()
{
int eigen_rij[50], aantal_getallen;
char antwoord;
drukintro ();
cout << "Do you want to give in an array of whole numbers yourself" << endl
<< "or read from an array of whole numbers from a file ? (Y / F )" << endl;
cin >> antwoord;
cout << endl;
if ( antwoord == 'Y' || antwoord == 'y' )
{
geef_rij ( aantal_getallen, eigen_rij );
cout << endl;
}
if ( antwoord == 'F' || antwoord == 'f' )
{
kies_bestand( aantal_getallen, eigen_rij );
cout << endl;
}
else
{
exit (1);
}
sorteerint ( aantal_getallen, eigen_rij );
cout << "Sorted array : ";
printintrij( aantal_getallen, eigen_rij );
}