#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <cmath>
#include <span>
#include <vector>
#include <algorithm>
#include "cppitertools/range.hpp"
#include "cppitertools/enumerate.hpp"
#include "verification_allocation.hpp"
#include "debogage_memoire.hpp"
using namespace std;
using namespace iter;
struct Personne {
char nom[10];
int age;
};
ifstream creerFichiertxt_in(const string& nomDuFichier) {
return {};
}
int nbLigneFichierTxt(const string& nomDuFichier) {
return {};
}
ifstream creerFichierbin_in(const string& nomDuFichier) {
return {};
}
ofstream creerFichierbin_out(const string& nomDuFichier) {
return {};
}
Personne* allouerMemoire(const int nbPersonne) {
return {};
}
void lireFichiertxt(const string& nomDuFichier, span<Personne> personnes) {
}
void afficheTableau(span<Personne> personnes) {
}
void ecrireFichierBinaire(const string& nomDuFichier, span<Personne> personnes) {
}
int nbElemFichierBin(const string& nomDuFichier) {
return {};
}
void lireFichierBin(const string& nomDuFichier, span<Personne> personnes) {
}
void trierPersonneParAge(span<Personne> personnes) {
}
void trierPersonneParNom(span<Personne> personnes) {
}
Personne plusGrandAge(span<Personne> personnes) {
return {};
}
Personne plusPetitAge(span<Personne> personnes) {
return {};
}
int main() {
srand((unsigned)time(NULL));
bibliotheque_cours::VerifierFuitesAllocations verifierFuitesAllocations;
const string nomFichier_txt = "age.txt";
const string nomFichier_bin = "age.bin";
//Calcul du nombre de lignes dans le fichier texte
int nbLigneTxt = nbLigneFichierTxt(nomFichier_txt);
static const int CAPACITE = 10;
Personne* personnes_txt = allouerMemoire(CAPACITE);
// Lecture des données depuis le fichier texte
span<Personne> span_personnes_txt = span(personnes_txt, nbLigneTxt > CAPACITE ? CAPACITE : nbLigneTxt);
lireFichiertxt(nomFichier_txt, span_personnes_txt);
cout << "Affichage des données lues depuis le fichier texte :" << endl;
afficheTableau(span_personnes_txt);
cout << endl << endl;
// Ecriture des données dans le fichier binaire
ecrireFichierBinaire(nomFichier_bin, span_personnes_txt);
// Calcul du nombre d'éléments dans le fichier binaire
int nbLigneBin = nbElemFichierBin(nomFichier_bin);
// Lecture des données depuis le fichier binaire
Personne* personnes_bin = allouerMemoire(CAPACITE);
span<Personne> span_personnes_bin = span(personnes_bin, nbLigneBin > CAPACITE ? CAPACITE : nbLigneBin);
lireFichierBin(nomFichier_bin, span_personnes_bin);
cout << "Affichage des données lues depuis le fichier binaire :" << endl;
afficheTableau(span_personnes_bin);
cout << endl << endl;
cout << "Tri des personnes par âge..." << endl;
trierPersonneParAge(span_personnes_bin);
afficheTableau(span_personnes_bin);
cout << endl << endl;
cout << "Tri des personnes par nom..." << endl;
trierPersonneParNom(span_personnes_bin);
afficheTableau(span_personnes_bin);
cout << endl << endl;
cout << "Personne la plus âgée :" << endl;
Personne p = plusGrandAge(span_personnes_bin);
cout << left << setw(10) << p.nom << p.age << endl << endl;
cout << "Personne la plus jeune :" << endl;
p = plusPetitAge(span_personnes_bin);
cout << left << setw(10) << p.nom << p.age << endl << endl;
delete[] personnes_txt;
delete[] personnes_bin;
personnes_txt = nullptr;
personnes_bin = nullptr;
return 0;
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter