| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 
 |  #include <iostream>   // ça, tout le monde connaît !
#include <string>     // pour les chaînes de caractères
#include <fstream>    // pour lire dans les fichiers .txt
#include <vector>     // pour pouvoir utiliser les vecteurs
#include <ctime>      // pour les nombres aléatoires
 
using namespace std;
 
int aleatoire(const int min, const int max)
{
    return (int)(min+((float) rand()/RAND_MAX*(max - min + 1)));
}
 
void traduction(vector<string>& tabCherche, vector<string>& tabRes, int alea)
{
    string traduc;
    cout << "Traduisez le mot suivant : " << tabCherche[alea] << " : ";
    cin >> traduc;
 
    if(traduc == tabRes[alea])  //je vérifie la traduction
        cout << "Tres bien" << endl << endl;
    else if(traduc == "0000") // condition d'arrêt
    {
        cout << endl;
        cout << "Fin du test" << endl << endl;
        exit(0);
    }
    else
        cout << "Eh ben non, la bonne reponse est : " << tabRes[alea] << endl << endl;
}
 
int main()
{
    const int min = 0;
    const int max = 1;
 
    srand((unsigned) time(NULL));  // sert à initialiser le rand()
 
    vector<string> tabfr;  // les vecteurs se déclarent comme ceci !
    vector<string> taban;
    string mot;  // chaîne intermédiaire servant à stocker le mot dans le vecteur
 
    ifstream fichierAnglais("anglais.txt", ios::in); // ouverture lecture seule
    ifstream fichierFrancais("francais.txt", ios::in);
 
    if(fichierAnglais && fichierFrancais)
    {
        while(getline(fichierAnglais, mot)) // tant qu'on peut lire dans le fichier
        {
            taban.push_back(mot);  // pour rajouter dans un vecteur
            getline(fichierFrancais, mot);         
            tabfr.push_back(mot);
        }
        fichierAnglais.close();   // fermeture des fichiers
        fichierFrancais.close();
    }
    else
    {
        cerr << "Impossible d'ouvrir un des 2 fichiers !" << endl;
        exit(1);
    }
 
    for(int j = 0; j < 100; j++)
    {
        int alea2 = aleatoire(min, max);
        int alea = aleatoire(min, tabfr.size()-1);  // le -1 car dans un vecteur, on compte à partir de 0
 
        if(alea2 == 0) // si c'est 0, il demande un mot français
            traduction(taban, tabfr, alea);
        else // sinon, il demande un mot anglais
            traduction(tabfr, taban, alea);
    }
 
    return 0;
} | 
Partager