Bonjour, je suis bloqué à un exercice relatant la procédure, la fonction en informatique :
Vous faites votre stage dans une petite bibliothèque qui désire changer le système informatique de la gestion de
ses emprunts. Un précédent stagiaire a commencé à mettre au point les classes qui se trouvent en annexe 1.
Vous disposez aussi des classes techniques de l’annexe 2. Attention les emprunts peuvent être “réservés“
donc enregistrés à l’avance : un livre peut avoir un emprunt prévu dans 2 semaines et donc être actuellement
disponible. Normalement, un emprunt ne peut pas dépasser 7 jours.
Vous allez écrire plusieurs modules pour tester les classes mises à votre disposition. Attention, à vous de deviner, à chaque fois, si le module à écrire est une procédure ou une fonction. Cependant vous pouvez écrire ces modules en algo ou dans le langage de votre choix. Mais quelle que soit votre décision, vous devez utiliser uniquement les classes données en annexe.
a. Écrire le module qui reçoit en paramètre une collection d’objets de type Livre et un titre de livre. Ce module
doit ajouter un nouveau livre dans la collection, à partir du titre passé en paramètre
b. Écrire un module qui reçoit en paramètre une collection d’objets de type Livre et qui affiche la liste des titres des livres qui ne sont actuellement pas empruntés
c. Écrire le module qui reçoit en paramètre un objet de type livre ou de type LivreEnVente et qui ajoute à ce livre un emprunt à la date du jour. Si l’ajout s’est bien passé, le module doit retourner vrai
d. Écrire le module qui reçoit en paramètre une collection d’objets de type Livre et un objet de type Date. Ce
module doit afficher tous les titres des livres pour le moment empruntés à cette date
Classes métiers
Classe Livre
privé :
leTitre : chaine
// il n'y a pas 2 livres portant le même titre
lesEmprunts: Collection <Emprunt>// non trié
public :
Livre (leTitre : chaine)
getLeTitre () : chaine// getter sur leTitre
getLesEmprunts() : Collection <Emprunt>
// getter sur lesEmprunts
emprunté () : booléen
// retourne vrai si le livre est actuellement emprunté
// (date d'emprunt antérieure à la date d'aujourd'hui
// et date de retour à null)
ajouteEmprunt (uneDate : Date) : booléen
// ajoute un emprunt pour ce livre, à la date passée
// en paramètre, à condition que le livre ne soit pas
// en cours d'emprunt
ajouteEmprunt () : booléen
// surcharge la méthode précédente : même principe excepté
// que l'emprunt démarre aujourd'hui.
Classe LivreEnVente hérite de Livre
// un livre en vente est empruntable tant qu'il n'est pas vendu
privé :
prix : réel
dateVente : Date
public :
LivreEnVente (leTitre : chaîne, prix : réel)
// valorise les propriétés privées (la date de vente
// est initialisée à null)
getPrix() : réel
ajouteEmprunt () : booléen
// redéfinit la méthode ajouteEmprunt de la classe mère en
// contrôlant aussi si le livre n'est pas déjà vendu.
Classe Emprunt
privé :
leLivre : Livre
laDateEmprunt : Date
laDateRetour : Date
public :
Emprunt (unLivre : Livre, uneDateEmprunt : Date)
// valorise les 3 propriétés privées (la date de retour
// doit être initialisée à null)
getLeLivre () : Livre
getLaDateEmprunt () : Date
getLaDateRetour () : Date
Classes techniques
Classe Collection <unType>
public :
cardinal() : entier
// renvoie le nombre d’éléments de la collection
existe(unObjet : <unType>) : booléen
// teste si un objet identique existe dans la collection
index(unObjet : <unType>) : entier
// renvoie l’index d’un objet de la collection
// le premier objet de la collection a pour index 0
extraire(unIndex : entier) : <unType>
// retourne un objet contenu dans la collection
ajouter(unObjet : <unType>)
// ajoute un objet dans la collection
enlever(unIndex : entier)
// supprime un objet de la collection
vider()
// vide le contenu de la collection
Classe Date
public :
static aujourdhui() : Date
// retourne la date d’aujourd’hui
ajoute (nbJours : entier)
// permet d’ajouter un nombre de jours à la date
avant(uneDate : Date) : booléen
// retourne vrai si la date de l’objet actuel est
// antérieure ou egale à la date passée en paramètre
Voici l'exercice en question, merci d'avance pour vos éclaircissements !