Exo1

PHOTO EMBED

Tue Nov 21 2023 12:51:21 GMT+0000 (Coordinated Universal Time)

Saved by @Mehdiiiiiii7

#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;
}

content_copyCOPY