Exercice 1 :
a) Créer une
classe volante qui a comme donnée membre nombre_ailes et qui a
un constructeur,
un destructeur et une fonction affiche
b) Créer une
classe animal qui a comme données membres nombre_pattes et type_pelage et qui a
un constructeur, un destructeur et une fonction affiche.
c) Créer une
classe oiseau qui dérive publiquement des classes volante et animal.
Elle a comme
donnée membre nombre_oeufs et qui a un constructeur, un destructeur et une
fonction affiche qui affiche la donnée membre et qui fait appel aux fonctions
affiche des classes de base.
d) Créer un
programme qui crée un objet de type oiseau et teste ses fonctions.
Solution:
#include <iostream.h>
#include <string.h>
#define MAX 20
class volante{
int
nombre_ailes;
public:
volante(int
na=2);
~volante();
void affiche();
};
class animal{
int
nombre_pattes;
char
type_pelage[MAX];
public:
animal(int
np=4,char *tp="");
~animal();
void affiche();
};
class
oiseau:public volante,public animal{
int
nombre_oeufs;
public:
oiseau(int
no=1,int na=2,int np=4,char *tp="");
~oiseau();
void affiche();
};
volante::volante(int
na){
nombre_ailes=na;
cout<<"constructeur
volante"<<endl;
}
volante::~volante(){
cout<<"destructeur
volante"<<endl;
}
void
volante::affiche(){
cout<<"nombre
d'ailes:"<<nombre_ailes<<endl;
}
animal::animal(int
np,char *tp){
nombre_pattes=np;
strcpy(type_pelage,tp);
cout<<"constructeur
animal"<<endl;
}
animal::~animal(){
cout<<"destructeur
animal"<<endl;
}
void
animal::affiche(){
cout<<"nombre
de pattes:"<<nombre_pattes<<endl;
cout<<"type
de pelage: "<<type_pelage<<endl;
}
oiseau::oiseau(int
no,int na,int np,char *tp):volante(na),animal(np,tp){
nombre_oeufs=no;
cout<<"constructeur
oiseau"<<endl;
}
oiseau::~oiseau(){
cout<<"destructeur
oiseau"<<endl;
}
void
oiseau::affiche(){
volante::affiche();
animal::affiche();
cout<<"nombre
d'oeufs: "<<nombre_oeufs<<endl;
}
void main()
{
int k;
oiseau o;
o.affiche();
cin>>k;
}
Exercice 2 :
a) Créer une
classe moniteur comprenant :
- les données
membres : type (chaîne de caractères), couleurs (long), x_reso(int) et
y-reso(int)
- un constructeur
initialisant les données membres
- une fonction
montrer_moniteur qui affiche les informations sur le Moniteur
b) Créer une
classe carte_mere comprenant :
- les données
membres : processeur(int), vitesse(int) et ram(int).
- un
constructeur initialisant les données membres.
- une fonction
montrer_carte qui affiche les informations sur la carte.
c) Créer une
classe ordinateur dérivant publiquement des classes moniteur et
carte_mere et
qui contient :
- les données
membres :nom(chaînes de caractères), hd(int),lecteur(float)
- un
constructeur initialisant les données membres
- une fonction
montrer_ordinateur qui affiche les informations sur
l’ordinateur et
appelle les fonctions montrer_moniteur et montrer_carte.
d) Créer un
programme qui crée un objet ordinateur et qui affiche les informations sur
cet
objet
e) Remplacer les
fonctions montrer_moniteur, montrer-carte et montrer_ordinateur par 3 fonctions
appelées montrer.Faire les modifications nécessaires au bon fonctionnement du
programme.
Solution:
//2.a,b,c,d
#include <iostream.h>
#include <string.h>
class moniteur{
char type[5];
long int couleur;
int x_reso;
int y_reso;
public:
moniteur(char tp[5]="", long int coul=0, int
x=0, int y=0);
void montrer_moniteur();
};
class
carte_mere{
int processeur;
int vitesse;
int ram;
public:
carte_mere(int
pro=0, int vi=0, int rm=0);
void
montrer_carte();
};
class
ordinateur:public moniteur, carte_mere{
char nom[10];
int hardisk;
float lecteur;
public:
ordinateur(char
nm[10], int hd, float lct,char tp[5],long int coul, int x, int y,int
pro, int vi, int rm);
//attention ne
pas oublier
void
montrer_ordinateur();
};
moniteur::moniteur(char
tp[5], int long coul, int x, int y){
strcpy(type,tp);
couleur=coul;
x_reso=x;
y_reso=y;
}
void
moniteur::montrer_moniteur(){
cout<<"type
de moniteur: "<<type<<endl;
cout<<"couleur:
"<<couleur<<endl;
cout<<"x_reso:
"<<x_reso<<endl;
cout<<"y_reso:
"<<y_reso<<endl;
}
carte_mere::carte_mere(int pro, int vi, int rm){
processeur=pro;
vitesse=vi;
ram=rm;
}
void carte_mere::montrer_carte(){
cout<<"processeur:
"<<processeur<<endl;
cout<<"vitesse:
"<<vitesse<<endl;
cout<<"ram:
"<<ram<<endl;
}
ordinateur::ordinateur(char
nm[10], int hd, float lct,char tp[5],long int coul, int x, int
y,int pro, int
vi, int rm): moniteur(tp,coul,x,y),carte_mere(pro,vi,rm){
//je mets public
a chak fois... erreur de syntaxe
strcpy(nom,nm);
hardisk=hd;
lecteur=lct;
}
void
ordinateur::montrer_ordinateur(){
moniteur::montrer_moniteur();
carte_mere::montrer_carte();
cout<<"nom
du PC: "<<nom<<endl;
cout<<"hd:
"<<hardisk<<endl;
cout<<"lecteur:
"<<lecteur<<endl;
}
void main()
{
int k;
moniteur
a("moniteur",256,800,600);
a.montrer_moniteur();
cout<<endl;
carte_mere
b(64,3,1024);
b.montrer_carte();
cout<<endl;
ordinateur
c("junior",160,5.4,"moniteur",256,800,600,64,3,1024);
c.montrer_ordinateur();
cin>>k;
}
//2.e
#include <iostream.h>
#include <string.h>
class moniteur{
char type[5];
long int couleur;
int x_reso;
int y_reso;
public:
moniteur(char tp[5]="", long int coul=0, int
x=0, int y=0);
void montrer();
};
class
carte_mere{
int processeur;
int vitesse;
int ram;
public:
carte_mere(int
pro=0, int vi=0, int rm=0);
void montrer();
};
class
ordinateur:public moniteur, carte_mere{
char nom[10];
int hardisk;
float lecteur;
public:
ordinateur(char
nm[10], int hd, float lct,char tp[5],long int coul, int x, int y,int
pro, int vi, int
rm);
//attention ne
pas oublier
void montrer();
};
moniteur::moniteur(char
tp[5], int long coul, int x, int y){
strcpy(type,tp);
couleur=coul;
x_reso=x;
y_reso=y;
}
void
moniteur::montrer(){
cout<<"type
de moniteur: "<<type<<endl;
cout<<"couleur:
"<<couleur<<endl;
cout<<"x_reso:
"<<x_reso<<endl;
cout<<"y_reso:
"<<y_reso<<endl;
}
carte_mere::carte_mere(int pro, int vi, int rm){
processeur=pro;
vitesse=vi;
ram=rm;
}
void carte_mere::montrer(){
cout<<"processeur:
"<<processeur<<endl;
cout<<"vitesse:
"<<vitesse<<endl;
cout<<"ram:
"<<ram<<endl;
}
ordinateur::ordinateur(char
nm[10], int hd, float lct,char tp[5],long int coul, int x, int
y,int pro, int
vi, int rm): moniteur(tp,coul,x,y),carte_mere(pro,vi,rm){
//je mets public
a chak fois... erreur de syntaxe
strcpy(nom,nm);
hardisk=hd;
lecteur=lct;
}
void
ordinateur::montrer(){
moniteur::montrer();
carte_mere::montrer();
cout<<"nom
du PC: "<<nom<<endl;
cout<<"hd:
"<<hardisk<<endl;
cout<<"lecteur:
"<<lecteur<<endl;
}
void main()
{
moniteur
a("moniteur",256,800,600);
a.montrer();
cout<<endl;
carte_mere
b(64,3,1024);
b.montrer();
cout<<endl;
ordinateur c("junior",160,5.4,"moniteur",256,800,600,64,3,1024);
c.montrer();
}
Exercice 3 :
Créer une classe
poste_de_travail dérivant publiquement de la classe ordinateur
(voir exercice 2) Elle contient :
- la donnée
membre syst_exploi (chaîne de caractères)
- un
constructeur initialisant la donnée membre
- une fonction
montrer qui affiche les informations sur le poste de travail en faisant appel à
la
fonction montrer de la classe ordinateur.
Solution:
#include <iostream.h>
#include <string.h>
class moniteur{
char type[5];
long int couleur;
int x_reso;
int y_reso;
public:
moniteur(char tp[5]="", long int coul=0, int
x=0, int y=0);
void montrer();
};
class
carte_mere{
int processeur;
int vitesse;
int ram;
public:
carte_mere(int
pro=0, int vi=0, int rm=0);
void montrer();
};
class
ordinateur:public moniteur, carte_mere{
char nom[10];
int hardisk;
float lecteur;
public:
ordinateur(char
nm[10], int hd, float lct,char tp[5],long int coul, int x, int y,int
pro, int vi, int
rm);
//attention ne
pas oublier
void montrer();
};
class
poste_travail:public ordinateur{
char
syst_exploi[10];
public:
poste_travail(char s_e[10],char nm[10], int hd, float
lct,char tp[5],long int coul, int x,
int y,int pro,
int vi, int rm);
void montrer();
};
poste_travail::poste_travail(char
s_e[10],char nm[10], int hd, float lct,char tp[5],long
int coul, int x,
int y,int pro, int vi, int rm):ordinateur(nm,hd,lct,tp,coul,x,y,pro,vi,rm){
strcpy(syst_exploi,s_e);
}
void
poste_travail::montrer(){
ordinateur::montrer();
cout<<"Systeme
d'exploitation : "<<syst_exploi<<endl;
}
moniteur::moniteur(char
tp[5], int long coul, int x, int y){
strcpy(type,tp);
couleur=coul;
x_reso=x;
y_reso=y;
}
void
moniteur::montrer(){
cout<<"type
de moniteur: "<<type<<endl;
cout<<"couleur:
"<<couleur<<endl;
cout<<"x_reso:
"<<x_reso<<endl;
cout<<"y_reso:
"<<y_reso<<endl;
}
carte_mere::carte_mere(int pro, int vi, int rm){
processeur=pro;
vitesse=vi;
ram=rm;
}
void carte_mere::montrer(){
cout<<"processeur:
"<<processeur<<endl;
cout<<"vitesse:
"<<vitesse<<endl;
cout<<"ram:
"<<ram<<endl;
}
ordinateur::ordinateur(char
nm[10], int hd, float lct,char tp[5],long int coul, int x, int
y,int pro, int
vi, int rm): moniteur(tp,coul,x,y),carte_mere(pro,vi,rm){
//je mets public
a chak fois... erreur de syntaxe
strcpy(nom,nm);
hardisk=hd;
lecteur=lct;
}
void
ordinateur::montrer(){
moniteur::montrer();
carte_mere::montrer();
cout<<"nom
du PC: "<<nom<<endl;
cout<<"hd:
"<<hardisk<<endl;
cout<<"lecteur:
"<<lecteur<<endl;
}
void main()
{
moniteur
a("moniteur",256,800,600);
a.montrer();
cout<<endl;
carte_mere
b(64,3,1024);
b.montrer();
cout<<endl;
ordinateur
c("junior",160,5.4,"moniteur",256,800,600,64,3,1024);
c.montrer();
cout<<endl;
poste_travail d("XP","junior",160,5.4,"moniteur",256,800,600,64,3,1024);
d.montrer();
}
Exercice 4 :
a) Créer une
classe objetassure comprenant :
- les données
membres : montant(float), type (chaîne de caractères)
- un
constructeur initialisant les données membres
- une fonction
affiche qui affiche les informations sur l’objetassure
b) Créer une
classe ordinateur dérivant publiquement de la classe objetassure et comprenant
:
- les données
membres : ram (int), hd(int), …
- un
constructeur initialisant les données membres
- une fonction
affiche qui affiche les informations sur l’ordinateur et qui appelle la
fonction
affiche de la classe objetassure
c) Créer une
classe bagage dérivant publiquement de la classe objetassuré et comprenant :
- les données
membres : type (chaîne de caractères), poids (float)
- un
constructeur initialisant les données membres
- une fonction
affiche affichant les informations sur le bagage et
appelant la
fonction affiche de la classe objetassure.
d) Créer une
classe ordinateurportable dérivant publiquement des classes ordinateur et
bagage
et comprenant :
- les données
membres poids (float) et epaisseur (float)
- un
constructeur initialisant les données membres
- une fonction
affiche qui affiche les informations sur l’ordinateur portable et qui appelle
les fonctions affiche des classes bagage et ordinateur
e) Créer un
programme qui crée un objet ordinateurportable et qui affiche les informations
sur
cet objet
Remarque :
l’ordinateur portable doit bénéficier des 2 assurances, l’une contre le
vol (en tant
qu’ordinateur) et l’autre contre la perte (en tant que bagage).
Solution:
#include <iostream.h>
#include <string.h>
#define MAX 20
class objetassure{
float montant;
char type[MAX];
public:
objetassure(float mt=0.0,char tp[MAX]="");
void affiche();
};
class ordinateur:public virtual objetassure{
int ram;
int hardisk;
public:
ordinateur(int rm=0,int hd=0,float mt=0.0,char
tp[MAX]="");
void affiche();
};
class bagage:virtual public objetassure{
char type1[MAX];
float poids;
public:
bagage(char tp1[MAX]="",float pd=0,float
mt=0.0,char tp[MAX]="");
void affiche();
};
class ordinateurportable:public ordinateur,public
bagage{
float poids1;
float epaisseur;
public:
ordinateurportable(float pd1=0.0,float epaiss=0.0,int
rm=0,int hd=0,char
tp1[MAX]="",float
pd=0.0);
//pas obligation
de mettre les autres paramètres de objetassure
//ici je ne le
fais pas mais pour afficher il vaudrait mieux ;-)
void affiche();
};
objetassure::objetassure(float
mt,char tp[MAX]){
montant=mt;
strcpy(type,tp);
}
void
objetassure::affiche(){
cout<<"montant:
"<<montant<<endl;
cout<<"objet
assure type: "<<type<<endl;
}
ordinateur::ordinateur(int
rm,int hd,float mt,char tp[MAX]):objetassure(mt,tp){
ram=rm;
hardisk=hd;
}
void
ordinateur::affiche(){
objetassure::affiche();
cout<<"Mémoire
type ram : "<<ram<<endl;
cout<<"Disque
Dur: "<<hardisk<<endl;
}
bagage::bagage(char tp1[MAX],float pd,float mt,char
tp[MAX]):objetassure(mt,tp){
strcpy(type1,tp1);
poids=pd;
}
void
bagage::affiche(){
objetassure::affiche();
cout<<"Type
de bagage: "<<type1<<endl;
cout<<"Poids
du bagage: "<<poids<<endl;
}
ordinateurportable::ordinateurportable(float pd1,float
epaiss,int rm,int hd,char
tp1[MAX],float pd):ordinateur(rm,hd),bagage(tp1,pd){
poids1=pd1;
epaisseur=epaiss;
}
void
ordinateurportable::affiche(){
ordinateur::affiche();
bagage::affiche();
cout<<"ordinateur
portable poids: "<<poids1<<endl;
cout<<"epaisseur:
"<<epaisseur<<endl;
}
void main(){
int k;
ordinateurportable
orpor(10,10,256,160,"a main",50);//attention a l affichage
orpor.affiche();
cin>>k;
}
ConversionConversion EmoticonEmoticon
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.