Compare commits

...

8 Commits

Author SHA1 Message Date
b1d4730e60 TP7 2024-11-26 20:38:50 +01:00
582bc26ad7 TP6 2024-11-26 20:38:32 +01:00
add166edcd TP5 2024-11-26 20:38:25 +01:00
91323c4465 Modification .gitignore 2024-11-26 20:37:05 +01:00
732be7767f TP4 2024-11-26 20:36:29 +01:00
6c5fec1823 TP3 2024-11-26 20:35:57 +01:00
094bef3d10 TP2 2024-11-26 20:35:22 +01:00
cbceba2519 TP1 2024-11-26 20:34:56 +01:00
40 changed files with 3701 additions and 0 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
.vs .vs
x64 x64
bis

33
TP1/1.1.cpp Normal file
View File

@@ -0,0 +1,33 @@
#include <iostream>
using namespace std;
int main()
{
int nbEnfants = 2;
setlocale(LC_ALL, "");
if (nbEnfants == 0)
{
cout << "Eh bien alors, vous n'avez pas d'enfant ?";
}
else
{
if (nbEnfants == 1)
{
cout << "Alors c'est pour quand le deuxième ?";
}
else
{
if (nbEnfants == 2)
{
cout << "Quels beaux enfants vous avez là !";
}
else
{
cout << "Bon, il faut arrêter de faire des gosses maintenant";
}
}
}
}

110
TP1/1.2.cpp Normal file
View File

@@ -0,0 +1,110 @@
#include <iostream>
using namespace std;
const int Nmax = 10;
void print_tab(int tab[], int n);
void print_help(int tab[], int n);
void insert_begin(int v, int tab[], int &n);
void insert_end(int v, int tab[], int &n);
void pop(int i, int tab[], int &n);
int main()
{
int tab[Nmax] = {5, 3, 11, 9, 2};
int n = 5;
int v;
char c;
setlocale(LC_ALL, "");
while (true)
{
print_help(tab, n);
cout << "Votre choix : ";
cin >> c;
switch (c)
{
case 'a':
if (n >= Nmax)
break;
cout << "Entrez la valeur à ajouter : ";
cin >> v;
insert_begin(v, tab, n);
break;
case 'b':
if (n >= Nmax)
break;
cout << "Entrez la valeur à ajouter : ";
cin >> v;
insert_end(v, tab, n);
break;
case 'c':
if (n < 2)
break;
pop(1, tab, n);
break;
case 'd':
return 0;
}
}
}
void print_tab(int tab[], int n)
{
cout << "[";
for (int i = 0; i < n - 1; i++)
{
cout << tab[i] << ", ";
}
if (n > 0)
cout << tab[n - 1];
cout << "]";
}
void print_help(int tab[], int n)
{
cout << "Tableau ";
print_tab(tab, n);
cout << endl;
cout << "a) Ajouter au début du tableau une valeur introduite par l'utilisateur\n";
cout << "b) Ajouter à la fin du tableau une valeur introduite par l'utilisateur\n";
cout << "c) Supprimer la valeur de l'élément à la deuxième position du tableau\n";
cout << "d) Quitter\n";
}
void insert_begin(int v, int tab[], int &n)
{
for (int i = n - 1; i >= 0; i--)
{
tab[i + 1] = tab[i];
}
tab[0] = v;
n++;
}
void insert_end(int v, int tab[], int &n)
{
tab[n++] = v;
}
void pop(int i, int tab[], int &n)
{
for (; i < n - 1; i++)
{
tab[i] = tab[i + 1];
}
n--;
}

62
TP1/1.3.cpp Normal file
View File

@@ -0,0 +1,62 @@
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int EntreeEtudiant(string &mat, int &Ea, int &Eb);
int main()
{
int n;
setlocale(LC_ALL, "");
do
{
cout << "Entrez le nombre d'étudiants : ";
cin >> n;
} while (n < 0 || n > 10);
// tableaux alloués dynamiquements aussi possible statiquement
// const int Nmax = 10;
// avec string TabMat[Nmax];
string *TabMat = new string[n];
int *TabEa = new int[n];
int *TabEb = new int[n];
int Moy;
for (int i = 0; i < n; i++)
{
cout << "--- Etudiant " << i << " ---\n";
Moy = EntreeEtudiant(TabMat[i], TabEa[i], TabEb[i]);
// cout << "Entrez le matricule de l'étudiant (" << (i + 1) << ") : ";
// cin >> TabMat[i];
// cout << "Entrez la note Ea (" << (i + 1) << ") : ";
// cin >> TabEa[i];
// cout << "Entrez la note Eb (" << (i + 1) << ") : ";
// cin >> TabEb[i];
cout << "Somme de Ea et Eb : " << Moy << "\n";
cout << "Moyenne de Ea et Eb : " << setprecision(2)
<< (Moy / 2) << "\n";
}
// inutile car fin du programme
// et la mémoire sera libérée par l'OS
delete TabMat;
delete TabEa;
delete TabEb;
}
int EntreeEtudiant(string &mat, int &Ea, int &Eb)
{
cout << "Entrez le matricule de l'étudiant : ";
cin >> mat;
cout << "Entrez la note Ea : ";
cin >> Ea;
cout << "Entrez la note Eb : ";
cin >> Eb;
return (Ea + Eb);
}

43
TP1/1.4.cpp Normal file
View File

@@ -0,0 +1,43 @@
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
void Saisie(const int dim, int &S, int A[]);
void Affichage(int S, const int A[]);
void main()
{
const int dim = 7;
int i, A[dim], S = 0;
Saisie(dim, S, A);
Affichage(dim, A);
/*S = 0;
for (i = 0; i < 7;i++) {
S += A[i];
}*/
cout << "\nLa somme est = " << S << "\n";
}
void Saisie(const int dim, int &S, int A[])
{
cout << "Saisie:\n";
for (int i = 0; i < dim; i++)
{
cout << "Entrez A[" << i << "]= ";
cin >> A[i];
S += A[i];
}
}
void Affichage(const int dim, const int A[])
{
cout << "Affichage:\n";
for (int i = 0; i < dim; i++)
{
cout << "A[" << i << "]=" << A[i] << "\n";
}
}

82
TP2/2.1.cpp Normal file
View File

@@ -0,0 +1,82 @@
#include <iostream>
#include <string>
#include <functional>
using namespace std;
void Fct1();
void Fct2(int &A);
void Fct3(int A);
void Fct4(float &B, char &C, string &D);
void Fct5(float B, char C, string D);
string Fct6(float B, char C, string D);
// ostream &(*pfs)(ostream &o)Fct6Bis(float B, char C, string D);
function<ostream &(ostream &)> Fct6Bis(float B, char C, string D);
void main()
{
int A;
float B;
char C;
string D;
Fct1();
Fct2(A);
Fct3(A);
Fct4(B, C, D);
Fct5(B, C, D);
cout << "Voici la solution de cette fonction" << Fct6(B, C, D);
cout << "\n";
// cout << "Voici la solution de cette fonction (bis)" << Fct6Bis(B, C, D);
}
void Fct1()
{
cout << "Bonjour" << endl;
}
void Fct2(int &A)
{
cout << "Entrez la valeur de l'entier A : ";
cin >> A;
}
void Fct3(int A)
{
cout << "Le double de A vaut : " << (A * 2) << endl;
}
void Fct4(float &B, char &C, string &D)
{
cout << "Entrez la valeur du float B : ";
cin >> B;
cout << "Entrez la valeur du char C : ";
cin >> C;
cout << "Entrez la valeur du string D : ";
// cin.getline(D);
cin >> D;
}
void Fct5(float B, char C, string D)
{
cout << "La valeur de B vaut : " << B << endl;
cout << "La valeur de C vaut : " << C << endl;
cout << "La valeur de D vaut : " << D << endl;
}
string Fct6(float B, char C, string D)
{
return " La valeur de B vaut : " + to_string(B) + ", " + "La valeur de C vaut : " + to_string(C) + ", " + "La valeur de D vaut : " + D + ".";
}
function<ostream &(ostream &)> Fct6Bis(float B, char C, string D)
{
auto a = [](ostream &o) -> ostream &
{
return o << "HelloWorld";
};
return a;
}

28
TP2/2.2.cpp Normal file
View File

@@ -0,0 +1,28 @@
#include <iostream>
using namespace std;
int pow(int base, int exp);
void main()
{
int P1, P2, P3;
P1 = pow(5, 3);
P2 = pow(7, 9);
P3 = pow(3, 21);
cout << "\nLa puissance P1 est = " << P1;
cout << "\nLa puissance P2 est = " << P2;
cout << "\nLa puissance P2 est = " << P2;
}
int pow(int base, int exp)
{
int r = 1;
while (exp-- > 0)
{
r *= base;
}
return r;
}

52
TP2/2.3.cpp Normal file
View File

@@ -0,0 +1,52 @@
#include <iostream>
using namespace std;
const int Nmax = 100;
void Saisie(int tab[], int &n, int &S, float &Moy);
void Affichage(int tab[], int n, int S, float Moy);
void main()
{
int N, S;
float Moy;
int Tab[Nmax];
Saisie(Tab, N, S, Moy);
Affichage(Tab, N, S, Moy);
}
void Saisie(int tab[], int &n, int &S, float &Moy)
{
cout << "Entrez la taille du tableau : ";
cin >> n;
if (n > Nmax)
{
n = Nmax;
cout << "La taille maximale du tableau est de " << Nmax;
}
S = 0;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "]" << " = ";
cin >> tab[i];
S += tab[i];
}
Moy = S / (float)n;
}
void Affichage(int tab[], int n, int S, float Moy)
{
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "]" << " = " << tab[i] << endl;
}
cout << "Somme = " << S << endl;
cout << "Moyenne = " << Moy << endl;
}

65
TP2/2.4.cpp Normal file
View File

@@ -0,0 +1,65 @@
#include <iostream>
using namespace std;
const int Nmax = 10;
void Saisie(int tab[][Nmax], int &n1, int &n2, int &S, float &Moy);
void Affichage(int tab[][Nmax], int n1, int n2, int S, float Moy);
void main()
{
int N1, N2, S;
float Moy;
int Tab[Nmax][Nmax];
// i*n1 + j
Saisie(Tab, N1, N2, S, Moy);
Affichage(Tab, N1, N2, S, Moy);
}
void Saisie(int tab[][Nmax], int &n1, int &n2, int &S, float &Moy)
{
cout << "Entrez le nombre de lignes : ";
cin >> n1;
cout << "Entrez le nombre de colonnes : ";
cin >> n2;
if (n1 > Nmax)
{
n1 = Nmax;
cout << "La taille maximale du tableau est de " << Nmax;
}
if (n2 > Nmax)
{
n2 = Nmax;
cout << "La taille maximale du tableau est de " << Nmax;
}
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
cout << "tab[" << i << "]" << "[" << j << "]" << " = ";
cin >> tab[i][j];
S += tab[i][j];
}
}
Moy = (float)S / (n1 + n2);
}
void Affichage(int tab[][Nmax], int n1, int n2, int S, float Moy)
{
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
cout << tab[i][j] << " ";
}
cout << endl;
// cout << "tab[" << i << "]" << " = " << tab[i] << endl;
}
cout << "Somme = " << S << endl;
cout << "Moyenne = " << Moy << endl;
}

123
TP3/3.1.cpp Normal file
View File

@@ -0,0 +1,123 @@
#include <iostream>
#include <string>
using namespace std;
const int Nmax = 10;
struct PROF
{
int Id;
string nom;
string service;
};
void SaisieProf(PROF &prof);
void AfficherProf(const PROF prof);
template <typename T>
void DeplacerDroite(T tab[], int N, int i = 0)
{
while (N-- > i)
{
tab[N + 1 + i] = tab[N + i];
}
}
int ChercherProf(const PROF profs[], const int N, string name, string service);
int menu()
{
int choix;
cout
<< " 1. Saisir + Afficher\n"
<< " 2. Ajouter un PROF au début + Afficher\n"
<< " 3. Chercher si PROF1 existe ou pas dans le tableau\n"
<< " 4. Quitter " << "\n"
<< " 5. Afficher la liste de profs\n"
<< "Entrez votre choix : ";
cin >> choix;
return choix;
}
void main()
{
PROF profs[Nmax];
int choix = 0, N = 0;
setlocale(LC_ALL, "");
while (choix != 4)
{
switch (choix = menu())
{
case 1:
SaisieProf(profs[N]);
AfficherProf(profs[N++]);
break;
case 2:
DeplacerDroite(profs, N);
N++;
SaisieProf(profs[0]);
AfficherProf(profs[0]);
break;
case 3:
if (ChercherProf(profs, N, "PROF1", "SERVICE1") != -1)
{
cout << "Le PROF1 est dans la liste" << "\n";
}
else
{
cout << "Le PROF1 n'est pas dans la liste" << "\n";
}
break;
case 4:
return;
case 5:
for (int i = 0; i < N; i++)
{
cout << "-- Prof " << i << " --" << endl;
AfficherProf(profs[i]);
}
}
}
}
void SaisieProf(PROF &prof)
{
cout << "Identifiant: ";
cin >> prof.Id;
cin.ignore();
cout << "Nom : \n";
// cin.ignore();
// cin >> prof.nom;
getline(cin, prof.nom);
cout << "Service : \n";
// cin.ignore();
getline(cin, prof.service);
// cin >> prof.service;
}
void AfficherProf(const PROF prof)
{
cout << "Prof " << prof.Id << "\n"
<< "Nom : " << prof.nom << "\n"
<< "Service : " << prof.service << "\n";
}
int ChercherProf(const PROF profs[], int N, string name, string service)
{
for (int i = 0; i < N; i++)
{
if (profs[i].nom == name && profs[i].service == service)
{
return i;
}
}
return -1;
}

122
TP3/3.2.cpp Normal file
View File

@@ -0,0 +1,122 @@
#include <iostream>
#include <string>
using namespace std;
const int Nmax = 10;
struct PROF
{
int Id;
string nom;
string service;
void saisie();
void afficher();
};
template <typename T>
void DeplacerDroite(T tab[], int N, int i = 0)
{
while (N-- > i)
{
tab[N + 1 + i] = tab[N + i];
}
}
int ChercherProf(const PROF profs[], const int N, string name, string service);
int menu()
{
int choix;
cout
<< " 1. Saisir + Afficher\n"
<< " 2. Ajouter un PROF au d<>but + Afficher\n"
<< " 3. Chercher si PROF1 existe ou pas dans le tableau\n"
<< " 4. Quitter " << "\n"
<< " 5. Afficher la liste de profs\n"
<< "Entrez votre choix : ";
cin >> choix;
return choix;
}
void main()
{
PROF profs[Nmax];
int choix = 0, N = 0;
setlocale(LC_ALL, "");
while (choix != 4)
{
switch (choix = menu())
{
case 1:
profs[N].saisie();
profs[N++].afficher();
break;
case 2:
DeplacerDroite(profs, N);
N++;
profs[0].saisie();
profs[0].afficher();
break;
case 3:
if (ChercherProf(profs, N, "PROF1", "SERVICE1") != -1)
{
cout << "Le PROF1 est dans la liste" << "\n";
}
else
{
cout << "Le PROF1 n'est pas dans la liste" << "\n";
}
break;
case 4:
return;
case 5:
for (int i = 0; i < N; i++)
{
cout << "-- Prof " << i << " --" << endl;
profs[i].afficher();
}
}
}
}
void PROF::saisie()
{
cout << "Identifiant: ";
cin >> Id;
cin.ignore();
cout << "Nom : \n";
// cin >> prof.nom;
getline(cin, nom);
cout << "Service : \n";
// cin.ignore();
getline(cin, service);
// cin >> prof.service;
}
void PROF::afficher()
{
cout << "Prof " << Id << "\n"
<< "Nom : " << nom << "\n"
<< "Service : " << service << "\n";
}
int ChercherProf(const PROF profs[], int N, string name, string service)
{
for (int i = 0; i < N; i++)
{
if (profs[i].nom == name && profs[i].service == service)
{
return i;
}
}
return -1;
}

156
TP3/3.3.cpp Normal file
View File

