summaryrefslogtreecommitdiff
path: root/sem_6/HLIN603/TP1
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_6/HLIN603/TP1
Initial commit
Diffstat (limited to 'sem_6/HLIN603/TP1')
-rw-r--r--sem_6/HLIN603/TP1/CompteBancaire.cpp15
-rw-r--r--sem_6/HLIN603/TP1/CompteBancaire.h16
-rw-r--r--sem_6/HLIN603/TP1/CompteDepot.cpp15
-rw-r--r--sem_6/HLIN603/TP1/CompteDepot.h14
-rw-r--r--sem_6/HLIN603/TP1/CompteDepotRemunere.cpp15
-rw-r--r--sem_6/HLIN603/TP1/CompteDepotRemunere.h16
-rw-r--r--sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp15
-rw-r--r--sem_6/HLIN603/TP1/CompteDepotRemunereCB.h16
-rw-r--r--sem_6/HLIN603/TP1/CompteRemunere.cpp15
-rw-r--r--sem_6/HLIN603/TP1/CompteRemunere.h15
-rw-r--r--sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp17
-rw-r--r--sem_6/HLIN603/TP1/CompteRemunereAvecCB.h15
-rw-r--r--sem_6/HLIN603/TP1/Prog.cpp39
-rw-r--r--sem_6/HLIN603/TP1/a.outbin0 -> 25919 bytes
14 files changed, 223 insertions, 0 deletions
diff --git a/sem_6/HLIN603/TP1/CompteBancaire.cpp b/sem_6/HLIN603/TP1/CompteBancaire.cpp
new file mode 100644
index 0000000..486b74f
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteBancaire.cpp
@@ -0,0 +1,15 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteBancaire.h"
+
+CompteBancaire::CompteBancaire(){}
+CompteBancaire::~CompteBancaire(){
+ std::cout<<"Destru Compte Bancaire"<<std::endl;
+ std::cout<<"Argent à rendre : "<<solde<<std::endl;
+}
+CompteBancaire::CompteBancaire(float v): solde(v){
+ std::cout<<"Constru Compte Bancaire"<<std::endl;
+};
+void CompteBancaire::deposer(float v){
+ solde += v;
+}
diff --git a/sem_6/HLIN603/TP1/CompteBancaire.h b/sem_6/HLIN603/TP1/CompteBancaire.h
new file mode 100644
index 0000000..ee525b2
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteBancaire.h
@@ -0,0 +1,16 @@
+#ifndef _CB_H
+#define _CB_H
+#include<cstdlib>
+#include<iostream>
+
+class CompteBancaire
+{
+ protected :
+ float solde;
+ public :
+ CompteBancaire(float v);
+ CompteBancaire();
+ virtual ~CompteBancaire();
+ virtual void deposer(float v);
+};
+#endif
diff --git a/sem_6/HLIN603/TP1/CompteDepot.cpp b/sem_6/HLIN603/TP1/CompteDepot.cpp
new file mode 100644
index 0000000..afbcb88
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteDepot.cpp
@@ -0,0 +1,15 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteDepot.h"
+CompteDepot::CompteDepot(){}
+CompteDepot::~CompteDepot(){
+ std::cout<<"Destru Compte Depot"<<std::endl;
+ solde-=100;
+}
+CompteDepot::CompteDepot(float v) : CompteBancaire(v){
+ std::cout<<"Constru Compte Depot"<<std::endl;
+};
+void CompteDepot::deposer(float v){
+ float w = v>1000? v + 9 : v - 1;
+ CompteBancaire::deposer(w);
+}
diff --git a/sem_6/HLIN603/TP1/CompteDepot.h b/sem_6/HLIN603/TP1/CompteDepot.h
new file mode 100644
index 0000000..7016746
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteDepot.h
@@ -0,0 +1,14 @@
+#ifndef _CD_H
+#define _CD_H
+#include<cstdlib>
+#include<iostream>
+#include"./CompteBancaire.h"
+class CompteDepot : virtual public CompteBancaire
+{
+ public :
+ CompteDepot(float v);
+ CompteDepot();
+ virtual ~CompteDepot();
+ virtual void deposer(float);
+};
+#endif
diff --git a/sem_6/HLIN603/TP1/CompteDepotRemunere.cpp b/sem_6/HLIN603/TP1/CompteDepotRemunere.cpp
new file mode 100644
index 0000000..2e12d17
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteDepotRemunere.cpp
@@ -0,0 +1,15 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteDepotRemunere.h"
+
+CompteDepotRemunere::CompteDepotRemunere(){}
+CompteDepotRemunere::~CompteDepotRemunere(){
+ std::cout<<"Destru Compte Depot Remu"<<std::endl;
+}
+CompteDepotRemunere::CompteDepotRemunere(float v ) : CompteDepot(v){
+ std::cout<<"Constru Compte Depot Remunere"<<std::endl;
+};
+void CompteDepotRemunere::deposer(float v){
+ CompteRemunere::deposer(v);
+ CompteDepot::deposer(0);
+}
diff --git a/sem_6/HLIN603/TP1/CompteDepotRemunere.h b/sem_6/HLIN603/TP1/CompteDepotRemunere.h
new file mode 100644
index 0000000..0b81395
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteDepotRemunere.h
@@ -0,0 +1,16 @@
+#ifndef _CDR_H
+#define _CDR_H
+#include<cstdlib>
+#include<iostream>
+#include"./CompteRemunere.h"
+#include"./CompteDepot.h"
+
+class CompteDepotRemunere : public CompteRemunere,public CompteDepot
+{
+ public :
+ CompteDepotRemunere(float v);
+ CompteDepotRemunere();
+ virtual ~CompteDepotRemunere();
+ virtual void deposer(float);
+};
+#endif
diff --git a/sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp b/sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp
new file mode 100644
index 0000000..1c7c872
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteDepotRemunereCB.cpp
@@ -0,0 +1,15 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteDepotRemunereCB.h"
+
+CompteDepotRemunereCB::CompteDepotRemunereCB(){}
+CompteDepotRemunereCB::~CompteDepotRemunereCB(){
+ std::cout<<"Destru Compte Depot Remu CB"<<std::endl;
+}
+CompteDepotRemunereCB::CompteDepotRemunereCB(float v ) : CompteDepot(v){
+ std::cout<<"Constru Compte Depot Remunere CB"<<std::endl;
+};
+void CompteDepotRemunereCB::deposer(float v){
+ CompteRemunere::deposer(v);
+ CompteDepot::deposer(0);
+}
diff --git a/sem_6/HLIN603/TP1/CompteDepotRemunereCB.h b/sem_6/HLIN603/TP1/CompteDepotRemunereCB.h
new file mode 100644
index 0000000..f4f1179
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteDepotRemunereCB.h
@@ -0,0 +1,16 @@
+#ifndef _CDR_H
+#define _CDR_H
+#include<cstdlib>
+#include<iostream>
+#include"./CompteRemunere.h"
+#include"./CompteDepot.h"
+
+class CompteDepotRemunereCB : public CompteDepotRemunere,public CompteDepotAvecCB
+{
+ public :
+ CompteDepotRemunere(float v);
+ CompteDepotRemunere();
+ virtual ~CompteDepotRemunere();
+ virtual void deposer(float);
+};
+#endif
diff --git a/sem_6/HLIN603/TP1/CompteRemunere.cpp b/sem_6/HLIN603/TP1/CompteRemunere.cpp
new file mode 100644
index 0000000..fc409fb
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteRemunere.cpp
@@ -0,0 +1,15 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteRemunere.h"
+CompteRemunere::CompteRemunere(){}
+CompteRemunere::~CompteRemunere(){
+ std::cout<<"Destru Compte Remu"<<std::endl;
+ solde+=0.1*solde;
+}
+CompteRemunere::CompteRemunere(float v ) : CompteBancaire(v){
+ std::cout<<"Constru Compte Remunere"<<std::endl;
+};
+void CompteRemunere::deposer(float v){
+ float w = 1.01*v;
+ CompteBancaire::deposer(w);
+}
diff --git a/sem_6/HLIN603/TP1/CompteRemunere.h b/sem_6/HLIN603/TP1/CompteRemunere.h
new file mode 100644
index 0000000..cb22d1e
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteRemunere.h
@@ -0,0 +1,15 @@
+#ifndef _CR_H
+#define _CR_H
+#include<cstdlib>
+#include<iostream>
+#include"./CompteBancaire.h"
+
+class CompteRemunere : virtual public CompteBancaire
+{
+ public :
+ CompteRemunere(float v);
+ CompteRemunere();
+ virtual ~CompteRemunere();
+ virtual void deposer(float);
+};
+#endif
diff --git a/sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp b/sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp
new file mode 100644
index 0000000..d8b1186
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteRemunereAvecCB.cpp
@@ -0,0 +1,17 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteRemunere.h"
+
+CompteRemunereAvecCB::CompteRemunereAvecCB(){
+}
+CompteRemunereAvecCB::~CompteRemunereAvecCB(){
+ std::cout<<"Destru Compte Remu CB"<<std::endl;
+ solde -= 5;
+}
+CompteRemunereAvecCB::CompteRemunereAvecCB(float v ) : CompteRemunere(v){
+ std::cout<<"Constru Compte Remunere CB"<<std::endl;
+};
+float CompteRemunereAvecCB::deposer(float v){
+ CompteRemunere::deposer(v);
+ return solde;
+}
diff --git a/sem_6/HLIN603/TP1/CompteRemunereAvecCB.h b/sem_6/HLIN603/TP1/CompteRemunereAvecCB.h
new file mode 100644
index 0000000..995fb39
--- /dev/null
+++ b/sem_6/HLIN603/TP1/CompteRemunereAvecCB.h
@@ -0,0 +1,15 @@
+#ifndef _CR_H
+#define _CR_H
+#include<cstdlib>
+#include<iostream>
+#include"./CompteBancaire.h"
+
+class CompteRemunereAvecCB : public CompteRemunere
+{
+ public :
+ CompteRemunereAvecCB(float v);
+ CompteRemunereAvecCB();
+ virtual ~CompteRemunereAvecCB();
+ virtual void deposer(float);
+};
+#endif
diff --git a/sem_6/HLIN603/TP1/Prog.cpp b/sem_6/HLIN603/TP1/Prog.cpp
new file mode 100644
index 0000000..d4bbc36
--- /dev/null
+++ b/sem_6/HLIN603/TP1/Prog.cpp
@@ -0,0 +1,39 @@
+#include<cstdlib>
+#include<iostream>
+#include"CompteDepot.h"
+#include"CompteBancaire.h"
+#include"CompteRemunere.h"
+#include"CompteDepotRemunere.h"
+#include<time.h>
+int main(int argc, char ** argv){
+ srand(time(NULL));
+ CompteBancaire * vp[atoi(argv[1])];
+ for (int i = 0 ; i < atoi(argv[1]); i ++){
+ if (i % 2 == 1){
+ std::cout<<"Avec COmpte Depot"<<std::endl;
+ vp[i]= new CompteDepot(rand()%2000+1);
+ }
+ else {
+ std::cout<<"Avec COmpte Depot Remunere"<<std::endl;
+ vp[i]= new CompteDepotRemunere(rand()%2000+1);
+ }
+ }
+ for (int i =0; i < atoi(argv[1]); i ++){
+ delete vp[i];
+ }
+ // float Argent = (float) atoi(argv[1]);
+ // std::cout<<"Avec Compte Bancaire"<<std::endl;
+ // CompteBancaire * cb = new CompteBancaire(Argent);
+ // cb->deposer(Argent);
+ // delete cb;
+ // std::cout<<"Avec Compte Depot"<<std::endl;
+ // cb = new CompteDepot(Argent);
+ // cb->deposer(Argent);
+ // delete cb;
+ // std::cout<<"Avec Compte Remunere"<<std::endl;
+ // cb = new CompteRemunere(Argent);
+ // cb->deposer(Argent);
+ // delete cb;
+
+ return 0;
+}
diff --git a/sem_6/HLIN603/TP1/a.out b/sem_6/HLIN603/TP1/a.out
new file mode 100644
index 0000000..38df8c4
--- /dev/null
+++ b/sem_6/HLIN603/TP1/a.out
Binary files differ