This commit is contained in:
xdrm-brackets 2016-03-05 23:37:08 +01:00
parent e54579e352
commit f8501300ab
8 changed files with 206 additions and 15 deletions

BIN
exec/tp1

Binary file not shown.

BIN
exec/tp2 Executable file

Binary file not shown.

145
tp1.cpp
View File

@ -2,31 +2,156 @@
#include <fstream> #include <fstream>
#include <string> #include <string>
#include <vector> #include <vector>
#include <ctime>
#include "tp1/wordproc.cpp" #include "tp1/wordproc.cpp"
#define DICT_FILENAME "tp1/dict"
using namespace std; using namespace std;
string input_word();
string pickup_word(vector<string> dict);
void append_word();
void play(string word);
int main(){ int main(){
/* [0] CONSTANTES /* [0] CONSTANTES
=========================================================*/ =========================================================*/
const string dict_filename = "tp1/dict"; ifstream dict_r( DICT_FILENAME );
ifstream dict_read( dict_filename.c_str() );
/* [0.1] On recupere les mots du dictionnaire
=========================================================*/
vector<string> dict(0);
string line;
// On lit toutes les lignes
while( getline( dict_r, line ) )
dict.push_back( line );
/* [1] MENU D'ACTION
=========================================================*/
int action(-1);
do{
cout << "+-----------------------------------+" << endl;
cout << "+ 1) Jouer (saisie manuelle) +" << endl;
cout << "+ 2) Jouer (mot aleatoire) +" << endl;
cout << "+ 3) Ajouter un mot +" << endl;
cout << "+-----------------------------------+" << endl;
cout << "+ ";
cin >> action;
cout << "+-----------------------------------+" << endl;
}while( action < 1 || action > 3 );
/* [2] TRAITEMENT DE L'ACTION
=========================================================*/
switch(action){
/* (1) Jeu avec saisie manuelle */
case 1:
play( input_word() );
break;
/* (2) Jeu avec mot aleatoire */
case 2:
play( pickup_word(dict) );
break;
/* (3) Saisie d'un nouveau mot dans le dictionnaire */
case 3:
append_word();
break;
}
return 0;
}
/* RENVOIE LA SAISIE UTILISATEUR
*
* @return out<string> Mot saisi par l'utilisateur
*
*/
string input_word(){
string out;
cout << "Mot secret: ";
cin >> out;
cin.ignore();
return out;
}
/* RENVOIE UN MOT ALEATOIRE DU DICTIONNAIRE
*
* @dict_r<ifstream> Lecteur sur le dictionnaire
*
* @return out<string> Mot choisi aleatoirement dans le dictionnaire
*
*/
string pickup_word(vector<string> dict){
srand(time(0));
int index = rand() % dict.size();
return dict[index];
}
/* AJOUTE UN MOT AU DICTIONNAIRE
*
* @nomParam<typeParam> Description du param
*
* @return nomRetour<typeRetour> Description du retour
*
*/
void append_word(){
// objet d'ecriture sur le dictionnaire
ofstream dict_w( DICT_FILENAME, ios::app );
string newword;
cout << "Nouveau mot: " << endl;
cin >> newword;
cout << endl;
// on ajoute le mot
dict_w << newword << endl;
cout << "Mot enregistre!" << endl;
}
/* JOUE AU JEU DU MOT_MYSTERE
*
* @word<string> Mot a deviner
*
*/
void play(string word){
/* [0] VARIABLES /* [0] VARIABLES
=========================================================*/ =========================================================*/
string word;
string shuffled; string shuffled;
/* [1] Demande du mot
=========================================================*/
cout << "Mot secret: ";
cin >> word;
cout << endl;
// On met le mot en majuscules // On met le mot en majuscules
word = toUpperCase(word); word = toUpperCase(word);
@ -46,6 +171,4 @@ int main(){
}while( toUpperCase(guessed) != word ); }while( toUpperCase(guessed) != word );
cout << "Vous avez gagne!!" << endl; cout << "Vous avez gagne!!" << endl;
return 0;
} }

View File

@ -0,0 +1,2 @@
dictionnaire
bonjour

View File

@ -15,7 +15,6 @@ string toUpperCase(string in){
for( int i = 0 ; i < in.length() ; i++ ){ for( int i = 0 ; i < in.length() ; i++ ){
char c = in.at(i); char c = in.at(i);
//
if( c >= 'a' && c <= 'z' ) if( c >= 'a' && c <= 'z' )
out[i] = (char) (c-'a'+'A'); out[i] = (char) (c-'a'+'A');
} }
@ -34,7 +33,7 @@ string shuffle(string in){
// Contiendra les index // Contiendra les index
vector<int> indexes; vector<int> indexes;
// Contiendra les valeurs // Contiendra les valeurs
string out(""); string out;
/* [1] On prends une lettre tant qu'il en manque /* [1] On prends une lettre tant qu'il en manque
=========================================================*/ =========================================================*/
@ -45,7 +44,6 @@ string shuffle(string in){
// On prends un indice aleatoire // On prends un indice aleatoire
index = rand() % in.length(); index = rand() % in.length();
cout << index << endl;
// Si index non utilise, on le reference // Si index non utilise, on le reference
if( indexOf(indexes, index) == -1 ){ if( indexOf(indexes, index) == -1 ){

17
tp2.cpp Normal file
View File

@ -0,0 +1,17 @@
#include <iostream>
#include "tp2/ZFraction.h"
using namespace std;
int main(){
ZFraction f1(1,10);
ZFraction f2(10);
ZFraction f3(10, 3);
f1.toString();
return 0;
}

23
tp2/ZFraction.cpp Normal file
View File

@ -0,0 +1,23 @@
/* [0] CONSTRUCTEUR
=========================================================*/
ZFraction::ZFraction(int a, int b) : a(a), b(b){}
/* [1] Getters
=========================================================*/
void ZFraction::toString() const{ cout << "(" << this->a << "/" << this->b << ")"; }
/* [2] Operateurs
=========================================================*/
/* (1) Addition */
ZFraction& operator+=(ZFraction const& x){
int new_a = this->a * x.b + this->b * x.a;
int new_b = this->b * x.b;
ZFraction out = ZFraction(new_a, new_b);
return &out;
}

28
tp2/ZFraction.h Normal file
View File

@ -0,0 +1,28 @@
#ifndef DEF_ZFRACTION
#define DEF_ZFRACTION
#include <iostream>
#include <string>
using namespace std;
class ZFraction{
public:
ZFraction(int a=1, int b=1);
void toString() const;
ZFraction& operator+=(ZFraction const& operand);
private:
int a;
int b;
};
#include "ZFraction.cpp"
#endif