Académique Documents
Professionnel Documents
Culture Documents
Etagere Qui Peut Contenir Un Certain Nombre de Livres
Etagere Qui Peut Contenir Un Certain Nombre de Livres
/**
* Renvoie le livre placé sur l'étagère dans la position indiquée.
* @param position : La position du 1er livre est 1 (pas 0).
* @return le livre trouvée à cette position (<code>null</code>
* s'il n'y a pas de livre à cette position)
*/
public Livre getLivre(int position) {
if (position > 0 && position <= nbLivres) {
return livres[position - 1];
}
else {
return null;
}
}
/**
* Cherche la position du premier livre de l'étagère avec un auteur
* et un titre donné.
* @param titre : le titre du livre
* @param auteur : l'auteur du livre
* @return la position du livre cherché sur l'étagère
* ou 0 si le livre n'y est pas.
* Remarque : la position du 1er livre est 1 (pas 0)
*/
public int chercher(String titre, String auteur) {
for (int i=0; i < nbLivres; i++) {
if (livres[i].getTitre().equals(titre)
&& livres[i].getAuteur().equals(auteur)) {
return i + 1;
}
}
return 0;
}
/**
* Cherche les positions de tous les livres de l'étagère avec un auteur
* et un titre donné.
* @param titre : le titre du livre
* @param auteur : l'auteur du livre
* @return un tableau d'entiers contenant les position des livres
cherchés
* sur l'étagère ; le tableau a pour taille le nombre de livres trouvés.
* Remarque : la position du 1er livre est 1 (pas 0)
*/
public int[] chercherLivres(String titre, String auteur) {
int[] livresCherches = new int[nbLivres];
int nbLivresTrouves = 0;
for (int i=0; i < nbLivres; i++) {
if (livres[i].getTitre().equals(titre)
&& livres[i].getAuteur().equals(auteur)) {
livresCherches[nbLivresTrouves++] = i + 1;
}
}
int[] result = new int[nbLivresTrouves];
System.arraycopy(livresCherches, 0, result, 0, nbLivresTrouves);
return result;
}
/**
* Cherche tous les livres d'un auteur sur l'étagère.
* @param auteur : l'auteur des livres
* @return un tableau de livres contenant les livres cherchés ;
* le tableau a pour taille le nombre de livres trouvés.
*/
public Livre[] chercherAuteur(String auteur) {
Livre[] livresCherches = new Livre[nbLivres];
int nbLivresTrouves = 0;
for (int i=0; i < nbLivres; i++) {
if (livres[i].getAuteur().equals(auteur)) {
livresCherches[nbLivresTrouves++] = livres[i];
}
}
Livre[] result = new Livre[nbLivresTrouves];
System.arraycopy(livresCherches, 0, result, 0, nbLivresTrouves);
return result;
}
/**
* Cherche tous les livres d'un auteur sur l'étagère.
* @param auteur : l'auteur des livres
* @return un tableau contenant les livres cherchés.
*/
public Livre[] chercherTitre(String titre) {
Livre[] livresCherches = new Livre[nbLivres];
int nbLivresTrouves = 0;
for (int i=0; i < nbLivres; i++) {
if (livres[i].getTitre().equals(titre)) {
livresCherches[nbLivresTrouves++] = livres[i];
}
}
Livre[] result = new Livre[nbLivresTrouves];
System.arraycopy(livresCherches, 0, result, 0, nbLivresTrouves);
return result;
}
/**
* Enlever un livre "en tassant".
* @param position du livre à enlever
* (position 1 pour le 1er livre).
* @return le livre enlevé
* (null si pas de livre à la position indiquée).
*/
public Livre enleverLivre(int position) {
if (position <= 0 || position> nbLivres) {
return null;
}
int i = position - 1;
Livre livreEnleve = livres[i];
nbLivres--;
// On tasse les livres
for ( ; i < nbLivres; i++) {
livres[i] = livres[i + 1];
}
return livreEnleve;
}
/**
* Enlever un livre en remplaçant par le dernier livre.
* @param position du livre à enlever
* (position 1 pour le 1er livre).
* @return le livre enlevé
* (null si pas de livre à la position indiquée).
*/
public Livre enlever(int position) {
if (position <= 0 || position> nbLivres) {
return null;
}
int i = position - 1;
Livre livreEnleve = livres[i];
nbLivres--;
// On met le dernier livre à la place de celui que l'on vient d'enlever
livres[i] = livres[nbLivres];
return livreEnleve;
}
livresCherches = etagere2.chercherAuteur("a10");
System.out.println("Livres écrits par a10 :");
for (int i = 0; i < livresCherches.length; i++) {
System.out.println(livresCherches[i]);
}
}
}
package fr.unice.toto.bibliotheque;
public class Livre {
// Variables
private String titre, auteur;
private int nbPages;
private double prix;
// Constructeurs
public Livre(String unAuteur, String unTitre) {
auteur = unAuteur;
titre = unTitre;
}
// Accesseur
public String getAuteur() {
return auteur;
}
public String getTitre() {
return titre;
}
public int getNbPages() {
return nbPages;
}
// Modificateur
public void setAuteur(String unAuteur) {
auteur = unAuteur;
}
public void setTitre(String unTitre) {
titre = unTitre;
}
public void setNbPages(int n) {
if (n > 0) {
nbPages = n;
}
else {
System.err.println("Erreur : nombre de pages négatif !");
}
}
// Constructeurs
public Livre(String unAuteur, String unTitre) {
this(unAuteur, unTitre, 0, 0.0);
}
// Accesseur
public String getAuteur() {
return auteur;
}
// Modificateur
public void setAuteur(String unAuteur) {
auteur = unAuteur;
}
// Constructeurs
public Livre(String auteur, String titre) {
this(auteur, titre, 0, 0.0);
}
// Accesseur
public String getAuteur() {
return auteur;
}
// Modificateur
public void setAuteur(String auteur) {
this.auteur = auteur;
}
// Constructeurs
public Livre(String unAuteur, String unTitre) {
auteur = unAuteur;
titre = unTitre;
}
// Accesseur
public String getAuteur() {
return auteur;
}
// Modificateur
public void setAuteur(String unAuteur) {
auteur = unAuteur;
}