@@ -0,0 +1,156 @@
#include <iostream>
#include <string>
using namespace std;
const int Nmax = 10;
struct PROF
{
int Id;
string nom;
string service;
PROF();
void saisie();
void afficher();
static int counter;
bool operator==(PROF P)
{
return P.nom == nom && P.service == service;
}
};
int PROF::counter = 0;
template <typename T>
void DeplacerDroite(T tab[], int N, int i = 0)
{
PROF tmp = tab[Nmax - 1];
while (N-- > i)
{
tab[N + 1 + i] = tab[N + i];
}
tab[0] = tmp;
}
int ChercherProf(PROF profs[], const int N, PROF p);
int menu()
{
int choix;
cout
<< " 1. Saisir + Afficher\n"
<< " 2. Ajouter un PROF au début + Afficher\n"
<< " 3. Chercher si un prof existe ou pas dans le tableau\n"
<< " 4. Quitter " << "\n"
<< " 5. Afficher la liste de profs\n"
<< "Entrez votre choix : ";
cin >> choix;
return choix;
}
void main()
{
PROF profs[Nmax];
PROF p;
int choix = 0, N = 0;
setlocale(LC_ALL, "");
while (choix != 4)
{
switch (choix = menu())
{
case 1:
if (N >= 10)
{
break;
}
profs[N].saisie();
profs[N++].afficher();
break;
case 2:
if (N >= 10)
{
break;
}
DeplacerDroite(profs, Nmax);
N++;
profs[0].saisie();
profs[0].afficher();
break;
case 3:
cout << "Entrez le nom du prof à rechercher : \n";
cin.ignore();
getline(cin, p.nom);
cout << "Entrez le nom du service du prof à rechercher : \n";
// cin.ignore();
getline(cin, p.service);
// cout << "Service:" << p.service << "\n";
if (ChercherProf(profs, N, p) != -1)
{
cout << "Le " << p.nom << " est dans la liste" << "\n";
}
else
{
cout << "Le " << p.nom << " n'est pas dans la liste" << "\n";
}
break;
case 4:
return;
case 5:
for (int i = 0; i < N; i++)
{
cout << "-- Prof " << i << " --" << endl;
profs[i].afficher();
}
}
}
}
PROF::PROF()
{
Id = ++counter;
}
void PROF::saisie()
{
cout << "Nom : ";
cin.ignore();
// cin >> prof.nom;
getline(cin, nom);
cout << "Service : ";
// cin.ignore();
getline(cin, service);
// cin >> prof.service;
}
void PROF::afficher()
{
cout << "Prof " << Id << "\n"
<< "Nom : " << nom << "\n"
<< "Service : " << service << "\n";
}
int ChercherProf(PROF profs[], int N, PROF P)
{
for (int i = 0; i < N; i++)
{
if (profs[i] == P)
{
return i;
}
}
return -1;
}

325
TP4/4.cpp Normal file
View File

@@ -0,0 +1,325 @@
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <vector>
#include <list>
#include <functional>
using namespace std;
class ETUD
{
// nombre d'instances;
static int compteur;
int Id;
string nom;
public:
ETUD() : Id(++compteur) {};
~ETUD()
{
cout << "Disparition d'un étudiant (Id=" << Id << ") \n";
};
void saisie();
void affiche();
static void afficheEnLigneEnTete();
void afficheEnLigne();
void lire(ifstream &s);
};
class PROF
{
// nombre d'instances;
static int compteur;
int Id;
string nom, service;
public:
PROF() : Id(++compteur) {};
// passer une variable dans ce constructeur
// créée un prof "temporaire"
// cela signifie que son destructeur n'affichera rien
// dans la console
PROF(bool) : Id(-1) {};
~PROF()
{
if (Id == -1)
return;
cout << "Disparition d'un prof (Id=" << Id << ")\n";
}
void saisie();
void affiche();
static void afficheEnLigneEnTete();
void afficheEnLigne();
void lire(ifstream &s);
bool operator==(PROF &p);
};
// initialisation des variables statiques
// sur les structures
// cela permet d'écrire
// : Id(++compteur)
// dans le constructeur
// au lieu de
// {
// static int compteur = 0;
// Id = ++compteur;
// }
int PROF::compteur = 0;
int ETUD::compteur = 0;
template <typename T>
int lire_fichier(vector<T> &tab, const string filename)
{
ifstream file(filename);
int N;
if (!file.is_open())
{
// code d'erreur de la fonction
return -1;
}
file >> N;
file.ignore();
int i = 0;
while (!file.eof())
{
// créer un nouvel étudiant/prof
// "emplace" pour éviter d'appeller le constructeur lors de la création de l'objet
// et ensuite lors de la copie dans l'ajout dans le vecteur (destructeur->constructeur)
tab.emplace_back();
tab.back().lire(file);
file.ignore();
}
return 0;
}
// Affiche le vecteur via la fonction "affichage" du
// type générique
template <typename T>
void affiche(vector<T> &vec)
{
for (auto it = vec.begin(); it != vec.end(); ++it)
{
(*it).affiche();
}
}
// Affiche le vecteur en formattage colonne
// En appellant la fonction statique "EnTete"
// Et ensuite ligne par ligne la fonction
// afficheEnLigne
template <typename T>
void affiche_ligne(vector<T> &vec)
{
T::afficheEnLigneEnTete();
cout << "\n";
for (auto &el : vec)
{
el.afficheEnLigne();
cout << "\n";
}
}
template <typename T>
void saisir_debut(vector<T> &vec)
{
// créer un objet (constructeur)
vec.emplace(vec.begin());
vec.front().saisie();
}
template <typename T>
int recherche(vector<T> &vec)
{
// passage d'un booléen pour
// appeller le 2e constructeur
// d'objet "temporaires" (Id=-1, pas d'appel du déstructeur)
T p(true);
p.saisie();
for (auto it = vec.begin(); it != vec.end(); it++)
{
if (p == (*it))
{
return it - vec.begin();
}
}
return -1;
}
int menu()
{
int choix;
cout << "--Menu--\n"
<< " 1. Lire fichier PROF + Lire fichier ETUD +Afficher les deux tableaux\n"
<< " 2. Ajouter un PROF au début du tableau + Afficher\n"
<< " 3. Ajouter un ETUD au début du tableau + Afficher\n"
<< " 4. Chercher PROF1 dans le tableau des PROF et le supprimer s'il existe\n"
<< " 5. Quitter " << endl;
cout << "Votre choix : ";
cin >> choix;
return choix;
}
int main()
{
vector<ETUD> etudiants;
etudiants.reserve(20);
vector<PROF> profs;
profs.reserve(20);
// list<ETUD> etudiants;
// list<PROF> profs;
bool fichier_lu = false;
// int i;
setlocale(LC_ALL, "");
while (1)
{
switch (menu())
{
case 1:
if (fichier_lu)
{
cout << "Le fichier à déjà été lu" << endl;
break;
}
if (lire_fichier(etudiants, "ETUD.txt") != 0)
{
cout << "Une erreur est survenue lors de la lecture du fichier ETUD.txt" << endl;
return 1;
}
if (lire_fichier(profs, "PROF.txt") != 0)
{
cout << "Une erreur est survenue lors de la lecture du fichier PROF.txt" << endl;
return 1;
}
cout << "-- Liste des étudiants (" << etudiants.size() << ") --" << endl;
affiche_ligne(etudiants);
cout << "-- Liste des profs (" << profs.size() << ") --" << endl;
affiche_ligne(profs);
fichier_lu = true;
break;
case 2:
saisir_debut(profs);
affiche_ligne(profs);
break;
case 3:
saisir_debut(etudiants);
affiche_ligne(etudiants);
break;
case 4:
if (int i = recherche(profs) != -1)
{
cout << "Le prof cherché existe en position " << i << " et sera supprimé !" << endl;
profs.erase(profs.begin() + i);
affiche_ligne(profs);
}
else
{
cout << "Le prof n'est pas dans la liste :(" << endl;
}
break;
case 5:
return 0;
}
}
}
void ETUD::saisie()
{
cin.ignore();
cout << "Quel est le nom?: ";
getline(cin, nom);
}
void ETUD::affiche()
{
cout << "Etudiant ID: " << Id << "\n";
cout << "Nom: " << nom << "\n";
}
void ETUD::afficheEnLigneEnTete()
{
cout << "Id " << " " << "Nom";
}
void ETUD::afficheEnLigne()
{
cout << left << setw(10) << Id;
cout << " " << nom;
}
void ETUD::lire(ifstream &i)
{
i >> nom;
// std::getline(i, nom, '\n');
}
void PROF::saisie()
{
cin.ignore();
cout << "Quel est le nom?: ";
getline(cin, nom);
cout << "Quel est le service?: ";
getline(cin, service);
}
void PROF::affiche()
{
cout << "Prof ID: " << Id << "\n";
cout << "Nom: " << nom << "\n";
cout << "Service: " << service << "\n";
}
void PROF::lire(ifstream &s)
{
std::getline(s, nom, ';');
std::getline(s, service, ';');
}
void PROF::afficheEnLigneEnTete()
{
cout << "Id " << " Nom " << " Service";
}
void PROF::afficheEnLigne()
{
cout << left << setw(10) << Id;
cout << " " << left << setw(8) << nom;
cout << " " << service;
}
bool PROF::operator==(PROF &p)
{
return nom == p.nom && service == p.service;
}

9
TP5/ETUDB.txt Normal file
View File

@@ -0,0 +1,9 @@
7
Etud1
Etud2
Etud3
Etud4
Etud5
Etud6
Etud7

6
TP5/PROF.txt Normal file
View File

@@ -0,0 +1,6 @@
5
Prof1;Informatique;
Prof2;Informatique;
Prof3;Mathematique;
Prof4;Physique;
Prof5;Chimie;

9
TP5/PROF.xsd Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="PROF"
targetNamespace="http://tempuri.org/PROF.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/PROF.xsd"
xmlns:mstns="http://tempuri.org/PROF.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
</xs:schema>

