Vous êtes sur la page 1sur 7

PROPOSITION DE CORRECTION DE PROGRAMMATION ORIENTEE OBJET C++

Exercice 1 :
#include <stdio.h>

float operation (float a, float b, char op)


{
float res;
switch(op)
{
case '+' : res = a + b ; break ;
case '-' : res = a - b ; break ;
case '*' : res = a * b ; break ;
case '/' : res = a / b ; break ;
default : res = a + b ;
}
return res ;
}
- programme main

void main()
{
float x = 2, y = 3 ;
printf("la somme est : %e\n",operation(x,y,'+')) ;
printf("la difference est : %e\n",operation(x,y,'-')) ;
printf("le produit est : %e\n",operation(x,y,'*')) ;
printf("la division est : %e\n",operation(x,y,'/')) ;
}

Exercice 2 :
B : dans fct, n = 10, p = 5, q = 20
A : dans main, n = 20, p = 5, q = 2
C : dans f, n = 10, p = 20, q = 2
Problème:
- Classe livre:
public class Livre {

private String titre , auteur;


private int nbPages;
public Livre(String auteur, String titre , int nbPages) {
this.auteur = auteur;
this. titre = titre ;
setNbPages(nbPages);
}

public String getAuteur() {


return auteur;
}

public void setNbPages(int n) {


if (n < 0){
System.err.println(”Erreur : nombre de pages négatif !”);
}else{
nbPages = n;

- Classe étagère
1- Nombre de livres que peut contenir l’étagère, et le nombre de livre qu’elle contient.
public class Etagere {

private Livre[] etagere;

private int nbLivres;


private final static int TAILLE = 15;

public Etagere() {

etagere = new Livre[TAILLE];

nbLivres = 0;

public static int taille () {

return TAILLE;

public int nbLivres() {

return nbLivres;

2- Ajouter des livres :

public void ajouter(Livre l) {

if(nbLivres == TAILLE)

System.err.println(”Pas de place sur l’etagere”);

else {
etagere[nbLivres] = l;

nbLivres++;

}
}

3- Récupération d’un livre et donner sa position sur l’étagère

public Livre getLivre(int i) {

if(i > nbLivres)

return null;

else

return etagere[i − 1];


}

4- Cherche un repère par son auteur et son titre :

public int chercher(String auteur, String titre ) {

int i;

for(i = 0; i < nbLivres; i++)

if((etagere[i ].getAuteur()).equals(auteur) &&(etagere[i ]. getTitre ()). equals(


titre )) {

return i + 1;

return 0;

5- Non il n’est pas possible d’appeler cette méthode chercher, car il existe déjà une méthode
chercher qui fait la recherche en fonction de l’auteur et du titre du livre. Nous pouvons donc
appeler cette méthode, chercherTous.

public Livre[] chercherTous(String auteur, String titre ) {

int i , j , cpt;

Livre [] resultat ;

for(i = 0, cpt = 0; i < nbLivres; i++)

if((etagere[i ].getAuteur()).equals(auteur) &&(etagere[i ]. getTitre ()). equals(


titre ))

cpt++;

if (cpt == 0)

return null;

resultat = new Livre[cpt];

for(i = 0, cpt = 0, j = 0; i < nbLivres && j < cpt; i++)

if((etagere[i].getAuteur()).equals(auteur) &&(etagere[i ]. getTitre ()).


equals( titre )) {
resultat [j] = etagere[i ];

}
return resultat;

6- Ras

public Livre[] chercherLivresTitre(string titre) {


Livre[] livres;
private livre* m_livres;
for (int i = 0; i < m_livres.size(); i++) {
if (m_livres [i]->getTitre() == titre) {
livres.push_back(m_livres[i]);
}
}
return livres;
}
public Livre[] chercherLivresAuteur(string auteur) {
Livre[] livres;
private livre* m_livres;
for (int i = 0; i < m_livres.size(); i++) {
if (m_livres[i]->getAuteur() == auteur) {
livres.push_back(m_livres[i]);
}
}
return livres;
}

7- Enlever des livres :


- public Livre supprimerLivre(int position) {

if (position > nbLivres) {


System.err.println(”Pas de livre a cette endroit !” );
return null;
} else {
int i;

Livre resultat = etagere[position − 1];

for(i = position; i < nbLivres; i++)

etagere[i − 1] = etagere[i ];

etagere[nbLivres − 1] = null;

nbLivres−−;

return resultat;

}
}

- public Livre supprimerLivre(String auteur, String titre ) {


int position = chercher(auteur,titre );

return (position == 0 ? null : supprimerLivre(position));

8- description d’une étagère

public String toString() {

int i;

String resultat = new String();

for(i = 0; i < nbLivres; i++) {

resultat += etagere[i].toString() + ”\n”;

resultat += ”−−−−−−−−−−−−−−−−−−−−−−−−−−−\n”;
}
return resultat;

Vous aimerez peut-être aussi