Exemple #1
0
bool Bibliotheque::retourner(const string & matricule, const string & cote)
{
	bool retour = false;
	Abonne* abonne = trouverAbonne(matricule);
	Livre* livre = trouverLivre(cote);
	if (abonne->retirerEmprunt(*livre)) {
		livre->modifierNbDisponibles(livre->obtenirNbDisponibles() + 1);

		for (unsigned int i = 0; i < vecEmprunt_.size(); i++) {
			if (*(vecEmprunt_[i]->obtenirLivre()) == *livre) {
				vecEmprunt_.erase(vecEmprunt_.begin() + i);
				retour = true;
				i = vecEmprunt_.size();
			}
		}
	}

	return retour;
}
Exemple #2
0
bool Bibliotheque::retourner(const string& matricule, const string& cote)
{
	bool estEmprunte = false;
	unsigned int position = 0;
	for (unsigned int i = 0; i < emprunts_.size() && !estEmprunte; i++)
		if (emprunts_[i]->obtenirMatricule() == matricule && emprunts_[i]->obtenirObjetEmpruntable()->obtenirCote() == cote)
		{
			estEmprunte = true;
			position = i;
		}
	if (estEmprunte)
	{
		Abonne* abonne = trouverAbonne(matricule);
		ObjetEmpruntable* objetEmpruntable = trouverObjetEmpruntable(cote);
		abonne->retirerEmprunt(*objetEmpruntable);
		delete emprunts_[position];
		emprunts_[position] = emprunts_[emprunts_.size() - 1];
		emprunts_.pop_back();
		objetEmpruntable->modifierNbDisponibles(objetEmpruntable->obtenirNbDisponibles() + 1);
		return true;
	}
	return false;
}