31
TP5/TP5.sln Normal file
View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34221.43
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TP5", "TP5.vcxproj", "{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Debug|x64.ActiveCfg = Debug|x64
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Debug|x64.Build.0 = Debug|x64
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Debug|x86.ActiveCfg = Debug|Win32
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Debug|x86.Build.0 = Debug|Win32
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Release|x64.ActiveCfg = Release|x64
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Release|x64.Build.0 = Release|x64
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Release|x86.ActiveCfg = Release|Win32
{5ED86EF3-56FC-47BB-8158-B3DA0C5C17C9}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {751FCA9B-3D1B-4953-B0CB-D7CA089CBB38}
EndGlobalSection
EndGlobal

139
TP5/TP5.vcxproj Normal file
View File

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{5ed86ef3-56fc-47bb-8158-b3da0c5c17c9}</ProjectGuid>
<RootNamespace>TP5</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
<Text Include="ETUDB.txt" />
<Text Include="PROF.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

30
TP5/TP5.vcxproj.filters Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Fichiers sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Fichiers d%27en-tête">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Fichiers de ressources">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Text Include="PROF.txt">
<Filter>Fichiers de ressources</Filter>
</Text>
<Text Include="ETUDB.txt">
<Filter>Fichiers de ressources</Filter>
</Text>
</ItemGroup>
</Project>

4
TP5/TP5.vcxproj.user Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

215
TP5/main.cpp Normal file
View File

@@ -0,0 +1,215 @@
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
class ETUD {
int Id;
string nom;
public:
ETUD() { static int i = 0; Id = ++i; }
~ETUD() { cout << "Disparition de l'étudiant ID=" << Id << endl; }
void saisie(string ligne) { nom = ligne.substr(0, ligne.find(';')); };
void affiche() { cout << setw(4) << Id << left << setw(2) << nom; }
void saisie() { cout << "Nom :"; cin.ignore(); getline(cin, nom); }
string getNom() { return nom; }
};
class PROF {
int Id;
string nom, service;
public:
PROF() { static int i = 0; Id = ++i; }
~PROF() { cout << "Disparition du prof ID=" << Id << endl; }
void saisie(string ligne) { int i = ligne.find(';'); nom = ligne.substr(0, i); service = ligne.substr(i + 1, ligne.find(';', i+1) - i - 1); };
void affiche() { cout << left << setw(4) << Id << left << setw(8) << nom << " " << left << setw(8) << service; }
void saisie() { cout << "Nom :"; cin.ignore(); getline(cin, nom); cout << "Service :"; cin.ignore(); getline(cin, service); }
string getNom() { return nom; }
};
int menu() {
int choix;
cout << "Entrez votre choix : \n"
<< " 1. Lire fichier PROF et stocker les données dans un Vector + Affichage\n"
<< " 2. Lire fichier ETUDB et stocker les données dans une List + Affichage\n"
<< " 3. Ajouter un PROF au début du Vector + Afficher\n"
<< " 4. Ajouter un ETUD au début de List + Afficher\n"
<< " 5. Supprimer le PROF et ETUD au début de Vector et List + Affichage\n"
<< " 6. Créer une List2 contenant uniquement les noms des ETUD et PROF \n"
<< " 7. Quitter " << endl;
cin >> choix;
return choix;
}
// template <class C, class O>
template <class C>
void lire(C& c, string nomfichier) {
ifstream fichier(nomfichier);
int N;
string ligne;
if (!fichier) {
cout << "Une erreur est survenue lors de la lecture du fichier" << endl;
return;
}
fichier >> N;
fichier.ignore();
while (N-- > 0) {
getline(fichier, ligne);
// O o;
// o.saisie(ligne);
// c.insert(c.end(), o);
// https://cplusplus.com/reference/vector/vector/emplace/
// https://cplusplus.com/reference/list/list/emplace/
c.emplace(c.end())->saisie(ligne);
}
}
template <class C>
void affiche(C& conteneur) {
cout << "Ce conteneur contient" << endl;
for (auto& o : conteneur) {
cout << endl;
o.affiche();
}
cout << endl;
}
template <class C>
void lire_puis_affiche(C& conteneur, string nomfichier) {
lire(conteneur, nomfichier);
affiche(conteneur);
}
// template <class C, class O>
template <class C>
void ajoutdebut_affiche(C& conteneur) {
conteneur.emplace(conteneur.begin())->saisie();
affiche(conteneur);
}
template <class C>
void supprimedebut_affiche(C& conteneur) {
conteneur.erase(conteneur.begin());
affiche(conteneur);
}
template <class C>
void remplirliste_nom(C& c, list<string>& l) {
for (auto& o : c) {
l.push_back(o.getNom());
}
}
void affiche(list<string>& l) {
cout << "Voici la liste des noms des etudiants et des PROFs" << endl;
for (auto& o : l) {
cout << endl << o;
}
cout << endl;
}
int main() {
setlocale(LC_ALL, "");
list<ETUD> etuds;
vector<PROF> profs;
list<string> list2;
profs.reserve(10);
int choix;
while ((choix = menu()) != 7) {
switch (choix) {
case 1:
//lire<vector<PROF>, PROF>(profs, "PROF.txt");
lire_puis_affiche(profs, "PROF.txt");
break;
case 2:
//lire<list<ETUD>, ETUD>(etuds, "ETUDB.txt");
lire_puis_affiche(etuds, "ETUDB.txt");
break;
case 3:
ajoutdebut_affiche(profs);
break;
case 4:
ajoutdebut_affiche(etuds);
break;
case 5:
supprimedebut_affiche(etuds);
supprimedebut_affiche(profs);
break;
case 6:
remplirliste_nom(etuds, list2);
remplirliste_nom(profs, list2);
affiche(list2);
break;
}
}
return 0;
}
/*
template <class Conteneur, class T>
void fonction_template(Conteneur& conteneur) {
T monobjet;
conteneur.push_back(monobjet);
}
void exemple_template() {
list<PROF> profs;
profs.push_back
int varI = 0;
fonction_template<list<PROF>, PROF>(profs);
fonction_template<list<PROF>, string>(profs);
fonction_template<int, string>(varI);
}
*/
/*
// expand la fonction template comme ceci
void fonction_template(list<PROF>& conteneur) {
PROF monobjet;
conteneur.push_back(monobjet);
}
// expand la fonction template comme ceci (avec le 2e)
void fonction_template(list<PROF>& conteneur) {
string monobjet;
conteneur.push_back(monobjet);
}
// expand la fonction template comme ceci (avec le 3e)
void fonction_template(int& conteneur) {
string monobjet;
conteneur.push_back(monobjet);
}*/

31
TP6/TP6.sln Normal file
View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34221.43
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TP6", "TP6.vcxproj", "{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Debug|x64.ActiveCfg = Debug|x64
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Debug|x64.Build.0 = Debug|x64
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Debug|x86.ActiveCfg = Debug|Win32
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Debug|x86.Build.0 = Debug|Win32
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Release|x64.ActiveCfg = Release|x64
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Release|x64.Build.0 = Release|x64
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Release|x86.ActiveCfg = Release|Win32
{C1CE1082-4EB0-43D9-8755-76FB40FF79CE}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1F44335C-36DF-43F4-8EA1-044BA57E5AB7}
EndGlobalSection
EndGlobal

135
TP6/TP6.vcxproj Normal file
View File

@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{c1ce1082-4eb0-43d9-8755-76fb40ff79ce}</ProjectGuid>
<RootNamespace>TP6</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

22
TP6/TP6.vcxproj.filters Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Fichiers sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Fichiers d%27en-tête">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Fichiers de ressources">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
</ItemGroup>
</Project>

4
TP6/TP6.vcxproj.user Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

279
TP6/main.cpp Normal file
View File

@@ -0,0 +1,279 @@
#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;
class Personne {
int Id;
string Nom;
public:
using SAISIE = int;
Personne() {
static int i = 0;
Id = ++i;
}
Personne(int Id) : Id(Id) {};
void saisie() { getline(cin, Nom, ' '); }
void afficher() { cout << left << setw(3) << Id << left << setw(8) << Nom; }
// paramètre saisie n'est pas utilisé par défaut
static SAISIE parametre_saisie() { return 0; }
static string nomclasse() { return "personne"; }
bool operator==(string nom) { return Nom == nom; }
bool operator<(Personne& b) const noexcept { return Nom < b.Nom; }
};
class Prof : public Personne {
string service;
public:
static int i;
using SAISIE = char;
Prof() : Personne(++i) {};
void saisie(SAISIE n) { Personne::saisie(); getline(cin, service, n); }
void afficher() { Personne::afficher(); cout << left << setw(8) << service; }
static string nomclasse() { return "prof"; }
static SAISIE parametre_saisie() {return '\n';}
};
class Direction : public Prof {
string Titre;
public:
void saisie() { Prof::saisie(' '); getline(cin, Titre); }
void afficher() { Prof::afficher(); cout << left << setw(8) << Titre; }
static string nomclasse() { return "direction"; };
template <class C>
void moyennes(C& etudiants) {
cout << "==Moyennes==" << endl;
for (auto etud : etudiants) {
cout << endl;
etud.afficher();
etud.Moy = 0;
for (int i = 0; i < etud.N_Note; i++) {
etud.Moy += etud.Note[i];
}
etud.Moy = (float)etud.Moy / (float)etud.N_Note;
cout << "M: " << setprecision(4) << etud.Moy;
}
cout << endl;
};
};
class Etudiant : public Personne {
string An_Scol;
int Note[3];
int N_Note;
float Moy;
friend class Direction;
friend bool tri_etud(const Etudiant& a, const Etudiant& b);
public:
static int i;
using SAISIE = int;
Etudiant() : Personne(++i) {};
void saisie(int n) {
Personne::saisie();
getline(cin, An_Scol, ' ');
string tmp;
N_Note = n;
for (int i = 0; i < N_Note-1; i++) {
getline(cin, tmp, ' ');
Note[i] = stoi(tmp);
}
cin >> Note[N_Note-1];
cin.ignore();
}
void afficher() { Personne::afficher(); cout << left << setw(6) << An_Scol; for (int i = 0; i < N_Note; i++) cout << left << setw(4) << Note[i]; }
// Retourne le nom de la classe pour la saisie
static string nomclasse() { return "étudiant"; }
static SAISIE parametre_saisie() {
int mat = 0;
do {
cout << "Nombre de matière (<= 3) : ";
cin >> mat; cin.ignore();
} while (mat <= 0 || mat > 3);
return mat;
}
};
int Prof::i = 0;
int Etudiant::i = 0;
template <class C>
void saisie(C& conteneur) {
// récupération du type stocké dans le conteneur, évite de devoir
// passer un 2e variable en paramètre
using A = typename C::value_type;
// Le type "SAISIE" stocké sur la classe,
// permet de saisir virtuellement n'importe en quoi avant la saisie de chaque élémement
// 1x avant les itérations
using SAISIE = typename A::SAISIE;
int n;
cout << "Nombre de " << A::nomclasse() << " : ";
cin >> n; cin.ignore();
SAISIE p = A::parametre_saisie();
while (n-- > 0) {
// A a;
// a.saisie();
// conteneur.insert(conteneur.end(), a);
conteneur.emplace(conteneur.end())->saisie(p);
}
cout << endl;
}
template <class C>
void afficher(C& conteneur) {
using V = typename C::value_type;
cout << "Affichage de " << V::nomclasse() << endl;
for (auto &v : conteneur) {
cout << endl; v.afficher();
}
cout << endl;
}
template <class C>
bool recherche(C& conteneur, string recherche) {
using T = typename C::value_type;
auto et = find(conteneur.begin(), conteneur.end(), recherche);
if (et != conteneur.end()) {
cout << recherche << " existe. Il s'agit d'un " << T::nomclasse();
return true;
}
return false;
}
// a < b
bool tri_etud(const Etudiant& a, const Etudiant& b) {
if (a.An_Scol.length() != 3 || b.An_Scol.length() != 3) {
return a.Moy < b.Moy;
}
if (a.An_Scol[0] != b.An_Scol[0]) {
return a.An_Scol[0] < b.An_Scol[0];
}
else if (a.An_Scol[2] != b.An_Scol[2]) {
return a.An_Scol[2] < b.An_Scol[2];
}
else {
return a.Moy < b.Moy;
}
}
int menu() {
int c;
cout << endl;
cout<< " 1. Saisir N Etudiants et afficher" << endl
<< " 2. Saisir M Profs et affichage" << endl
<< " 3. Doyen membre de Direction Calcule la moyenne de chaque étudiant et affichage" << endl
<< " 4. Chercher selon le NOM si un Etud ou Prof existe et affichage" << endl
<< " 5. Trier selon le Nom(Etud ou Prof) par ordre croissant et affichage" << endl
<< " 6. Afficher la liste des étudiants par année scolaire et par ordre décroissant de leur moyenne" << endl
<< " 7. Quitter" << endl;
cout << "Choix :";
cin >> c; cin.ignore();
return c;
}
int main() {
int c;
string r;
list<Etudiant> etudiants;
vector<Prof> profs;
Direction doyen;
setlocale(LC_ALL, "");
while ((c = menu()) != 7) {
switch (c) {
case 1:
saisie(etudiants);
afficher(etudiants);
break;
case 2:
saisie(profs);
afficher(profs);
break;
case 3:
doyen.saisie();
cout << "Affichage doyen" << endl; doyen.afficher(); cout << endl;
doyen.moyennes(etudiants);
break;
case 4:
cout << "Entrer un Nom : " << endl;
getline(cin, r);
recherche(etudiants, r) || recherche(profs, r) || (cout << r << " n'existe pas !! ");
break;
case 5:
etudiants.sort();
afficher(etudiants);
sort(profs.begin(), profs.end());
afficher(profs);
break;
case 6:
etudiants.sort(tri_etud);
afficher(etudiants);
break;
}
}
return 0;
}

277
TP6/main.cpp.txt Normal file
View File

@@ -0,0 +1,277 @@
#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;
class Personne {
int Id;
string Nom;
public:
using SAISIE = int;
Personne() {
static int i = 0;
Id = ++i;
}
Personne(int Id) : Id(Id) {};
void saisie() { getline(cin, Nom, ' '); }
void afficher() { cout << left << setw(3) << Id << left << setw(8) << Nom; }
// paramètre saisie n'est pas utilisé par défaut
static SAISIE parametre_saisie() { return 0; }
static string nomclasse() { return "personne"; }
bool operator==(string nom) { return Nom == nom; }
bool operator<(Personne& b) const noexcept { return Nom < b.Nom; }
};
class Prof : public Personne {
string service;
public:
static int i;
using SAISIE = char;
//Prof() : Personne(++i) {};
void saisie(SAISIE n) { Personne::saisie(); getline(cin, service, n); }
void afficher() { Personne::afficher(); cout << left << setw(8) << service; }
static string nomclasse() { return "prof"; }
static SAISIE parametre_saisie() {return '\n';}
};
class Direction : public Prof {
string Titre;
public:
void saisie() { Prof::saisie(' '); getline(cin, Titre); }
void afficher() { Prof::afficher(); cout << left << setw(8) << Titre; }
static string nomclasse() { return "direction"; };
template <class C>
void moyennes(C& etudiants) {
cout << "==Moyennes==" << endl;
for (auto etud : etudiants) {
cout << endl;
etud.afficher();
etud.Moy = 0;
for (int i = 0; i < etud.N_Note; i++) {
etud.Moy += etud.Note[i];
}
etud.Moy = (float)etud.Moy / (float)etud.N_Note;
cout << "M: " << setprecision(4) << etud.Moy;
}
cout << endl;
};
};
class Etudiant : public Personne {
string An_Scol;
int Note[3];
int N_Note;
float Moy;
friend class Direction;
friend bool tri_etud(const Etudiant& a, const Etudiant& b);
public:
static int i;
using SAISIE = int;
//Etudiant() : Personne(++i) {};
void saisie(int n) {
Personne::saisie();
getline(cin, An_Scol, ' ');
string tmp;
N_Note = n;
for (int i = 0; i < N_Note-1; i++) {
getline(cin, tmp, ' ');
Note[i] = stoi(tmp);
}
cin >> Note[N_Note-1];
cin.ignore();
}
void afficher() { Personne::afficher(); cout << left << setw(6) << An_Scol; for (int i = 0; i < N_Note; i++) cout << left << setw(4) << Note[i]; }
// Retourne le nom de la classe pour la saisie
static string nomclasse() { return "étudiant"; }
static SAISIE parametre_saisie() {
int mat = 0;
do {
cout << "Nombre de matière (<= 3) : ";
cin >> mat; cin.ignore();
} while (mat <= 0 || mat > 3);
return mat;
}
};
int Prof::i = 0;
int Etudiant::i = 0;
template <class C>
void saisie(C& conteneur) {
// récupération du type stocké dans le conteneur, évite de devoir
// passer un 2e variable en paramètre
using A = typename C::value_type;
// Le type "SAISIE" stocké sur la classe,
// permet de saisir virtuellement n'importe en quoi avant la saisie de chaque élémement
// 1x avant les itérations
using SAISIE = typename A::SAISIE;
int n;
cout << "Nombre de " << A::nomclasse() << " : ";
cin >> n; cin.ignore();
SAISIE p = A::parametre_saisie();
while (n-- > 0) {
// A a;
// a.saisie();
// conteneur.insert(conteneur.end(), a);
conteneur.emplace(conteneur.end())->saisie(p);
}
cout << endl;
}
template <class C>
void afficher(C& conteneur) {
using V = typename C::value_type;
cout << "Affichage de " << V::nomclasse() << endl;
for (auto &v : conteneur) {
cout << endl; v.afficher();
}
cout << endl;
}
template <class C>
bool recherche(C& conteneur, string recherche) {
using T = typename C::value_type;
auto et = find(conteneur.begin(), conteneur.end(), recherche);
if (et != conteneur.end()) {
cout << recherche << " existe. Il s'agit d'un " << T::nomclasse();
return true;
}
return false;
}
// a < b
bool tri_etud(const Etudiant& a, const Etudiant& b) {
if (a.An_Scol.length() != 3 || b.An_Scol.length() != 3) {
return a.Moy < b.Moy;
}
if (a.An_Scol[0] != b.An_Scol[0]) {
return a.An_Scol[0] < b.An_Scol[0];
}
else if (a.An_Scol[2] != b.An_Scol[2]) {
return a.An_Scol[2] < b.An_Scol[2];
}
else {
return a.Moy < b.Moy;
}
}
int menu() {
int c;
cout << endl;
cout<< " 1. Saisir N Etudiants et afficher" << endl
<< " 2. Saisir M Profs et affichage" << endl
<< " 3. Doyen membre de Direction Calcule la moyenne de chaque étudiant et affichage" << endl
<< " 4. Chercher selon le NOM si un Etud ou Prof existe et affichage" << endl
<< " 5. Trier selon le Nom(Etud ou Prof) par ordre croissant et affichage" << endl
<< " 6. Afficher la liste des étudiants par année scolaire et par ordre décroissant de leur moyenne" << endl
<< " 7. Quitter" << endl;
cout << "Choix :";
cin >> c; cin.ignore();
return c;
}
int main() {
int c;
string r;
list<Etudiant> etudiants;
vector<Prof> profs;
Direction doyen;
setlocale(LC_ALL, "");
while ((c = menu()) != 7) {
switch (c) {
case 1:
saisie(etudiants);
afficher(etudiants);
break;
case 2:
saisie(profs);
afficher(profs);
break;
case 3:
doyen.saisie();
cout << "Affichage doyen" << endl; doyen.afficher(); cout << endl;
doyen.moyennes(etudiants);
break;
case 4:
cout << "Entrer un Nom : " << endl;
getline(cin, r);
recherche(etudiants, r) || recherche(profs, r) || (cout << r << " n'existe pas !! ");
break;
case 5:
etudiants.sort();
afficher(etudiants);
sort(profs.begin(), profs.end());
afficher(profs);
break;
case 6:
etudiants.sort(tri_etud);
afficher(etudiants);
break;
}
}
return 0;
}

32
TP7/Entreprise.cpp Normal file
View File

@@ -0,0 +1,32 @@
#include "Entreprise.h"
using namespace std;
void Entreprise::saisie(ifstream& s) {
string tmp;
getline(s, m_company, ';');
getline(s, m_country, ';');
getfloat(s, m_market_value, ';');
getline(s, m_sector, ';');
getfloat(s, m_turnover, ';');
getfloat(s, m_employees, ';');
getint(s, m_rank_2015, ';');
getint(s, m_rank_2014, ';');
}
void Entreprise::affichage() {
cout << m_company << " " << m_country << " " << m_market_value << " " << m_sector << " " << m_turnover << " " << m_employees << " " << m_rank_2015 << " " << m_rank_2014;
}
int Entreprise::rank_progress() const {
return m_rank_2014 - m_rank_2015;
}
float Entreprise::turnover_empl() const {
return (float)m_turnover / m_employees;
}
float Entreprise::getTurnover() const {
return m_turnover;
}

29
TP7/Entreprise.h Normal file
View File

@@ -0,0 +1,29 @@
#pragma once
#include <string>
#include <fstream>
#include <iostream>
#include "getio.h"
using namespace std;
class Entreprise {
string m_company; //(Nom de la Société) clé
string m_country; //(Nom du Pays)
float m_market_value; //(Valeur Marchande)
string m_sector; //(Secteur dActivité)
float m_turnover; //(Chiffre dAffaire)
float m_employees; //(Nombre dEmployés)
int m_rank_2015; //(Rang en 2015)
int m_rank_2014; //(Rang en 2014)
public:
void saisie(ifstream&);
void affichage();
int rank_progress() const;
float turnover_empl() const;
float getTurnover() const;
string key() { return m_company; }
};

25
TP7/Pays.cpp Normal file
View File

@@ -0,0 +1,25 @@
#include "Pays.h"
#include <iostream>
using namespace std;
void Pays::saisie(ifstream &in) {
getline(in, Region, ';');
getline(in, Nom, ';');
getfloat(in, Population, ';');
// Pas dans le fichier :(
// getfloat(in, Area, ';');
// "trim" en c++
auto end = Nom.end();
while (*(end-1) == ' ')
end--;
Nom.erase(end, Nom.end());
}
void Pays::affichage() {
cout << Region << " " << Nom << " " << Population;
}

20
TP7/Pays.h Normal file
View File

@@ -0,0 +1,20 @@
#pragma once
#include <string>
#include <fstream>
#include "getio.h"
using namespace std;
class Pays {
string Region; // (Localisation) clé
string Nom; // (Nom)
float Population;
float Area; // (Superficie)
public:
void saisie(ifstream& s);
void affichage();
string key() { return Region; };
};

31
TP7/TP7.sln Normal file
View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34221.43
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TP7", "TP7.vcxproj", "{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Debug|x64.ActiveCfg = Debug|x64
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Debug|x64.Build.0 = Debug|x64
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Debug|x86.ActiveCfg = Debug|Win32
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Debug|x86.Build.0 = Debug|Win32
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Release|x64.ActiveCfg = Release|x64
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Release|x64.Build.0 = Release|x64
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Release|x86.ActiveCfg = Release|Win32
{1DAA954A-822E-4982-9997-CB2A7CB3DCBA}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A5FC08F6-9D92-4CEC-92B5-C8B24659798A}
EndGlobalSection
EndGlobal

147
TP7/TP7.vcxproj Normal file
View File

@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{1daa954a-822e-4982-9997-cb2a7cb3dcba}</ProjectGuid>
<RootNamespace>TP7</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Entreprise.cpp" />
<ClCompile Include="getio.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="Pays.cpp" />
</ItemGroup>
<ItemGroup>
<Text Include="countries.txt" />
<Text Include="entreprises.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Entreprise.h" />
<ClInclude Include="getio.h" />
<ClInclude Include="Pays.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

50
TP7/TP7.vcxproj.filters Normal file
View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Fichiers sources">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Fichiers d%27en-tête">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Fichiers de ressources">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
<ClCompile Include="Entreprise.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
<ClCompile Include="Pays.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
<ClCompile Include="getio.cpp">
<Filter>Fichiers sources</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Text Include="countries.txt">
<Filter>Fichiers de ressources</Filter>
</Text>
<Text Include="entreprises.txt">
<Filter>Fichiers de ressources</Filter>
</Text>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Entreprise.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
<ClInclude Include="getio.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
<ClInclude Include="Pays.h">
<Filter>Fichiers d%27en-tête</Filter>
</ClInclude>
</ItemGroup>
</Project>

4
TP7/TP7.vcxproj.user Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

228
TP7/countries.txt Normal file
View File

@@ -0,0 +1,228 @@
Region;Nom;Population2008
Asia;Afghanistan ;32.738.376
Europe;Albania ;3.619.778
Africa;Algeria ;33.769.669
Oceana;American Samoa ;64.827
Europe;Andorra ;82.627
Africa;Angola ;12.531.357
NorthAmerica;Anguilla ;14.108
NorthAmerica;Antigua and Barbuda ;84.522
SouthAmerica;Argentina ;40.481.998
Asia;Armenia ;2.968.586
NorthAmerica;Aruba ;101.541
Oceana;Australia ;21.007.310
Europe;Austria ;8.205.533
Asia;Azerbaijan;8.177.717
NorthAmerica;Bahamas, The ;307.451
Asia;Bahrain ;718.306
Asia;Bangladesh ;154.037.902
NorthAmerica;Barbados ;283.498
Europe;Belarus ;9.685.768
Europe;Belgium ;10.403.951
NorthAmerica;Belize ;301.270
Africa;Benin ;8.532.547
NorthAmerica;Bermuda ;67.388
Asia;Bhutan ;682.321
SouthAmerica;Bolivia ;9.601.257
Europe;Bosnia and Herzegovina ;4.590.310
Africa;Botswana ;1.952.048
SouthAmerica;Brazil ;196.342.587
Asia;Brunei ;381.371
Europe;Bulgaria ;7.262.675
Africa;Burkina Faso ;15.264.735
Asia;Burma ;47.758.181
Africa;Burundi ;8.691.005
Asia;Cambodia ;14.241.640
Africa;Cameroon ;18.467.692
NorthAmerica;Canada ;33.212.696
Africa;Cape Verde ;426.998
NorthAmerica;Cayman Islands ;47.862
Africa;Central African Republic ;4.444.330
Africa;Chad ;10.111.337
SouthAmerica;Chile ;16.454.143
Asia;China ;1.330.044.605
SouthAmerica;Colombia ;45.013.674
Africa;Comoros ;731.775
Africa;Congo (Brazzaville, Republic of);3.905.010
Africa;Congo (Kinshasa, DR);66.514.506
Oceana;Cook Islands ;12.271
NorthAmerica;Costa Rica ;4.195.914
Africa;Cote d'Ivoire ;20.179.602
Europe;Croatia ;4.491.543
NorthAmerica;Cuba ;11.423.952
Asia;Cyprus ;792.604
Europe;Czech Republic ;10.220.911
Europe;Denmark ;5.484.723
Africa;Djibouti ;506.221
NorthAmerica;Dominica ;72.514
NorthAmerica;Dominican Republic ;9.507.133
SouthAmerica;Ecuador ;14.354.469
Africa;Egypt ;81.713.517
NorthAmerica;El Salvador ;7.066.403
Africa;Equatorial Guinea ;616.459
Africa;Eritrea ;5.502.026
Europe;Estonia ;1.307.605
Africa;Ethiopia ;82.544.838
Europe;Faroe Islands ;48.668
Oceana;Fiji ;931.741
Europe;Finland ;5.244.749
Europe;France ;64.057.790
Oceana;French Polynesia ;283.019
Africa;Gabon ;1.485.832
Africa;Gambia, The ;1.735.464
Asia;Gaza Strip ;1.500.202
Asia;Georgia ;4.630.841
Europe;Germany ;82.369.548
Africa;Ghana ;23.382.848
Europe;Gibraltar ;28.002
Europe;Greece ;10.722.816
NorthAmerica;Greenland ;57.564
NorthAmerica;Grenada ;90.343
Oceana;Guam ;175.991
NorthAmerica;Guatemala ;13.002.206
Europe;Guernsey ;65.726
Africa;Guinea ;9.806.509
Africa;Guinea-Bissau ;1.503.182
SouthAmerica;Guyana ;770.794
NorthAmerica;Haiti ;8.871.445
NorthAmerica;Honduras ;7.639.327
Asia;Hong Kong ;7.018.636
Europe;Hungary ;9.930.915
Europe;Iceland ;304.367
Asia;India ;1.147.995.898
Asia;Indonesia ;237.512.355
Asia;Iran ;65.875.223
Asia;Iraq ;28.221.181
Europe;Ireland ;4.156.119
Europe;Isle of Man ;76.111
Asia;Israel ;7.112.359
Europe;Italy ;58.145.321
NorthAmerica;Jamaica ;2.804.332
Asia;Japan ;127.288.419
Europe;Jersey ;91.427
Asia;Jordan ;6.198.677
Asia;Kazakhstan ;15.340.533
Africa;Kenya ;37.953.838
Oceana;Kiribati ;110.356
Asia;Korea, North ;22.565.347
Asia;Korea, South ;48.379.392
Europe;Kosovo ;1.794.984
Asia;Kuwait ;2.596.799
Asia;Kyrgyzstan ;5.356.869
Asia;Laos ;6.677.534
Europe;Latvia ;2.245.423
Asia;Lebanon ;3.971.941
Africa;Lesotho ;2.128.180
Africa;Liberia ;3.334.587
Africa;Libya ;6.173.579
Europe;Liechtenstein ;34.515
Europe;Lithuania ;3.565.205
Europe;Luxembourg ;486.006
Asia;Macau ;545.674
Europe;Macedonia ;2.061.315
Africa;Madagascar ;20.042.551
Africa;Malawi ;13.931.831
Asia;Malaysia ;25.274.133
Asia;Maldives ;385.925
Africa;Mali ;12.324.029
Europe;Malta ;403.532
Oceana;Marshall Islands ;63.174
Africa;Mauritania ;3.054.933
Africa;Mauritius ;1.274.189
Africa;Mayotte ;216.306
NorthAmerica;Mexico ;109.955.400
Oceana;Micronesia, Federated States of ;107.665
Europe;Moldova ;4.324.450
Europe;Monaco ;32.835
Asia;Mongolia ;2.996.081
Europe;Montenegro ;678.177
NorthAmerica;Montserrat ;5.079
Africa;Morocco ;34.343.219
Africa;Mozambique ;21.284.701
Africa;Namibia ;2.088.669
Oceana;Nauru ;13.775
Asia;Nepal ;28.196.960
Europe;Netherlands ;16.645.313
NorthAmerica;Netherlands Antilles ;225.369
Oceana;New Caledonia ;224.824
Oceana;New Zealand ;4.173.460
NorthAmerica;Nicaragua ;5.785.846
Africa;Niger ;14.752.080
Africa;Nigeria ;146.255.306
Oceana;Northern Mariana Islands ;86.616
Europe;Norway ;4.644.457
Asia;Oman ;3.311.640
Asia;Pakistan ;172.800.051
Oceana;Palau ;20.701
NorthAmerica;Panama ;3.309.679
Oceana;Papua New Guinea ;5.931.769
SouthAmerica;Paraguay ;6.831.306
SouthAmerica;Peru ;29.180.899
Asia;Philippines ;96.061.683
Europe;Poland ;38.500.696
Europe;Portugal ;10.676.910
NorthAmerica;Puerto Rico ;3.957.098
Asia;Qatar ;824.789
Europe;Romania ;22.246.862
Europe;Russia ;140.702.094
Africa;Rwanda ;10.186.063
NorthAmerica;Saint Barthelemy ;7.492
Africa;Saint Helena ;7.601
NorthAmerica;Saint Kitts and Nevis ;39.817
NorthAmerica;Saint Lucia ;159.585
NorthAmerica;Saint Martin ;29.376
NorthAmerica;Saint Pierre and Miquelon ;7.044
NorthAmerica;Saint Vincent and the Grenadines ;104.938
Oceana;Samoa ;217.083
Europe;San Marino ;29.973
Africa;Sao Tome and Principe ;206.178
Asia;Saudi Arabia ;28.146.657
Africa;Senegal ;13.343.424
Europe;Serbia ;7.413.882
Africa;Seychelles ;86.595
Africa;Sierra Leone ;6.294.774
Asia;Singapore ;4.608.167
Europe;Slovakia ;5.455.407
Europe;Slovenia ;2.007.711
Oceana;Solomon Islands ;581.318
Africa;Somalia ;9.558.666
Africa;South Africa ;48.782.755
Europe;Spain ;40.491.051
Asia;Sri Lanka ;21.128.773
Africa;Sudan ;40.218.455
SouthAmerica;Suriname ;475.996
Africa;Swaziland ;1.128.814
Europe;Sweden ;9.045.389
Europe;Switzerland ;7.581.520
Asia;Syria ;19.747.586
Asia;Taiwan ;22.920.946
Asia;Tajikistan ;7.211.884
Africa;Tanzania ;40.213.162
Asia;Thailand ;65.493.298
Asia;Timor-Leste ;1.108.777
Africa;Togo ;5.858.673
Oceana;Tonga ;119.009
NorthAmerica;Trinidad and Tobago ;1.231.323
Africa;Tunisia ;10.383.577
Asia;Turkey ;75.793.836
Asia;Turkmenistan ;4.829.332
NorthAmerica;Turks and Caicos Islands ;22.352
Oceana;Tuvalu ;12.177
Africa;Uganda ;31.367.972
Europe;Ukraine ;45.994.287
Asia;United Arab Emirates ;4.621.399
Europe;United Kingdom ;60.943.912
NorthAmerica;United States ;304.228.257
SouthAmerica;Uruguay ;3.477.778
Asia;Uzbekistan ;27.345.026
Oceana;Vanuatu ;215.446
SouthAmerica;Venezuela ;26.414.815
Asia;Vietnam ;86.116.559
NorthAmerica;Virgin Islands, British ;24.041
NorthAmerica;Virgin Islands, U.S. ;109.840
Oceana;Wallis and Futuna ;15.237
Asia;West Bank ;2.407.681
Africa;Western Sahara ;393.831
Asia;Yemen ;23.013.376
Africa;Zambia ;11.669.534
Africa;Zimbabwe ;11.350.111

501
TP7/entreprises.txt Normal file
View File

@@ -0,0 +1,501 @@
Company;Country;Market value $m;Sector;Turnover $m;Employees;Global rank 2015;Global rank 2014;Price $;P/e ratio;Dividend yield (%);Year End
Apple;US;724.773,1;Technology hardware & equipment;182.795,0;92.600;1;1;124,4;19,3;1,5;27-09-14
Exxon Mobil;US;356.548,7;Oil & gas producers;364.763,0;75.300;2;2;85,0;11,2;3,2;31-12-14
Berkshire Hathaway;US;356.510,7;Nonlife insurance;N/R;316.000;3;5;217.500,0;18,0;;31-12-14
Google;US;345.849,2;Software & computer services;66.001,0;53.600;4;4;554,7;26,4;;31-12-14
Microsoft;US;333.524,8;Software & computer services;86.833,0;128.000;5;3;40,7;15,5;2,8;30-06-14
PetroChina;China;329.715,1;Oil & gas producers;367.853,7;534.652;6;16;1,1;12,3;3,6;31-12-14
Wells Fargo;US;279.919,7;Banks;N/R;264.500;7;7;54,4;13,3;2,5;31-12-14
Johnson & Johnson;US;279.723,9;Pharmaceuticals & biotechnology;74.331,0;126.500;8;6;100,6;17,6;2,7;28-12-14
Industrial & Commercial Bank of China;China;275.389,1;Banks;N/R;462.282;9;21;0,7;5,7;5,4;31-12-14
Novartis;Switzerland;267.897,0;Pharmaceuticals & biotechnology;49.550,7;133.413;10;14;99,0;25,4;2,6;31-12-14
China Mobile;Hong Kong;267.252,3;Mobile telecommunications;103.977,0;241.550;11;25;13,1;15,0;2,9;31-12-14
Wal-Mart Stores;US;265.107,3;General retailers;485.651,0;2.200.000;12;10;82,3;16,3;2,3;31-01-15
General Electric;US;249.774,4;General industrials;148.589,0;305.000;13;8;24,8;16,5;3,6;31-12-14
Nestle;Switzerland;243.701,8;Food producers;92.165,3;339.000;14;11;75,6;16,6;2,9;31-12-14
Toyota Motor;Japan;238.924,8;Automobiles & parts;248.954,6;338.875;15;23;69,9;12,5;2,3;31-03-14
Roche;Switzerland;237.747,6;Pharmaceuticals & biotechnology;47.748,7;88.509;16;9;276,0;25,0;2,9;31-12-14
JP Morgan Chase;US;225.861,1;Banks;N/R;241.359;17;13;60,6;11,5;2,6;31-12-14
Procter & Gamble;US;221.279,6;Household goods & home construction;83.062,0;118.000;18;17;81,9;20,9;3,0;30-06-14
Samsung Electronics;South Korea;214.039,7;Leisure goods;188.475,9;99.927;19;18;1.298,8;9,3;1,4;31-12-14
Pfizer;US;213.621,9;Pharmaceuticals & biotechnology;49.605,0;78.300;20;19;34,8;24,7;3,0;31-12-14
China Construction Bank;China;209.139,8;Banks;N/R;493.583;21;29;0,8;5,5;6,0;31-12-14
Verizon Communications;US;198.035,3;Fixed line telecommunications;127.079,0;177.300;22;22;48,6;20,1;4,4;31-12-14
Chevron;US;197.381,3;Oil & gas producers;191.755,0;64.700;23;15;105,0;10,4;4,0;31-12-14
Bank of China;China;197.225,6;Banks;N/R;308.128;24;52;0,6;5,8;5,2;31-12-14
Anheuser-Busch InBev;Belgium;196.554,3;Beverages;43.098,8;154.029;25;32;122,2;23,6;3,0;31-12-14
Royal Dutch Shell;UK;192.134,9;Oil & gas producers;385.634,5;94.000;26;12;29,8;13,8;6,2;31-12-14
Agricultural Bank of China;China;189.297,4;Banks;N/R;493.583;27;38;0,5;5,5;6,1;31-12-14
Oracle;US;188.438,8;Software & computer services;38.275,0;122.000;28;27;43,2;18,1;1,1;31-05-14
Facebook;US;183.860,1;Software & computer services;12.466,0;9.199;29;49;82,2;74,7;;31-12-14
Walt Disney;US;178.267,1;Media;48.813,0;180.000;30;39;104,9;24,6;0,8;27-09-14
Tencent;Hong Kong;177.960,6;Software & computer services;12.718,3;27.690;31;42;19,0;45,2;0,3;31-12-14
Coca-Cola;US;177.142,3;Beverages;46.052,0;129.200;32;31;40,6;25,3;3,0;31-12-14
Amazon.com;US;172.797,3;General retailers;88.988,0;154.100;33;35;372,1;;;31-12-14
AT&T;US;169.458,8;Fixed line telecommunications;132.447,0;253.000;34;26;32,7;27,4;5,7;31-12-14
HSBC;UK;164.249,6;Banks;N/R;257.603;35;24;8,5;13,1;5,8;31-12-14
Merck;US;163.139,3;Pharmaceuticals & biotechnology;42.237,0;70.000;36;33;57,5;14,1;3,1;31-12-14
Bank of America;US;161.908,8;Banks;N/R;224.000;37;28;15,4;42,8;0,8;31-12-14
IBM;US;158.642,0;Software & computer services;92.793,0;379.592;38;20;160,5;13,5;2,6;31-12-14
China Life Insurance;China;157.029,7;Life insurance;N/R;103.123;39;131;4,4;24,3;1,4;31-12-14
Citigroup;US;156.359,8;Banks;N/R;241.000;40;37;51,5;23,4;0,1;31-12-14
Home Depot;US;148.533,1;General retailers;83.176,0;371.000;41;59;113,6;24,1;1,7;02-01-15
Intel;US;148.094,7;Technology hardware & equipment;55.870,0;106.700;42;46;31,3;13,5;2,9;27-12-14
Gilead Sciences;US;145.532,9;Pharmaceuticals & biotechnology;24.890,0;7.000;43;60;98,1;13,4;;31-12-14
Comcast;US;142.798,5;Media;68.775,0;139.000;44;44;56,5;17,6;1,6;31-12-14
PepsiCo;US;141.742,7;Beverages;66.683,0;271.000;45;47;95,6;22,4;2,6;27-12-14
Cisco Systems;US;140.507,8;Technology hardware & equipment;47.142,0;74.042;46;56;27,5;18,5;2,6;26-07-14
Sanofi;France;130.260,0;Pharmaceuticals & biotechnology;41.244,3;113.496;47;40;98,7;24,4;3,5;31-12-14
Visa;US;128.455,3;Financial services;N/R;7.000;48;61;65,4;30,4;0,2;30-09-14
Volkswagen;Germany;124.335,3;Automobiles & parts;244.810,2;592.586;49;50;257,5;9,7;2,3;31-12-14
Bayer;Germany;124.157,7;Chemicals;51.075,0;118.888;50;57;150,1;30,0;1,8;31-12-14
BHP Billiton;Australia/UK;122.335,4;Mining;69.372,1;47.044;51;30;23,7;8,8;5,2;30-06-14
Amgen;US;121.303,9;Pharmaceuticals & biotechnology;20.063,0;17.900;52;80;159,9;23,9;1,5;31-12-14
Taiwan Semiconductor Manufacturing;Taiwan;120.577,1;Technology hardware & equipment;24.112,3;43.591;53;67;4,7;14,5;3,0;31-12-14
Actavis;US;120.536,1;Pharmaceuticals & biotechnology;13.062,3;21.600;54;285;297,6;;;31-12-14
Sinopec;China;119.104,8;Oil & gas producers;433.310,2;358.571;55;74;0,8;11,4;3,8;31-12-14
Unilever;Netherlands/UK;118.902,5;Personal goods;58.568,3;173.000;56;51;41,8;19,0;3,3;31-12-14
Total;France;118.541,9;Oil & gas producers;194.159,3;100.307;57;34;49,7;29,1;5,9;31-12-14
BP;UK;118.345,6;Oil & gas producers;334.605,9;84.500;58;36;6,5;34,1;6,0;31-12-14
CVS Caremark;US;117.170,8;Food & drug retailers;139.367,0;217.800;59;88;103,2;26,0;1,1;31-12-14
Philip Morris International;US;116.693,1;Tobacco;29.767,0;82.500;60;43;75,3;15,8;5,2;31-12-14
Commonwealth Bank of Australia;Australia;115.688,2;Banks;N/R;44.329;61;55;71,4;14,2;5,3;30-06-14
Qualcomm;US;114.380,5;Technology hardware & equipment;26.487,0;31.300;62;41;69,3;14,9;2,2;28-09-14
Ping An Insurance;China;113.119,0;Life insurance;N/R;235.999;63;172;12,0;15,0;1,0;31-12-14
Novo Nordisk;Denmark;112.977,6;Pharmaceuticals & biotechnology;14.428,3;40.957;64;68;53,5;32,6;1,5;31-12-14
UnitedHealth Group;US;112.812,6;Health care equipment & services;130.474,0;170.000;65;100;118,3;20,8;1,2;31-12-14
GlaxoSmithKline;UK;111.649,6;Pharmaceuticals & biotechnology;35.834,8;98.702;66;45;23,0;25,8;5,4;31-12-14
Medtronic;US;111.140,9;Health care equipment & services;17.005,0;49.000;67;144;78,0;25,8;1,4;25-04-14
Bristol Myers Squibb;US;107.500,1;Pharmaceuticals & biotechnology;15.879,0;25.000;68;93;64,5;53,8;2,2;31-12-14
Schlumberger;US;106.628,4;Oil equipment & services;48.631,0;120.000;69;48;83,4;20,1;1,9;31-12-14
United Technologies;US;106.470,3;Aerospace & defence;65.100,0;211.000;70;62;117,2;17,2;2,0;31-12-14
Banco Santander;Spain;105.960,3;Banks;N/R;185.405;71;58;7,5;13,2;8,8;31-12-14
Boeing;US;105.032,2;Aerospace & defence;90.762,0;165.500;72;81;150,1;20,3;2,1;31-12-14
3M;US;104.795,4;General industrials;31.821,0;89.800;73;87;165,0;22,0;2,1;31-12-14
Daimler;Germany;103.741,0;Automobiles & parts;157.039,9;279.972;74;66;97,0;12,3;3,1;31-12-14
L'Oreal;France;103.279,4;Personal goods;27.245,5;78.611;75;71;184,0;17,9;1,8;31-12-14
Inditex;Spain;100.013,2;General retailers;22.539,1;128.313;76;79;32,1;31,2;0,4;31-01-14
Biogen Idec;US;99.063,5;Pharmaceuticals & biotechnology;9.703,3;7.550;77;115;422,2;34,1;;31-12-14
Altria Group;US;98.505,2;Tobacco;17.945,0;9.000;78;109;50,0;19,5;4,0;31-12-14
British American Tobacco;UK;96.536,7;Tobacco;21.761,7;90.118;79;63;51,8;19,8;4,5;31-12-14
Mastercard;US;96.001,8;Financial services;N/R;10.300;80;95;86,4;28,0;0,6;31-12-14
Union Pacific;US;95.451,8;Industrial transportation;23.988,0;47.201;81;94;108,3;18,8;1,8;31-12-14
Westpac Banking;Australia;93.870,4;Banks;N/R;36.373;82;70;30,1;14,1;5,3;30-09-14
McDonald's;US;93.651,4;Travel & leisure;27.441,3;420.000;83;73;97,4;20,2;3,4;31-12-14
Abbvie;US;93.204,1;Pharmaceuticals & biotechnology;19.960,0;26.000;84;97;58,5;53,2;2,8;31-12-14
Walgreen;US;92.298,9;Food & drug retailers;76.392,0;251.000;85;138;84,7;42,3;1,5;31-08-14
Celgene;US;92.292,0;Pharmaceuticals & biotechnology;7.670,4;6.012;86;166;115,3;48,2;;31-12-14
Basf;Germany;91.489,5;Chemicals;89.874,3;113.292;87;65;99,6;14,7;3,4;31-12-14
Ambev;Brazil;90.732,6;Beverages;14.326,4;51.871;88;54;5,8;19,9;2,8;31-12-14
Kinder Morgan;US;90.622,5;Oil equipment & services;16.190,0;11.535;89;314;42,1;46,7;4,1;31-12-14
Siemens;Germany;90.196,5;General industrials;90.808,4;343.000;90;53;108,0;13,4;3,9;30-09-14
LVMH;France;89.497,4;Personal goods;37.047,2;121.289;91;82;176,3;12,9;2,2;31-12-14
SAP;Germany;88.793,3;Software & computer services;21.233,4;74.406;92;69;72,3;21,8;1,8;31-12-14
Mitsubishi UFJ Financial;Japan;87.866,4;Banks;N/R;106.141;93;104;6,2;9,4;2,6;31-03-14
Royal Bank Canada;Canada;86.842,8;Banks;N/R;78.000;94;77;60,2;11,3;4,2;31-10-14
AstraZeneca;UK;86.763,1;Pharmaceuticals & biotechnology;24.695,5;57.500;95;98;68,7;73,8;4,0;31-12-14
Vodafone Group;UK;86.760,2;Mobile telecommunications;63.910,1;92.812;96;72;3,3;3,6;7,0;31-03-14
SabMiller;UK;84.939,6;Beverages;17.430,1;69.947;97;101;52,6;23,8;2,0;31-03-14
Deutsche Telekom;Germany;83.314,0;Mobile telecommunications;75.765,4;227.811;98;116;18,4;23,3;3,3;31-12-14
Lloyds Banking Group;UK;82.941,0;Banks;N/R;84.490;99;89;1,2;38,7;0,9;31-12-14
Goldman Sachs;US;81.883,6;Financial services;N/R;34.000;100;110;188,0;11,0;1,2;31-12-14
Honeywell International;US;81.427,3;General industrials;40.306,0;127.000;101;113;104,3;19,6;1,8;31-12-14
Eli Lilly;US;80.714,4;Pharmaceuticals & biotechnology;19.615,6;39.135;102;132;72,7;32,6;2,7;31-12-14
BMW;Germany;80.263,3;Automobiles & parts;97.220,1;116.324;103;99;125,0;11,7;2,8;31-12-14
Tata Consultancy Services;India;79.935,9;Software & computer services;13.629,4;300.464;104;125;40,8;24,9;1,3;31-03-14
American Express;US;79.617,9;Financial services;N/R;54.000;105;76;78,1;14,1;1,3;31-12-14
Allianz;Germany;79.417,8;Nonlife insurance;N/R;147.425;106;106;173,8;10,5;4,8;31-12-14
Toronto-Dominion Bank;Canada;79.165,7;Banks;N/R;81.137;107;91;42,8;11,6;3,8;31-10-14
US Bancorp;US;77.784,5;Banks;N/R;66.750;108;103;43,7;14,2;2,2;31-12-14
ANZ Banking;Australia;77.424,4;Banks;N/R;50.328;109;96;28,0;12,0;5,6;30-09-14
Rio Tinto;Australia/UK;77.074,5;Mining;45.107,7;59.775;110;64;41,2;12,3;5,1;31-12-14
ConocoPhillips;US;76.670,7;Oil & gas producers;52.464,0;19.100;111;92;62,3;11,3;4,6;31-12-14
AIA Group;Hong Kong;75.815,8;Life insurance;N/R;20.000;112;165;6,3;21,7;1,0;30-11-14
BNP Paribas;France;75.696,8;Banks;N/R;187.903;113;75;60,8;;3,0;31-12-14
American International Group;US;74.183,9;Nonlife insurance;N/R;65.000;114;114;54,8;10,5;0,9;31-12-14
Lowe's Companies;US;71.414,3;General retailers;56.223,0;266.000;115;199;74,4;27,5;1,2;30-01-15
National Australia Bank;Australia;71.303,9;Banks;N/R;42.853;116;107;29,5;15,2;5,9;30-09-14
Twenty-First Century Fox;US;71.181,8;Media;31.867,0;27.000;117;120;33,8;17,0;0,7;30-06-14
NTT DoCoMo;Japan;71.051,7;Mobile telecommunications;43.229,1;23.890;118;127;17,4;16,0;3,3;31-03-14
Starbucks;US;71.006,0;Travel & leisure;16.447,8;191.000;119;170;94,7;69,6;0,3;28-09-14
Morgan Stanley;US;70.545,3;Financial services;N/R;55.802;120;146;35,7;22,3;1,0;31-12-14
UBS;Switzerland;70.519,7;Banks;N/R;60.155;121;102;18,9;20,1;2,7;31-12-14
Bank of Communications;China;70.487,0;Banks;N/R;93.658;122;210;0,9;6,1;4,7;31-12-14
Telefonica;Spain;70.326,6;Fixed line telecommunications;60.915,4;123.700;123;117;14,2;19,2;5,7;31-12-14
Time Warner;US;70.129,3;Media;27.359,0;25.600;124;162;84,4;19,5;1,5;31-12-14
Nippon Telegraph & Telephone;Japan;70.111,7;Fixed line telecommunications;105.864,9;239.756;125;143;61,7;12,5;2,7;31-03-14
eBay;US;69.945,6;General retailers;17.902,0;34.600;126;119;57,7;;;31-12-14
Abbott Laboratories;US;69.910,9;Pharmaceuticals & biotechnology;20.247,0;77.000;127;157;46,3;30,9;1,9;31-12-14
Softbank;Japan;69.882,1;Mobile telecommunications;64.599,9;70.336;128;85;58,2;13,5;0,7;31-03-14
Diageo;UK;69.404,9;Beverages;17.535,0;26.588;129;105;27,6;18,0;3,2;30-06-14
Nike;US;68.620,7;Personal goods;27.799,0;56.500;130;182;100,3;33,8;0,9;31-05-14
United Parcel Service;US;68.085,1;Industrial transportation;58.232,0;270.000;131;126;96,9;29,6;2,8;31-12-14
Valeant Pharmaceuticals International;Canada;67.339,0;Pharmaceuticals & biotechnology;7.878,5;16.800;132;226;197,6;75,7;;31-12-14
Costco Wholesale;US;66.653,9;General retailers;112.640,0;195.000;133;201;151,5;32,6;0,9;31-08-14
E I Du Pont de Nemours;US;64.709,9;Chemicals;34.906,0;63.000;134;145;71,5;18,2;2,6;31-12-14
Naspers;South Africa;64.697,6;Media;5.955,4;22.557;135;215;154,3;;0,3;31-03-14
Lockheed Martin;US;64.192,5;Aerospace & defence;45.600,0;112.000;136;183;203,0;18,1;2,7;31-12-14
Saudi Basic Industries;Saudi Arabia;63.940,8;Chemicals;50.138,4;40.000;137;78;21,3;10,3;6,9;31-12-14
BBVA;Spain;63.794,0;Banks;N/R;109.239;138;121;10,1;19,1;4,4;31-12-14
Prudential;UK;63.738,0;Life insurance;N/R;23.047;139;175;24,8;18,3;2,3;31-12-14
Japan Tobacco;Japan;63.381,3;Tobacco;23.980,8;51.341;140;139;31,7;16,3;2,9;31-12-14
Express Scripts;US;63.237,3;Health care equipment & services;100.887,1;29.500;141;163;86,8;32,9;;31-12-14
CNOOC;Hong Kong;63.115,3;Oil & gas producers;44.517,4;21.046;142;129;1,4;6,4;5,0;31-12-14
China Merchants Bank;China;63.023,8;Banks;N/R;75.109;143;245;2,4;6,8;4,5;31-12-14
Ford Motor;US;63.010,7;Automobiles & parts;144.077,0;187.000;144;148;16,1;20,2;3,1;31-12-14
Eni;Italy;62.954,9;Oil & gas producers;132.825,9;84.405;145;84;17,3;40,3;7,9;31-12-14
Colgate-Palmolive;US;62.880,0;Personal goods;17.277,0;37.700;146;156;69,3;29,4;2,0;31-12-14
China Shenhua Energy;China;62.119,2;Mining;40.018,3;92.738;147;212;2,6;8,2;4,7;31-12-14
Reckitt Benckiser;UK;61.656,4;Household goods & home construction;13.763,2;37.200;148;160;86,1;12,4;2,5;31-12-14
Axa;France;61.520,4;Nonlife insurance;N/R;96.279;149;140;25,2;10,7;4,6;31-12-14
Simon Property Group;US;61.493,9;Real estate investment trusts;N/R;5.250;150;187;195,6;43,3;2,6;31-12-14
KDDI;Japan;61.042,8;Mobile telecommunications;41.992,9;27.073;151;184;22,7;17,6;0,6;31-03-14
Bank of Nova Scotia;Canada;60.687,1;Banks;N/R;86.932;152;123;50,2;9,9;4,5;31-10-14
Blackrock;US;60.511,8;Financial services;N/R;12.200;153;180;365,8;19,0;2,1;31-12-14
Priceline.com;US;60.465,0;Travel & leisure;8.442,0;12.700;154;142;1.164,2;25,5;;31-12-14
General Motors;US;60.388,7;Automobiles & parts;155.929,0;216.000;155;173;37,5;22,7;3,2;31-12-14
Teva Pharmaceutical;Israel;60.038,5;Pharmaceuticals & biotechnology;18.664,0;43.009;156;202;62,8;19,0;2,0;31-12-14
Danaher;US;60.034,1;General industrials;19.913,8;71.000;157;181;84,9;23,4;0,5;31-12-14
Texas Instruments;US;59.880,8;Technology hardware & equipment;13.045,0;31.003;158;191;57,2;22,3;2,2;31-12-14
Barclays;UK;59.431,5;Banks;N/R;132.300;159;135;3,6;;2,8;31-12-14
Hennes & Mauritz;Sweden;59.195,3;General retailers;20.297,7;93.351;160;141;40,5;25,0;3,2;30-11-14
Mondelez International;US;59.181,0;Food producers;34.244,0;104.000;161;159;36,1;28,2;1,6;31-12-14
Hutchison Whampoa;Hong Kong;59.168,8;General industrials;35.100,6;280.000;162;167;13,9;6,8;2,2;31-12-14
Honda Motor;Japan;58.953,6;Automobiles & parts;114.753,4;198.561;163;134;32,6;10,5;2,5;31-03-14
Telstra;Australia;58.935,2;Fixed line telecommunications;23.886,9;31.931;164;161;4,8;15,1;5,8;30-06-14
Accenture;US;58.673,8;Support services;31.874,7;305.000;165;193;93,7;20,7;2,0;31-08-14
Itau Unibanco;Brazil;58.391,1;Banks;N/R;93.175;166;112;11,1;7,5;3,2;31-12-14
Intesa Sanpaolo;Italy;56.781,5;Banks;N/R;89.486;167;171;3,4;37,8;2,4;31-12-14
Hewlett-Packard;US;56.635,1;Technology hardware & equipment;111.454,0;302.000;168;147;31,2;11,9;2,0;31-10-14
Metlife;US;56.577,5;Life insurance;N/R;68.000;169;155;50,6;9,3;2,6;31-12-14
Gazprom;Russia;56.569,8;Oil & gas producers;95.924,6;450.000;170;83;2,4;19,9;;31-12-14
ING;Netherlands;56.545,6;Banks;N/R;68.431;171;174;14,7;22,5;1,0;31-12-14
Statoil;Norway;56.499,9;Oil & gas producers;81.189,8;22.516;172;86;17,7;19,3;5,4;31-12-14
Citic Securities;China;56.453,9;Financial services;N/R;13.209;173;;3,7;24,7;1,3;31-12-14
Industrial Bank;China;56.423,2;Banks;N/R;50.214;174;366;3,0;7,4;3,0;31-12-14
Occidental Petroleum;US;56.251,3;Oil & gas producers;19.442,0;11.700;175;108;73,0;;3,9;31-12-14
Glencore;UK;55.505,2;Mining;209.216,7;181.349;176;128;4,2;24,9;3,8;31-12-14
Dow Chemical;US;55.274,0;Chemicals;58.167,0;53.000;177;158;48,0;16,7;3,2;31-12-14
BT Group;UK;54.437,1;Fixed line telecommunications;30.478,4;87.800;178;197;6,5;15,1;2,8;31-03-14
Monsanto;US;54.389,0;Food producers;15.848,0;22.400;179;154;112,5;21,6;1,6;31-08-14
Duke Energy;US;54.361,5;Gas, water & multiutilities;23.925,0;28.344;180;195;76,8;28,9;4,1;31-12-14
Sumitomo Mitsui Financial;Japan;54.257,0;Banks;N/R;66.475;181;149;38,4;6,5;3,0;31-03-14
Canadian National Railway;Canada;54.048,2;Industrial transportation;10.442,4;25.530;182;211;67,0;20,1;1,3;31-12-14
Thermo Fisher Scientific;US;53.303,8;Health care equipment & services;16.889,6;51.000;183;207;134,3;28,5;0,4;31-12-14
McKesson;US;52.669,4;Food & drug retailers;137.609,0;42.800;184;246;226,2;41,7;0,4;31-03-14
Target;US;52.667,5;General retailers;72.618,0;347.000;185;268;82,1;;2,4;31-01-15
Fanuc;Japan;52.425,2;Industrial engineering;4.370,0;5.469;186;236;218,9;39,8;0,8;31-03-14
Kraft Foods Group;US;51.234,7;Food producers;18.205,0;22.100;187;315;87,1;50,1;2,5;27-12-14
China Minsheng Banking;China;51.057,2;Banks;N/R;59.659;188;308;1,2;5,8;2,5;31-12-14
Airbus;France;50.953,8;Aerospace & defence;73.413,6;138.622;189;168;64,9;17,9;2,2;31-12-14
Singapore Telecom;Singapore;50.909,1;Mobile telecommunications;13.392,7;22.000;190;214;3,2;17,7;4,1;31-03-14
Zurich Financial Services;Switzerland;50.751,8;Nonlife insurance;N/R;54.551;191;218;339,0;13,9;5,0;31-12-14
EMC;US;50.527,6;Technology hardware & equipment;24.440,0;70.000;192;169;25,6;19,4;1,7;31-12-14
EOG Resources;US;50.288,8;Oil & gas producers;17.527,8;3.000;193;176;91,7;17,2;0,8;31-12-14
Nordea Bank;Sweden;49.449,9;Banks;N/R;29.400;194;164;12,2;12,7;6,1;31-12-14
ABB;Switzerland;49.165,7;Industrial engineering;37.152,4;140.400;195;153;21,2;20,2;2,6;31-12-14
China Citic Bank;China;49.087,0;Banks;N/R;50.735;196;330;0,8;5,4;;31-12-14
PNC Financial Services;US;48.549,1;Banks;N/R;53.587;197;213;93,2;12,8;2,0;31-12-14
Caterpillar;US;48.511,5;Industrial engineering;55.184,0;114.233;198;137;80,0;13,6;3,4;31-12-14
TJX Cos;US;48.257,4;General retailers;29.078,4;198.000;199;232;70,1;21,8;1,0;31-01-15
Henkel;Germany;48.145,6;Chemicals;19.864,6;49.750;200;220;104,4;23,0;1,5;31-12-14
GDF Suez;France;48.136,4;Gas, water & multiutilities;90.309,6;147.400;201;130;19,8;15,8;6,1;31-12-14
National Grid;UK;47.992,0;Gas, water & multiutilities;24.681,7;23.909;202;190;12,8;11,6;5,5;31-03-14
Deutsche Bank;Germany;47.978,8;Banks;N/R;98.138;203;217;34,8;21,5;2,6;31-12-14
China Pacific Insurance;China;47.585,1;Life insurance;N/R;90.000;204;427;4,8;23,8;1,7;31-12-14
Shanghai Pudong Development Bank;China;47.509,2;Banks;N/R;43.654;205;367;2,6;6,2;4,7;31-12-14
CK Hutchison;Hong Kong;47.440,3;Real estate investment & services;N/R;8.100;206;266;20,5;7,1;2,3;31-12-14
Canon;Japan;47.244,7;Technology hardware & equipment;31.122,6;191.889;207;243;35,4;18,5;3,5;31-12-14
Continental;Germany;47.106,4;Automobiles & parts;41.724,0;189.168;208;204;235,5;16,4;1,7;31-12-14
Shire;UK;47.009,3;Pharmaceuticals & biotechnology;5.699,1;5.016;209;375;79,6;14,5;0,3;31-12-14
Fedex;US;46.947,5;Industrial transportation;45.567,0;162.000;210;256;165,5;24,5;0,4;31-05-14
Nextera Energy;US;46.211,0;Electricity;17.021,0;13.400;211;240;104,1;18,6;2,8;31-12-14
Nissan Motor;Japan;46.140,1;Automobiles & parts;101.575,6;142.925;212;247;10,2;11,3;2,8;31-03-14
Rosneft;Russia;45.973,8;Oil & gas producers;92.628,5;248.900;213;122;4,3;7,9;3,2;31-12-14
Schneider Electric;France;45.418,5;Electronic & electrical equipment;30.156,0;185.965;214;189;77,7;19,0;3,0;31-12-14
AMX;Mexico;45.373,1;Mobile telecommunications;57.512,2;189.935;215;216;1,0;20,6;1,9;31-12-14
A P Moller - Maersk;Denmark;45.292,4;Industrial transportation;43.627,0;89.207;216;185;2.090,3;9,9;15,3;31-12-14
Regeneron Pharmaceuticals;US;45.008,9;Pharmaceuticals & biotechnology;2.819,6;2.925;217;364;451,5;;;31-12-14
Bank of New York Mellon;US;44.853,0;Financial services;N/R;50.300;218;250;40,2;18,7;1,6;31-12-14
General Dynamics;US;44.815,8;Aerospace & defence;30.852,0;99.500;219;272;135,7;18,3;1,8;31-12-14
EDF;France;44.625,9;Electricity;88.118,5;148.024;220;111;24,0;10,0;6,3;31-12-14
ASML Holding;Netherlands;44.616,4;Technology hardware & equipment;7.081,4;14.072;221;242;101,8;30,8;0,8;31-12-14
Air Liquide;France;44.391,6;Chemicals;18.571,1;50.300;222;235;128,7;21,9;2,4;31-12-14
Sun Hung Kai Properties;Hong Kong;44.303,3;Real estate investment & services;N/R;37.000;223;320;15,4;9,6;2,8;30-06-14
Saic Motor;China;44.211,8;Automobiles & parts;101.101,7;151.820;224;456;4,0;9,8;5,2;31-12-14
Liberty Global;US;44.101,9;Media;18.248,3;38.000;225;259;51,5;;;31-12-14
Las Vegas Sands;US;43.950,0;Travel & leisure;14.583,9;48.500;226;133;55,0;15,6;3,6;31-12-14
Heineken;Netherlands;43.939,5;Beverages;23.285,4;76.136;227;249;76,3;23,9;1,7;31-12-14
Walmex;Mexico;43.787,7;General retailers;29.899,0;229.946;228;238;2,5;25,0;3,6;31-12-14
Jardine Matheson;Hong Kong;43.661,8;General industrials;39.930,3;110.000;229;233;63,2;13,7;2,3;31-12-14
Salesforce.com;US;43.466,6;Software & computer services;5.373,6;16.000;230;295;66,8;;;31-01-15
Credit Suisse Group;Switzerland;43.320,3;Banks;N/R;45.800;231;186;27,0;25,0;2,6;31-12-14
Capital One Financial;US;43.308,3;Financial services;N/R;46.000;232;225;78,8;10,4;1,5;31-12-14
Danone;France;43.296,0;Food producers;25.567,1;99.927;233;223;67,3;29,5;2,7;31-12-14
Bradesco;Brazil;43.225,9;Banks;N/R;95.520;234;151;9,3;6,1;5,8;31-12-14
Mizuho Financial Group;Japan;43.161,3;Banks;N/R;54.911;235;205;1,8;6,5;3,4;31-03-14
Hon Hai Precision Industry;Taiwan;43.045,7;Electronic & electrical equipment;133.178,4;1.290.000;236;276;2,9;10,5;;31-12-14
DirecTV;US;42.788,4;Media;33.260,0;32.150;237;262;85,1;15,8;;31-12-14
Reliance Industries;India;42.707,3;Oil & gas producers;72.381,0;23.853;238;194;13,2;10,3;1,2;31-03-14
Anadarko Petroleum;US;42.686,7;Oil & gas producers;16.375,0;6.100;239;230;82,8;;1,2;31-12-14
Citic;Hong Kong;42.656,3;General industrials;51.858,0;125.273;240;;1,7;8,2;1,8;31-12-14
Phillips 66;US;42.626,9;Oil & gas producers;161.212,0;14.000;241;228;78,6;9,4;2,4;31-12-14
Orange;France;42.572,4;Fixed line telecommunications;47.696,5;156.000;242;257;16,1;37,4;4,5;31-12-14
Enel;Italy;42.536,3;Electricity;88.667,5;68.961;243;178;4,5;64,6;3,8;31-12-14
Suncor Energy;Canada;42.231,9;Oil & gas producers;34.304,8;13.980;244;188;29,2;18,4;3,0;31-12-14
Time Warner Cable;US;42.101,3;Media;22.812,0;55.170;245;269;149,9;21,1;2,0;31-12-14
Imperial Tobacco;UK;42.098,3;Tobacco;22.199,4;33.900;246;263;44,0;18,3;4,7;30-09-14
Richemont;Switzerland;42.081,6;Personal goods;14.761,6;29.101;247;198;80,6;15,7;2,0;31-03-14
BG Group;UK;42.019,4;Oil & gas producers;18.254,5;5.143;248;136;12,3;;2,3;31-12-14
Oil & Natural Gas;India;41.881,2;Oil & gas producers;29.067,9;33.988;249;219;4,9;9,4;3,3;31-03-14
LyondellBasell Industries;US;41.880,4;Chemicals;41.766,3;13.100;250;203;87,8;11,9;3,0;31-12-14
ITC;India;41.735,5;Tobacco;5.883,8;25.917;251;208;5,2;27,4;1,9;31-03-14
Dominion Resources;US;41.698,2;Electricity;12.436,0;14.400;252;244;70,9;31,6;3,4;31-12-14
Yahoo;US;41.596,5;Software & computer services;4.618,1;12.500;253;282;44,4;6,0;;31-12-14
Shenwan Hongyuan;China;41.361,9;Financial services;N/R;;254;;2,8;;;31-12-14
Ericsson;Sweden;41.336,0;Technology hardware & equipment;29.238,8;118.055;255;227;12,6;27,3;3,4;31-12-14
China Communications Construction;China;41.271,6;Construction & materials;58.980,4;103.357;256;;1,4;10,1;2,1;31-12-14
Wellpoint;US;41.194,6;Health care equipment & services;73.923,1;51.500;257;387;154,4;17,2;1,1;31-12-14
Iberdrola;Spain;41.179,6;Electricity;36.314,8;28.212;258;224;6,4;14,6;5,1;31-12-14
Fast Retailing;Japan;41.124,8;General retailers;13.290,0;30.448;259;264;387,7;55,1;0,7;31-08-14
Enbridge;Canada;41.075,4;Oil equipment & services;32.393,5;8.882;260;270;48,2;39,2;2,5;31-12-14
HDFC Bank;India;40.961,0;Banks;N/R;68.165;261;355;16,3;26,8;0,7;31-03-14
Infosys Technologies;India;40.710,5;Software & computer services;8.352,2;160.405;262;338;35,5;22,7;0,7;31-03-14
Automatic Data Processing;US;40.692,0;Support services;12.206,5;61.000;263;274;85,6;27,3;2,2;30-06-14
Denso;Japan;40.419,8;Automobiles & parts;39.689,5;139.842;264;234;45,7;13,1;2,2;31-03-14
Southern;US;40.289,4;Electricity;18.467,0;26.369;265;261;44,3;20,3;4,7;31-12-14
Standard Chartered;UK;40.139,6;Banks;N/R;90.940;266;192;16,2;16,7;5,2;31-12-14
Charles Schwab;US;39.967,8;Financial services;N/R;14.600;267;289;30,4;31,7;0,8;31-12-14
Unicredit;Italy;39.859,9;Banks;N/R;129.021;268;179;6,8;16,2;2,2;31-12-14
Hyundai Motor;South Korea;39.832,1;Automobiles & parts;81.580,3;65.340;269;150;151,9;6,2;1,8;31-12-14
American Tower;US;39.783,9;Real estate investment trusts;N/R;2.974;270;329;94,2;47,1;1,5;31-12-14
Lukoil;Russia;39.581,6;Oil & gas producers;81.537,4;;271;206;46,5;11,5;5,5;31-12-14
Takeda Pharmaceutical;Japan;39.511,9;Pharmaceuticals & biotechnology;16.392,6;31.225;272;271;50,0;38,2;3,5;31-03-14
Petrobras;Brazil;39.362,6;Oil & gas producers;143.351,0;86.111;273;90;3,0;;;31-12-14
Jardine Strategic;Hong Kong;39.220,3;General industrials;32.243,5;;274;248;35,0;11,6;0,8;31-12-14
China Railway Group;China;39.130,2;Construction & materials;95.093,5;293.592;275;;1,0;12,8;1,0;31-12-14
Kimberly-Clark;US;39.116,6;Personal goods;19.724,0;43.000;276;239;107,1;26,5;3,1;31-12-14
Societe Generale;France;38.888,3;Banks;N/R;148.322;277;200;48,3;13,7;3,0;31-12-14
Emerson Electric;US;38.796,1;Electronic & electrical equipment;24.537,0;115.100;278;209;56,6;18,7;3,0;30-09-14
Bank of Montreal;Canada;38.775,5;Banks;N/R;47.000;279;231;59,9;10,5;4,6;31-10-14
Atlas Copco;Sweden;38.718,3;Industrial engineering;12.019,7;44.056;280;294;29,6;23,1;2,6;31-12-14
Cognizant Technology Solutions;US;38.034,0;Software & computer services;10.262,7;211.500;281;348;62,4;26,5;;31-12-14
Deutsche Post;Germany;37.852,2;Industrial transportation;68.476,4;488.824;282;221;31,3;15,1;3,3;31-12-14
Credit Agricole;France;37.837,6;Banks;N/R;72.567;283;254;14,7;14,5;2,9;31-12-14
Williams Cos.;US;37.836,1;Oil equipment & services;7.637,0;6.742;284;395;50,6;17,3;3,9;31-12-14
Linde;Germany;37.787,2;Chemicals;20.613,1;65.591;285;275;203,4;28,3;1,9;31-12-14
Wesfarmers;Australia;37.740,1;General retailers;56.774,8;203.000;286;229;33,6;14,9;5,5;30-06-14
Boc Hong Kong;Hong Kong;37.706,1;Banks;N/R;14.926;287;352;3,6;11,9;3,9;31-12-14
Kroger;US;37.664,9;Food & drug retailers;108.465,0;400.000;288;498;76,7;22,0;0,9;31-01-15
Hanergy Thin Film Power Group;Hong Kong;37.504,2;Alternative energy;1.240,1;2.033;289;;0,9;;;31-12-14
Carnival;US/UK;37.364,6;Travel & leisure;15.884,0;94.100;290;363;47,8;30,1;2,1;30-11-14
Central Japan Railway;Japan;37.352,3;Travel & leisure;16.013,2;28.619;291;462;181,3;14,4;0,6;31-03-14
Seven & I Holding;Japan;37.349,9;General retailers;55.304,5;55.364;292;303;42,1;21,6;1,6;28-02-14
Halliburton;US;37.283,6;Oil equipment & services;32.870,0;80.000;293;196;43,9;10,7;1,4;31-12-14
Munich Re;Germany;37.258,2;Nonlife insurance;N/R;43.316;294;255;215,4;9,7;4,4;31-12-14
Hermes International;France;37.233,2;Personal goods;4.980,2;11.718;295;;352,7;35,4;2,7;31-12-14
Baxter International;US;37.231,9;Health care equipment & services;16.671,0;66.000;296;252;68,5;15,0;3,0;31-12-14
Qatar National Bank;Qatar;37.184,6;Banks;N/R;;297;284;53,1;13,0;3,9;31-12-14
Aetna;US;37.147,0;Health care equipment & services;58.003,2;48.800;298;407;106,5;18,8;0,9;31-12-14
China State Construction Engineering;China;37.115,3;Construction & materials;129.852,0;238.079;299;;1,2;10,3;2,4;31-12-14
Astellas Pharma;Japan;37.074,9;Pharmaceuticals & biotechnology;11.045,7;17.649;300;408;16,4;42,1;1,6;31-03-14
Delta Air Lines;US;37.059,3;Travel & leisure;40.362,0;79.655;301;362;45,0;57,6;0,7;31-12-14
Adobe Systems;US;36.989,9;Software & computer services;4.147,1;12.499;302;324;73,9;;;28-11-14
DBS Group;Singapore;36.802,6;Banks;N/R;21.000;303;336;14,8;12,1;3,0;31-12-14
American Airlines;US;36.769,2;Travel & leisure;42.650,0;113.300;304;;52,8;13,4;0,4;31-12-14
Reed Elsevier;Netherlands/UK;36.747,9;Media;9.001,6;28.500;305;313;17,2;25,7;2,4;31-12-14
Reynolds American;US;36.661,0;Tobacco;8.471,0;5.400;306;380;68,9;25,1;3,9;31-12-14
Ace;US;36.495,4;Nonlife insurance;N/R;21.000;307;317;111,5;13,2;2,3;31-12-14
Prudential Financial;US;36.475,5;Life insurance;N/R;48.331;308;260;80,3;24,9;2,7;31-12-14
China Unicom;Hong Kong;36.447,0;Mobile telecommunications;46.146,0;228.270;309;339;1,5;19,0;2,0;31-12-14
Illinois Tool Works;US;36.264,6;Industrial engineering;14.484,0;49.000;310;302;97,1;13,3;1,9;31-12-14
Kweichow Moutai;China;36.096,9;Beverages;4.881,0;17.487;311;429;31,6;14,6;2,2;31-12-14
Swiss RE;Switzerland;35.915,4;Nonlife insurance;N/R;12.224;312;297;96,9;10,3;7,5;31-12-14
BCE;Canada;35.621,4;Fixed line telecommunications;18.108,5;57.234;313;312;42,3;16,5;5,0;31-12-14
Alexion Pharmaceuticals;US;35.032,3;Pharmaceuticals & biotechnology;2.233,7;2.273;314;354;173,3;53,2;;31-12-14
Stryker;US;34.960,6;Health care equipment & services;9.675,0;26.000;315;346;92,3;68,3;1,4;31-12-14
CSR;China;34.953,6;Industrial engineering;19.000,5;88.925;316;;1,3;22,0;;31-12-14
Praxair;US;34.847,0;Chemicals;12.273,0;27.780;317;265;120,7;21,1;2,2;31-12-14
Travelers Cos.;US;34.749,6;Nonlife insurance;N/R;30.200;318;357;108,1;10,1;2,0;31-12-14
Hang Seng Bank;Hong Kong;34.646,2;Banks;N/R;10.192;319;349;18,1;17,8;4,0;31-12-14
Christian Dior;France;34.300,7;Personal goods;42.443,7;117.806;320;293;188,7;17,3;2,2;30-06-14
Haitong Securities;China;34.191,0;Financial services;N/R;7.464;321;;2,4;18,7;1,6;31-12-14
China Everbright Bank;China;34.156,4;Banks;N/R;39.015;322;;0,6;5,5;5,4;31-12-14
Yum! Brands;US;34.116,8;Travel & leisure;13.279,0;537.000;323;318;78,7;33,9;2,0;27-12-14
Public Storage;US;34.058,1;Real estate investment trusts;N/R;5.300;324;369;197,1;37,6;2,8;31-12-14
Ecolab;US;34.010,9;Chemicals;14.280,5;47.000;325;327;114,4;29,1;1,0;31-12-14
Sun Pharmaceutical Industries;India;33.886,6;Pharmaceuticals & biotechnology;2.679,0;14.000;326;;16,4;65,4;0,2;31-03-14
China Railway Construction;China;33.870,3;Construction & materials;92.974,6;249.624;327;;1,5;10,0;1,3;31-12-14
Imperial Oil;Canada;33.829,8;Oil & gas producers;30.015,7;5.500;328;253;39,9;10,3;1,1;31-12-14
Vinci;France;33.764,0;Construction & materials;47.210,4;185.300;329;222;57,2;10,6;3,7;31-12-14
Brookfield Asset Management;Canada;33.761,2;Financial services;N/R;30.000;330;434;53,5;11,7;1,2;31-12-14
General Mills;US;33.738,7;Food producers;17.909,6;43.000;331;334;56,6;20,0;2,7;25-05-14
Norfolk Southern;US;33.618,3;Industrial transportation;11.624,0;29.482;332;353;102,9;16,1;2,2;31-12-14
Vivendi;France;33.604,3;Media;12.199,5;15.000;333;273;24,8;5,8;4,9;31-12-14
Raytheon;US;33.575,0;Aerospace & defence;22.826,0;61.000;334;342;109,3;15,2;2,2;31-12-14
Canadian Natural Resources;Canada;33.486,8;Oil & gas producers;16.233,3;7.657;335;237;30,7;9,9;2,5;31-12-14
Saudi Telecom;Saudi Arabia;33.467,3;Fixed line telecommunications;12.213,5;;336;292;16,7;11,5;5,6;31-12-14
Cigna;US;33.462,6;Health care equipment & services;34.950,0;37.200;337;487;129,4;16,5;0,0;31-12-14
Manulife Financial;Canada;33.457,5;Life insurance;N/R;;338;288;17,0;10,8;2,9;31-12-14
Sands China;Hong Kong;33.405,0;Travel & leisure;9.507,5;;339;152;4,1;12,9;6,3;31-12-14
Keyence;Japan;33.259,2;Electronic & electrical equipment;2.568,0;2.038;340;441;547,0;39,8;0,1;20-03-14
Hitachi;Japan;33.178,3;Electronic & electrical equipment;93.181,0;320.725;341;286;6,9;12,9;1,5;31-03-14
Johnson Controls;US;33.153,9;Automobiles & parts;42.828,0;168.000;342;337;50,4;28,0;1,7;30-09-14
China CNR;China;33.135,7;Industrial engineering;16.738,4;86.762;343;;1,4;18,0;;31-12-14
Associated British Foods;UK;33.118,2;Food producers;21.500,0;118.209;344;280;41,8;26,1;1,3;13-09-14
Housing Development Finance;India;33.106,2;Financial services;N/R;1.956;345;481;21,0;24,7;1,1;31-03-14
CSL;Australia;33.081,3;Pharmaceuticals & biotechnology;5.702,4;12.196;346;341;70,4;25,2;1,7;30-06-14
CSX;US;32.841,5;Industrial transportation;12.669,0;32.000;347;368;33,1;17,3;1,9;26-12-14
Mitsubishi;Japan;32.778,7;Support services;73.984,8;68.383;348;347;20,2;9,5;3,3;31-03-14
Valero Energy;US;32.702,5;Oil & gas producers;130.844,0;10.065;349;385;63,6;9,3;1,7;31-12-14
Bridgestone;Japan;32.652,9;Automobiles & parts;30.677,6;144.632;350;374;40,2;12,6;2,1;31-12-14
Avago Technologies;US;32.581,4;Technology hardware & equipment;4.196,7;8.400;351;;127,0;;1,0;11-02-14
National Commercial Bank;Saudi Arabia;32.550,2;Banks;N/R;;352;;16,3;13,8;1,0;31-12-14
Femsa;Mexico;32.532,9;Beverages;17.861,8;;353;335;9,4;;1,6;31-12-14
Twitter;US;32.443,7;Software & computer services;1.403,0;3.638;354;400;50,1;;;31-12-14
Air Products & Chemicals;US;32.415,4;Chemicals;10.439,0;21.200;355;439;151,3;32,8;2,0;30-09-14
Royal Bank of Scotland;UK;32.374,8;Banks;N/R;108.700;356;328;5,1;;;31-12-14
Mitsubishi Estate;Japan;32.312,2;Real estate investment & services;N/R;7.952;357;321;23,2;51,6;0,5;31-03-14
State Bank of India;India;32.286,9;Banks;N/R;222.033;358;466;4,3;12,6;0,2;31-03-14
Panasonic;Japan;32.257,4;Leisure goods;74.967,1;271.789;359;391;13,2;25,8;1,0;31-03-14
Thomson Reuters;Canada;32.123,2;Media;12.607,0;53.000;360;392;40,5;17,3;3,3;31-12-14
V F;US;32.043,5;Personal goods;12.282,2;59.000;361;405;75,3;31,6;1,5;01-03-15
CME Group;US;31.949,5;Financial services;N/R;2.680;362;444;94,7;28,3;2,0;31-12-14
Northrop Grumman;US;31.935,4;Aerospace & defence;23.979,0;64.300;363;415;161,0;16,5;1,7;31-12-14
Franklin Resources;US;31.912,2;Financial services;N/R;9.300;364;301;51,3;13,5;0,9;30-09-14
Eaton;US;31.763,0;General industrials;22.552,0;102.000;365;287;67,9;18,1;2,9;31-12-14
Syngenta;Switzerland;31.646,3;Chemicals;13.981,8;29.000;366;291;340,5;20,9;3,3;31-12-14
East Japan Railway;Japan;31.630,9;Travel & leisure;26.191,3;73.551;367;365;80,4;16,3;1,5;31-03-14
HCA Holdings;US;31.559,3;Health care equipment & services;36.918,0;225.000;368;477;75,2;18,1;;31-12-14
Pernod-Ricard;France;31.398,5;Beverages;10.883,5;18.308;369;344;118,3;22,4;1,9;30-06-14
MTN Group;South Africa;31.257,1;Mobile telecommunications;12.697,7;;370;267;16,9;11,2;6,4;31-12-14
Sony;Japan;31.109,9;Leisure goods;75.264,8;140.900;371;;26,6;;0,9;31-03-14
Murata Manufacturing;Japan;31.058,9;Electronic & electrical equipment;8.204,7;37.061;372;;137,9;32,2;0,9;31-03-14
Oversea-Chinese Banking;Singapore;30.768,4;Banks;N/R;29.512;373;424;7,7;10,0;3,5;31-12-14
PPG Industries;US;30.763,1;Chemicals;15.360,0;44.400;374;413;225,5;15,0;1,2;31-12-14
Generali;Italy;30.614,7;Nonlife insurance;N/R;78.333;375;296;19,7;15,1;3,7;31-12-14
Luxottica;Italy;30.581,4;Personal goods;9.253,1;77.734;376;396;63,5;38,9;2,7;31-12-14
Investor;Sweden;30.357,7;Financial services;N/R;15.560;377;399;39,9;4,7;2,9;31-12-14
Telenor;Norway;30.349,2;Mobile telecommunications;14.255,1;33.000;378;309;20,2;25,3;4,8;31-12-14
State Street;US;30.315,0;Financial services;N/R;29.970;379;356;73,5;16,1;1,6;31-12-14
Transcanada;Canada;30.304,4;Oil equipment & services;8.765,1;6.059;380;331;42,8;20,1;4,3;31-12-14
Marsh & Mclennan;US;30.199,3;Nonlife insurance;N/R;57.000;381;410;56,1;21,2;1,9;31-12-14
Hindustan Unilever;India;30.199,1;Personal goods;4.870,3;;382;;14,0;45,0;1,6;31-03-14
Fresenius;Germany;30.129,9;Health care equipment & services;28.090,7;216.275;383;489;59,4;24,9;0,9;31-12-14
Swisscom;Switzerland;30.107,2;Fixed line telecommunications;11.773,7;21.125;384;333;581,2;17,7;;31-12-14
Canadian Pacific Railway;Canada;30.095,0;Industrial transportation;5.697,1;14.698;385;418;183,1;24,8;0,7;31-12-14
Becton Dickinson;US;29.983,2;Health care equipment & services;8.446,0;30.619;386;490;143,6;24,0;1,5;30-09-14
Southwest Airlines;US;29.946,5;Travel & leisure;18.605,0;46.278;387;;44,3;27,0;0,5;31-12-14
SK Hynix;South Korea;29.889,1;Technology hardware & equipment;15.652,8;;388;464;41,1;7,7;0,7;31-12-14
China Merchants Securities;China;29.820,2;Financial services;N/R;5.505;389;;5,1;46,6;1,4;31-12-14
E On;Germany;29.817,3;Gas, water & multiutilities;134.892,4;58.503;390;258;14,9;;4,1;31-12-14
Archer Daniels Midland;US;29.811,6;Food producers;81.201,0;33.900;391;382;47,4;13,8;1,8;31-12-14
Cardinal Health;US;29.800,9;Food & drug retailers;91.084,0;34.000;392;465;90,3;26,7;1,4;30-06-14
WPP;UK;29.790,9;Media;17.957,8;179.000;393;398;22,7;15,7;2,6;31-12-14
Precision Castparts;US;29.771,2;Aerospace & defence;9.616,0;29.100;394;279;210,0;17,3;0,1;30-03-14
Deere;US;29.770,4;Industrial engineering;36.066,9;59.600;395;310;87,7;10,2;2,5;31-10-14
China Shipbuilding Industries;China;29.736,0;Industrial engineering;9.896,0;55.779;396;;1,6;;0,6;31-12-14
Allstate;US;29.637,1;Nonlife insurance;N/R;40.200;397;437;71,2;11,4;1,6;31-12-14
Guosen Securities;China;29.336,7;Financial services;N/R;7.174;398;;3,6;32,5;0,8;31-12-14
Hilton Worldwide;US;29.248,1;Travel & leisure;10.502,0;157.000;399;;29,6;43,6;;31-12-14
Micron Technology;US;29.227,5;Technology hardware & equipment;16.358,0;30.400;400;442;27,1;10,7;;28-08-14
ICICI Bank;India;29.225,2;Banks;N/R;;401;463;5,0;15,8;0,4;31-03-14
Mitsui Fudosan;Japan;29.178,5;Real estate investment & services;N/R;16.585;402;411;29,4;34,6;0,7;31-03-14
Tesco;UK;29.163,7;Food & drug retailers;106.460,5;510.444;403;251;3,6;18,0;7,0;22-02-14
Safran;France;29.111,8;Aerospace & defence;18.191,1;68.945;404;373;69,8;;2,1;31-12-14
TE Connectivity;US;29.093,5;Electronic & electrical equipment;13.912,0;83.000;405;448;71,6;16,8;1,5;26-09-14
Ping An Bank;China;29.024,8;Banks;N/R;35.069;406;;2,5;11,0;0,8;31-12-14
Mylan;US;28.985,9;Pharmaceuticals & biotechnology;7.719,6;25.000;407;;59,4;23,8;;31-12-14
China Yangtze Power;China;28.983,3;Electricity;4.264,0;8.087;408;;1,8;14,7;3,4;31-12-14
Compass Group;UK;28.945,6;Travel & leisure;27.646,8;514.718;409;406;17,4;22,0;2,5;30-09-14
Exelon;US;28.937,8;Electricity;27.429,0;28.993;410;377;33,6;17,9;3,7;31-12-14
Great West Lifeco;Canada;28.818,4;Life insurance;N/R;;411;397;28,9;13,1;3,7;31-12-14
CIBC;Canada;28.795,6;Banks;N/R;44.000;412;299;72,5;10,4;4,8;31-10-14
Corning;US;28.776,4;Technology hardware & equipment;9.715,0;34.600;413;371;22,7;13,1;1,8;31-12-14
Tokio Marine;Japan;28.668,1;Nonlife insurance;N/R;33.310;414;480;37,8;16,2;1,8;31-03-14
Hong Kong Exchanges & Clearing;Hong Kong;28.631,1;Financial services;N/R;1.420;415;;24,5;43,0;2,1;31-12-14
Vertex Pharmaceuticals;US;28.559,2;Pharmaceuticals & biotechnology;580,4;1.830;416;;118,0;;;31-12-14
Woolworths;Australia;28.458,1;Food & drug retailers;57.502,3;198.000;417;241;22,5;12,2;5,7;29-06-14
PTT;Thailand;28.352,3;Oil & gas producers;86.147,5;;418;419;9,9;16,8;3,3;31-12-14
Mcgraw Hill Financial;US;28.340,3;Financial services;N/R;17.000;419;;103,4;;1,2;31-12-14
Equity Residential Trust Properties;US;28.325,3;Real estate investment trusts;N/R;3.500;420;;77,9;46,9;2,6;31-12-14
Mmc Norilsk Nickel;Russia;28.310,2;Industrial metals & mining;7.708,9;81.855;421;417;178,9;18,2;13,3;31-12-14
Shin-Etsu Chemical;Japan;28.284,6;Chemicals;11.296,8;17.892;422;446;65,5;25,3;1,5;31-03-14
Sampo;Finland;28.218,1;Nonlife insurance;N/R;6.739;423;370;50,5;15,2;4,7;31-12-14
Svenska Handelsbanken;Sweden;28.164,8;Banks;N/R;11.692;424;340;45,1;14,8;5,0;31-12-14
BB&T;US;28.106,1;Banks;N/R;33.400;425;381;39,0;14,2;2,4;31-12-14
Nokia;Finland;28.086,1;Technology hardware & equipment;15.395,4;61.656;426;393;7,6;20,1;2,2;31-12-14
Aflac;US;28.062,4;Life insurance;N/R;9.235;427;379;64,0;9,8;2,3;31-12-14
Marathon Petroleum;US;27.951,0;Oil & gas producers;97.928,0;45.340;428;435;102,4;11,7;1,8;31-12-14
Vale;Brazil;27.857,6;Mining;33.210,7;;429;118;5,6;;12,7;31-12-14
CBS;US;27.856,2;Media;13.806,0;17.310;430;300;60,6;11,5;0,9;31-12-14
MTR;Hong Kong;27.762,1;Travel & leisure;5.178,9;24.154;431;;4,8;13,6;2,9;31-12-14
Viacom;US;27.734,8;Media;13.783,0;9.900;432;124;68,3;12,6;1,8;30-09-14
Applied Materials;US;27.719,4;Technology hardware & equipment;9.072,0;14.000;433;447;22,6;25,9;1,8;26-10-14
Bank Central Asia;Indonesia;27.675,4;Banks;N/R;23.106;434;485;1,1;22,6;0,9;31-12-14
Baker Hughes;US;27.629,6;Oil equipment & services;24.551,0;62.000;435;383;63,6;16,2;1,0;31-12-14
Oriental Land;Japan;27.581,9;Travel & leisure;4.588,9;4.348;436;;75,8;37,0;0,1;31-03-14
L Brands;US;27.569,8;General retailers;11.454,1;80.100;437;;94,3;26,9;1,4;31-01-15
Crown Castle International;US;27.557,4;Real estate investment trusts;N/R;2.200;438;450;82,5;79,4;2,3;31-12-14
American Electric Power;US;27.541,2;Electricity;17.020,0;18.529;439;449;56,3;16,8;3,6;31-12-14
TeliaSonera;Sweden;27.514,7;Mobile telecommunications;12.960,9;26.166;440;326;6,4;14,8;6,0;31-12-14
Surgutneftegas;Russia;27.469,4;Oil & gas producers;15.344,6;118.000;441;332;0,6;1,6;;31-12-14
CaixaBank;Spain;27.350,6;Banks;N/R;31.210;442;325;4,7;36,5;4,6;31-12-14
Linkedin;US;27.299,2;Support services;2.218,8;6.897;443;;249,9;;;31-12-14
Huatai Securities;China;27.197,9;Financial services;N/R;6.421;444;;4,9;37,4;1,6;31-12-14
Health Care Reit;US;27.084,0;Real estate investment trusts;N/R;438;445;;77,4;54,1;4,1;31-12-14
United Overseas Bank;Singapore;27.071,8;Banks;N/R;25.009;446;402;16,8;11,3;3,2;31-12-14
Swedbank;Sweden;27.052,9;Banks;N/R;14.583;447;351;23,9;12,5;6,1;31-12-14
Sherwin-Williams;US;27.047,0;Construction & materials;11.129,5;39.674;448;;284,5;32,4;0,8;31-12-14
Emirates Telecom.;UAE;27.014,7;Mobile telecommunications;13.277,3;;449;428;3,4;12,2;4,7;31-12-14
Cielo;Brazil;26.971,1;Financial services;N/R;;450;440;14,3;19,3;1,2;31-12-14
Sempra Energy;US;26.964,9;Gas, water & multiutilities;11.018,0;17.046;451;472;109,0;23,5;2,4;31-12-14
Aon;US;26.937,7;Nonlife insurance;N/R;69.000;452;436;96,1;20,6;1,0;31-12-14
Renault;France;26.922,5;Automobiles & parts;49.643,3;117.395;453;378;91,0;10,9;2,5;31-12-14
Altice;Netherlands;26.855,2;Fixed line telecommunications;4.757,6;9.363;454;;108,3;;;31-12-14
Intuit;US;26.831,3;Software & computer services;4.506,0;8.000;455;500;97,0;31,1;0,8;31-07-14
Potash Corporation of Saskatchewan;Canada;26.813,3;Chemicals;6.783,5;5.136;456;345;32,2;18,4;4,2;31-12-14
Illumina;US;26.695,0;Pharmaceuticals & biotechnology;1.861,4;3.700;457;;185,6;78,3;;28-12-14
GF Securities;China;26.638,5;Financial services;N/R;9.276;458;;4,5;32,1;0,7;31-12-14
Humana;US;26.636,8;Health care equipment & services;48.500,0;57.000;459;;178,0;24,2;0,6;31-12-14
Korea Electric Power;South Korea;26.617,1;Electricity;52.532,0;20.223;460;;41,5;10,6;1,1;31-12-14
Tata Motors;India;26.614,0;Industrial engineering;38.790,1;66.593;461;;8,8;12,2;0,3;31-03-14
Danske Bank;Denmark;26.607,4;Banks;N/R;18.478;462;388;26,4;45,5;3,4;31-12-14
Astra International;Indonesia;26.550,4;Automobiles & parts;16.277,3;156.097;463;421;0,7;16,5;3,0;31-12-14
Numericable SFR;France;26.534,7;Media;2.623,9;11.800;464;;54,5;;;31-12-14
Philips Electronics;Netherlands;26.529,6;General industrials;25.865,8;105.365;465;322;28,4;51,6;3,4;31-12-14
Daqin Railway;China;26.450,2;Industrial transportation;8.759,9;102.503;466;;1,8;11,9;4,5;31-12-14
Unibail-Rodamco;France;26.442,8;Real estate investment trusts;N/R;2.089;467;438;269,6;13,0;4,3;31-12-14
China Overseas Land & Investments;Hong Kong;26.410,0;Real estate investment & services;N/R;25.705;468;;3,2;7,3;2,2;31-12-14
DNB;Norway;26.213,2;Banks;N/R;12.064;469;384;16,1;9,5;3,2;31-12-14
General Growth Properties;US;26.164,7;Real estate investment trusts;N/R;1.800;470;;29,6;42,8;2,1;31-12-14
Rolls-Royce;UK;26.145,4;Aerospace & defence;21.395,6;54.100;471;307;14,2;;;31-12-14
Intercontinental Exchange;US;26.128,3;Financial services;N/R;2.902;472;486;233,3;27,3;1,1;31-12-14
Fuji Heavy Industries;Japan;26.053,1;Automobiles & parts;23.334,8;28.545;473;;33,3;12,9;1,4;31-03-14
Broadcom;US;25.931,0;Technology hardware & equipment;8.428,0;10.650;474;;43,3;40,1;1,1;31-12-14
Firstrand;South Africa;25.852,3;Banks;N/R;38.542;475;;4,6;14,4;3,5;30-06-14
United Continental;US;25.839,2;Travel & leisure;38.901,0;84.000;476;;67,3;23,0;;31-12-14
KBC Group;Belgium;25.826,0;Banks;N/R;36.258;477;431;61,8;15,4;3,9;31-12-14
Fresenius Medical Care;Germany;25.800,0;Health care equipment & services;14.498,1;99.895;478;;82,9;26,2;1,1;31-12-14
Volvo;Sweden;25.764,8;Industrial engineering;36.288,1;92.822;479;304;12,1;;3,1;31-12-14
T-Mobile US;US;25.598,5;Mobile telecommunications;29.564,0;45.000;480;416;31,7;;;31-12-14
Repsol;Spain;25.592,9;Oil & gas producers;57.104,0;24.289;481;305;18,6;13,1;6,1;31-12-14
Mitsubishi Electric;Japan;25.576,6;Industrial engineering;39.286,7;124.305;482;461;11,9;17,3;1,4;31-03-14
Larsen & Toubro;India;25.543,1;Construction & materials;14.182,4;54.579;483;;27,5;30,9;0,9;31-03-14
SEB;Sweden;25.388,8;Banks;N/R;15.714;484;360;11,7;10,4;5,2;31-12-14
PG&E;US;25.370,9;Electricity;17.090,0;22.581;485;;53,1;17,3;3,4;31-12-14
Sky;UK;25.340,2;Media;13.046,1;497;486;468;14,7;15,5;3,7;30-06-14
Synchrony Financial;US;25.304,8;Financial services;N/R;11.000;487;;30,4;10,9;;31-12-14
NXP Semiconductors;US;25.265,7;Technology hardware & equipment;5.171,3;27.884;488;;100,4;48,3;;31-12-14
Kao;Japan;25.215,8;Personal goods;11.704,3;32.707;489;;50,0;38,5;1,2;31-12-14
Netflix;US;25.208,9;General retailers;5.504,7;2.450;490;;416,7;;;31-12-14
Discover Financial Services;US;25.139,7;Financial services;N/R;14.676;491;403;56,4;11,5;1,6;31-12-14
Cummins;US;25.136,3;Industrial engineering;19.221,0;54.600;492;401;138,6;15,4;2,0;31-12-14
Bharti Airtel;India;25.122,2;Mobile telecommunications;14.304,9;24.893;493;;6,3;52,3;1,0;31-03-14
Cerner;US;25.098,0;Software & computer services;3.402,7;15.800;494;;73,3;48,8;;01-03-15
Amerisourcebergen;US;24.962,5;Food & drug retailers;119.569,1;13.000;495;;113,7;;0,8;30-09-14
Al Rajhi Bank;Saudi Arabia;24.896,2;Banks;N/R;12.542;496;358;15,3;13,7;3,1;31-12-14
Waste Management;US;24.815,1;Support services;13.996,0;39.800;497;;54,2;;2,8;31-12-14
Bank Rakyat Indonesia;Indonesia;24.796,0;Banks;N/R;48.814;498;;1,0;12,8;2,0;31-12-14
China Vanke;China;24.794,0;Real estate investment & services;N/R;40.467;499;;2,2;9,7;3,6;31-12-14
Devon Energy;US;24.793,4;Oil & gas producers;17.555,0;6.600;500;404;60,3;15,4;1,6;31-12-14

37
TP7/getio.cpp Normal file
View File

@@ -0,0 +1,37 @@
#include "getio.h"
#include <string>
#include <vector>
using namespace std;
void getfloat(ifstream& s, float& f, const char sep) {
string tmp;
getline(s, tmp, sep);
if (tmp == "N/R" || tmp.empty())
return;
tmp.erase(remove(tmp.begin(), tmp.end(), '.'), tmp.end());
auto it = tmp.begin();
while (it != tmp.end() && *it != ',')
it++;
if (it != tmp.end()) {
*it = '.';
}
f = stof(tmp);
}
void getint(ifstream& s, int& f, const char sep) {
string tmp;
getline(s, tmp, sep);
if (tmp == "N/R" || tmp.empty())
return;
f = stoi(tmp);
}

9
TP7/getio.h Normal file
View File

@@ -0,0 +1,9 @@
#pragma once
#include <fstream>
using namespace std;
void getfloat(ifstream& s, float& f, const char sep);
void getint(ifstream& s, int& f, const char sep);

195
TP7/main.cpp Normal file
View File

@@ -0,0 +1,195 @@
#include <iostream>
#include <string>
#include <map>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include "Entreprise.h"
#include "Pays.h"
using namespace std;
template <class M>
void lire(M& map, const string filename) {
using V = typename M::mapped_type;
using K = typename M::key_type;
ifstream f(filename);
if (!f.is_open()) {
cout << "Erreur lors de la lecture du fichier " << filename << endl;
return;
}
f.ignore(200, '\n');
while (!f.eof()) {
V a;
a.saisie(f);
// a.affichage();
// map[a.key()] = a;
map.insert(make_pair(a.key(), a));
f.ignore(2000, '\n');
}
}
template <class M>
void affichage_el(M el) {
el.affichage();
}
void affichage_el(float el) {
cout << el;
}
template <class Start, class Stop>
void affichage_range(Start start, Stop stop) {
cout << left << setw(30) << "Key" << "Value\n";
for (; start != stop; start++) {
cout << left << setw(30) << start->first;
affichage_el(start->second);
cout << '\n';
}
cout << endl;
}
template <class M>
void affichage(M& map) {
affichage_range(map.begin(), map.end());
}
void chercher(const map<string, Entreprise>& entreprises) {
string r;
cout << "Entrez le nom de l'entreprise à rechercher : ";
getline(cin, r);
auto it = entreprises.find(r);
if (it == entreprises.end()) {
cout << "L'entreprise n'a pas été trouvée" << endl;
}
else {
cout << "Entreprise trouvée!" << endl;
Entreprise e = it->second;
e.affichage();
}
}
bool cmp_progression_classement(const pair<string, Entreprise>& e1, const pair<string, Entreprise>& e2) {
return e1.second.rank_progress() < e2.second.rank_progress();
}
void ranking_progress(const map<string, Entreprise>& entreprise) {
auto it_max = max_element(entreprise.begin(), entreprise.end(), cmp_progression_classement);
auto it_min = min_element(entreprise.begin(), entreprise.end(), cmp_progression_classement);
cout << "L'entreprise avec la plus grosse chute est " << it_min->first << " (" << it_min->second.rank_progress() << ")" << endl;
cout << "L'entreprise avec la plus grosse progression est " << it_max->first << " (+" << it_max->second.rank_progress() << ")" << endl;
}
bool cmp_ranking(const pair<string, float> &p1, const pair<string, float>& p2) {
return p1.second > p2.second;
}
bool cmp_turnover(const pair<string, Entreprise>& e1, const pair<string, Entreprise>& e2) {
return e1.second.getTurnover() < e2.second.getTurnover();
}
void entreprises_ranking(const map<string, Entreprise>& entreprises) {
vector<pair<string, float>> ranking;
for (auto& e : entreprises) {
float turnover = e.second.turnover_empl();
ranking.push_back(make_pair(e.first, turnover));
}
sort(ranking.begin(), ranking.end(), cmp_ranking);
affichage(ranking);
auto e_max = max_element(entreprises.begin(), entreprises.end(), cmp_turnover);
cout << "Le turnover maximum est : " << e_max->second.getTurnover() << " pour l'entreprise " << e_max->first << endl;
}
void pays_region( const multimap<string, Pays>& pays) {
string recherche;
cout << "Entrez le nom de la région cherchée: ";
getline(cin, recherche);
auto range = pays.equal_range(recherche);
if (range.first == pays.end()) {
cout << "La région n'a pas été trouvée" << endl;
return;
}
//for (auto it = range.first; it != range.second; it++) {
affichage_range(range.first, range.second);
//}
}
int menu() {
int choix;
cout << "1. Lire le fichier Entreprises et affichage" << endl
<< "2. Lire le fichier Pays et affichage" << endl
<< "3. Chercher une entreprise par son nom et affichage" << endl
<< "4. Cherchez les entreprises ayant réalisé la plus grosse progression / chute et affichage" << endl
<< "5. Calculez le Turnover / Employee, le chiffre daffaire moyen généré par employé, de toutes les entreprises, et trouver le max" << endl
<< "6. Pour une région donnée, affichez tous les pays dans cette région" << endl
<< "7. Quitter" << endl;
cout << "Votre choix : ";
cin >> choix; cin.ignore();
return choix;
}
int main() {
map<string, Entreprise> entreprises;
multimap<string, Pays> pays;
setlocale(LC_ALL, "");
while (true) {
switch (menu()) {
case 1:
lire(entreprises, "entreprises.txt");
affichage(entreprises);
break;
case 2:
lire(pays, "countries.txt");
affichage(pays);
break;
case 3:
chercher(entreprises);
break;
case 4:
ranking_progress(entreprises);
break;
case 5:
entreprises_ranking(entreprises);
break;
case 6:
pays_region(pays);
break;
case 7:
return 0;
}
}
affichage(pays);
cout << entreprises.size() << endl;
return 0;
}