Ejemplo n.º 1
0
int main()
{
	cout << "________________________________________________" << endl;
	cout << "CREATION ET AFFICHAGE DES ABONNES" << endl << endl;
	// Creation des abonnes, des etudiants et des professeurs
	Abonne john("1839456", "Doe", "John", 23);
	Abonne nicolas("1630236", "Gagnon", "Nicolas", 8);
	Abonne martin("1269348", "Tremblay", "Martin", 18);
	
	Etudiant harry("1782965", "Potter", "Harry", 21, "Pourdlard");
	Etudiant hermione("1876458", "Granger", "Hermione", 20, "Pourdlard");
	EtudiantPolytechnique tony("1865487", "Stark", "Tony", 42);

	Professeur albus("p878546", "Dumbledore", "Albus", 78, { "Poudlard", "UdM", "Polytechnique" });

	// Affichage des informations sur chaque abonne (en utilisant cout <<)
	cout << john;
	cout << nicolas;
	cout << martin;

	cout << harry;
	cout << hermione;
	cout << tony;

	cout << albus;

	cout << "________________________________________________" << endl;
	cout << "CREATION ET AFFICHAGE DES OBJETS EMPRUNTABLES" << endl << endl;
	// Création des livres

	Livre *livre1 = new Livre("GA403", "Big C++", 2009, 8, 2, "Cay HORTSTMANN", "Informatique");
	Livre *livre2 = new Livre("QA203", "Calcul a plusieurs variables partie 1", 2011, 3, 1, "Cay HORTSTMANN", "Informatique");
	Livre *livre3 = new Livre(*livre2);
	livre3->modifierTitre("Calcul a plusieurs variables partie 2");
	livre3->modifierCote("QA204");
	livre3->modifierNbExemplaires(1);
	Livre *livre4 = new Livre("AC409", "Le chateau d'Ortrante", 1764, 16, 2, "Cay HORTSTMANN", "Informatique");
	Livre *livre5 = new Livre("BD302", "Harry Potter et le prisionier d'Azkaban", 1999, 3, 17, "JK ROWLING", "Science-Fiction");
	Livre *livre6 = new Livre();
	*livre6 = *livre1;
	livre6->modifierAnnee(2016);
	livre6->modifierCote("GA404");
	// Affichages des informations sur chaque livre

	cout << *livre1;
	cout << *livre2;
	cout << *livre3;
	cout << *livre4;
	cout << *livre5;
	cout << *livre6;

	// Creation des Dvds
	Dvd *dvd1 = new Dvd("D8403", "Rush Hour", 1998, 2, 13, "Al", { "Jackie Chan", "Chris Tucker" });
	Dvd *dvd2 = new Dvd("D7203", "Avenger", 2012, 3, 5, "Nick Fury", { "Iron Man", "Thor","Hulk", "Captain America", "Black Window" });

	// Affichage des informations sur les Dvds
	cout << *dvd1;
	cout << *dvd2;

	Bibliotheque biblio;
	cout << "________________________________________________" << endl;
	cout << "AJOUT DES DIFFERENTS ELEMENTS A LA BIBLIOTHEQUE" << endl << endl;
	// Ajout des éléments dans la bibliothèque
	biblio += john;
	biblio += nicolas;
	biblio += martin;
	//Ajout des Etudiants et du Professeur
	biblio += harry;
	biblio += tony;
	biblio += hermione;
	biblio += albus;

	biblio += *livre1;
	biblio += *livre2;
	biblio += *livre3;
	biblio += *livre4;
	biblio += *livre5;
	biblio += *livre6;
	//Ajout des Dvds
	
	biblio += *dvd1;
	biblio += *dvd2;
	// Enlever hermione de la bibliotheque
	// Enlevez l'édition 2009 de Big C++
	
	biblio -= hermione;
	biblio -= *livre1;


	// Création de vecteur pour effectuer les emprunts

	vector<string> vecMatricules =
	{ "1630236" , "1782965" , "1865487", "p878546"};
	vector<string> vecCote =
	{ "AC409", "BD302" ,  "BD302", "D7203", "QA203", "D8403", "QA204"};


	/*******************************************************************/
	/*                       DEBUT DES TESTS                           */
	/* Les modifications restantes sont a la fin de la fonction main.  */
	/*******************************************************************/


	// Test d'emprunts en utilisant les vecteurs précédents
	cout << "________________________________________________" << endl;
	cout << "TESTS D'EMPRUNTS" << endl << endl;
	for (size_t i = 0; i < vecMatricules.size(); i++)
	{
		int nombreEmpruntReussi = 0;
		int nombreEmpruntRate = 0;
		for (int j = 0; j < vecCote.size(); j++)
		{
			if (biblio.emprunter(vecMatricules[i], vecCote[j], 160204))
				nombreEmpruntReussi++;
			else
				nombreEmpruntRate++;
			
		}
		cout << vecMatricules[i] <<" a reussi " << nombreEmpruntReussi << " emprunt(s) !" << endl;
		cout << vecMatricules[i] << " a rate " << nombreEmpruntRate << " emprunt(s) !" << endl;

	}
	
	// Affichage des informations d'Albus avec la méthode infoAbonne de Bibliothèque
	cout << "________________________________________________" << endl;
	cout << "INFO ABONNE AVANT RETOUR" << endl << endl;
	biblio.infoAbonne("p878546");
	biblio.infoAbonne("1876458");

	cout << "________________________________________________" << endl;
	cout << "TESTS RETOUR LIVRE" << endl << endl;
	// Devrait marcher
	if (biblio.retourner("1630236", "BD302"))
	{
		cout << "BD302 remis par 1630236" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	// Ne devrait pas marcher car l'abonne n'a jamais fait ce pr�t
	if (biblio.retourner("1839456", "QA203"))
	{
		cout << "QA203 remis par 1839456" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	//Test de retour pour les classes Etudiant et Professeur 
	// Devrait marcher
	if (biblio.retourner("1782965", "D8403"))
	{
		cout << "D8403 remis par 1782965" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	// Ne devrait pas marcher car l'abonne n'a jamais fait ce pr�t
	if (biblio.retourner("1865487", "CD587"))
	{
		cout << "CD587 remis par 1865487" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	// Devrait marcher
	if (biblio.retourner("p878546", "D7203"))
	{
		cout << "D7203 remis par p878546" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	// Devrait marcher
	if (biblio.retourner("p878546", "QA203"))
	{
		cout << "QA203 remis par p878546" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	// Ne devrait pas marcher car l'abonne n'a jamais fait ce pr�t
	if (biblio.retourner("p878546", "QA204"))
	{
		cout << "QA204 remis par p878546" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}

	// Affichage des informations sur albus avec la méthode infoAbonne de la bibliothèque
	cout << "________________________________________________" << endl;
	cout << "INFO ABONNE APRES RETOUR" << endl << endl;
	biblio.infoAbonne("p878546");
		
	// Utiliser l'opérateur >> de Bibliothèque afin d'entrer des mots pour
	// trouver tous les livres correspondants
	// Les mots doivent être recherchés dans tous les attributs string des objets empruntables

	// Rechercher mot, 1er test
	cout << "________________________________________________" << endl;
	cout << "ENTREZ UN MOT A RECHERCHER (1er test)" << endl << endl;
	cin >> biblio;

	// Rechercher mot, 2e test
	cout << "________________________________________________" << endl;
	cout << "ENTREZ UN MOT A RECHERCHER (2e test)" << endl << endl;
	cin >> biblio;

	// Rechercher mot, 3e test
	cout << "________________________________________________" << endl;
	cout << "ENTREZ UN MOT A RECHERCHER (3e test)" << endl << endl;
	cin >> biblio;
	/*******************************/
	/*       FIN DES TESTS         */
	/*******************************/

	// Liberation les ressources 
	delete livre1;
	delete livre2;
	delete livre3;
	delete livre4;
	delete livre5;
	delete livre6;

	delete dvd1;
	delete dvd2;

	system("pause");
	return 0;
}
Ejemplo n.º 2
0
int main()
{
 
//TEST CLASSE FILM -> OK
/*
	Film* film = new Film("01", "titre", "lien", 2014, "affiche", "synopsis");

	cout << film->getId() << endl;
	cout << film->getTitre() << endl;
	cout << film->getAnnee() << endl;
	cout << film->getAffiche() << endl;
	cout << film->getSynopsis() << endl;
	//film->lire();
	film->marquerVu();
	cout << film->getStatut() << endl;
	
	delete(film);
*/

//TEST CLASSE EPISODE -> OK
/*
	Episode* episode = new Episode("01", "Titre", "www.google.com", 2014, 02, 03, "Serie", "Synopsis");

	cout << episode->getNumero() << endl;
	cout << episode->getSaison() << endl;
	cout << episode->getSerie() << endl;
	episode->marquerVoir();
	episode->marquerVu();
	cout << episode->getStatut() << endl;
	//episode->lire();

	delete(episode);
*/

//TEST CLASS PERSONNE
/*
	Personne* personne = new Personne("nom","prenom");
	cout << personne->getNom() << endl;
	cout << personne->getPrenom() << endl;
	
	delete(personne);
*/

	string user;
	cout << "User : "******"01", "Film1", "lien", 2014, "affiche", "synopsis"));
	film1->marquerVu();
	shared_ptr<Film> film2(new Film("02", "Film2", "lien", 2013, "affiche", "synopsis"));
	film2->marquerVoir();
	shared_ptr<Film> film3(new Film("03", "Film3", "lien", 2012, "affiche", "synopsis"));
	shared_ptr<Film> film4(new Film("04", "Film4", "lien", 2011, "affiche", "synopsis"));
	film4->marquerVu();
	
	shared_ptr<Episode> episode1(new Episode("11", "Episode1", "www.google.com", 2014, 01, 01, "Serie", "Synopsis"));
	episode1->marquerVoir();
	shared_ptr<Episode> episode2(new Episode("12", "Episode2", "www.google.com", 2014, 02, 01, "Serie", "Synopsis"));
	shared_ptr<Episode> episode3(new Episode("13", "Episode3", "www.google.com", 2014, 03, 01, "Serie", "Synopsis"));
	episode3->marquerVu();
	
	biblio->addVideo(film1);
	biblio->addVideo(film2);
	biblio->addVideo(film3);
	biblio->addVideo(film4);
	biblio->addVideo(episode1);
	biblio->addVideo(episode2);
	biblio->addVideo(episode3);
	
	for(shared_ptr<Video> v : biblio->getVideos()){
		cout << v->getStatut() << endl;
	}

	return(0);
}
Ejemplo n.º 3
0
int main()
{
	cout << "________________________________________________" << endl;
	cout << "CREATION ET AFFICHAGE DES ABONNES" << endl << endl;
	// Creation des abonnes
	Abonne john("1839456", "Doe", "John", 23);
	Abonne nicolas("1630236", "Gagnon", "Nicolas", 8);
	Abonne martin("1269348", "Tremblay", "Martin", 18);

	// Afficher les informations sur chaque abonne (en utilisant cout <<)

	cout << john << nicolas << martin;

	cout << "________________________________________________" << endl;
	cout << "CREATION ET AFFICHAGE DES LIVRES" << endl << endl;

	// Constructeur par paramètre: 
	Livre livre1("GA403", "Big C++", 2009, 8, 3);
	Livre livre2("QA203", "Calcul a plusieurs variables partie 1", 2011, 3, 2);
	Livre livre3("AC409", "Le chateau d'Ortrante", 1764, 16, 1);
	Livre livre4("BD302", "Harry Potter et le prisionier d'Azkaban", 1999, 3, 1);

	//// Constructeur par copie :
	Livre livreParCopie("QA204", "Calcul a plusieurs variables partie 2", 2011, 3, 2);
	Livre livre5(livreParCopie);

	//// Opérateur =  :
	Livre livrePourOperateurEgal("GA404", "Big C++", 2016, 8, 3);
	Livre livre6 = livrePourOperateurEgal;

	//// Afficher les informations sur chaque livre 
	cout << livre1 << endl << livre2 << endl << livre3 << endl << livre4 << endl << livre5 << endl << livre6 << endl;

	Bibliotheque biblio;
	cout << "________________________________________________" << endl;
	cout  << "Ajout des livres et abonnes a la bibliotheque" << endl << endl;
	
	// Ajouter les abonnes et les livres a la bibliotheque
	// UTILISEZ: l'opérateur +=
	
	biblio += &john;
	biblio += &nicolas;
	biblio += &martin;

	biblio += &livre1;
	biblio += &livre2;
	biblio += &livre3;
	biblio += &livre4;
	biblio += &livre5;
	biblio += &livre6;

	// Enlever martin de la bibliotheque
	// Enlevez l'édition 2009 de Big C++
	
	biblio -= &martin;
	biblio -= &livre1;

	// Créer les vecteurs vecMatricules et vecCote  
	// tel qu'ils contienne les éléments suivants (string) :
	// { "1630236" , "1630236" , "1839456", "1630236", "1630236", "1630236" }
	// { "AC409" , "BD302" , "BD302" ,  "BD302", "QA204", "QA203" }

	vector<string>vecMatricules { "1630236", "1630236", "1839456", "1630236", "1630236", "1630236" };
	vector<string>vecCote { "AC409" , "BD302" , "BD302" ,  "BD302", "QA204", "QA203" };

	/*******************************************************************/
	/*                       DEBUT DES TESTS                           */
	/* Les modifications restantes sont a la fin de la fonction main.  */
	/*******************************************************************/

	// Test d'emprunts en utilisant les vecteurs précédents
	cout << "________________________________________________" << endl;
	cout << "TESTS D'EMPRUNTS" << endl << endl;
	for (size_t i = 0; i < vecMatricules.size(); i++)
	{
		if (biblio.emprunter(vecMatricules[i], vecCote[i], 160204))
		{
			cout << "AC409 emprunte par 1630236" << endl;
		}
		else
		{
			cout << "Echec emprunt" << endl;
		}
	}
	

	// Afficher les informations d'un abonné en utilisant la méthode infoAbonne de Bibliothèque
	cout << "________________________________________________" << endl;
	cout <<  "INFO ABONNE AVANT RETOUR" << endl << endl;
	biblio.infoAbonne("1630236");
	biblio.infoAbonne("1269348");

	cout << "________________________________________________" << endl;
	cout << "TESTS RETOUR LIVRE" << endl << endl;
	// Devrait marcher
	if (biblio.retourner("1630236", "BD302"))
	{
		cout << "BD302 remis par 1630236" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}
	// Ne devrait pas marcher car l'abonne n'a jamais fait ce pr�t
	if (biblio.retourner("1839456", "QA203"))
	{
		cout << "QA203 remis par 1839456" << endl;
	}
	else
	{
		cout << "Echec remise" << endl;
	}

	// Afficher les informations d'un abonné en utilisant la méthode infoAbonne de Bibliothèque
	cout << "________________________________________________" << endl;
	cout  << "INFO ABONNE APRES RETOUR" << endl<< endl;
	biblio.infoAbonne("1630236");


	// test des opérateurs == des classes Livre et Abonne
	Abonne john2 = john;
	Livre livre_test1 = Livre("AAA", "livre test aaa", 1999, 10, 3);
	Livre livre_test2 = Livre("BBB", "livre test bbb", 1999, 10, 3);
	Livre livre_test3 = livre_test1;
	Livre livre_test4 = livre_test3;
	livre_test4.modifierTitre("livre test ccc");

	cout << "________________________________________________" << endl;
	cout << "TEST OPERATEURS" << endl << endl;
	cout << "matricule == abonne : \t" << ("1839456" == john) << " --- "<< ("1839456" == martin) << endl;
	cout << "abonne == matricule : \t" << (john == "1839456") << " --- " << (martin == "1839456") << endl;
	cout << "abonne == abonne : \t" << (john == john2) << " --- " << (john == martin) << endl;
	
	cout << "cote == livre : \t" << ("AAA" == livre_test1) << " --- " << ("BBB" == livre_test1) << endl;
	cout << "livre == cote : \t" << (livre_test1 == "AAA") << " --- " << (livre_test1 == "BBB") << endl;
	cout << "livre == livre : \t" << (livre_test1 == livre_test3) << " --- " << (livre_test1 == livre_test2) << endl;

	cout << "livre a < livre b : \t" << (livre_test1 < livre_test2) << " --- " << (livre_test2 < livre_test1) << endl;
	cout << "livre b < livre c : \t" << (livre_test2 < livre_test4) << " --- " << (livre_test4 < livre_test2) << endl;

	// Utiliser l'opérateur >> de Bibliothèque afin d'entrer des mots pour
	// trouver tous les livres correspondants
	
	// Rechercher mot, 1er test
	cout << "________________________________________________" << endl;
	cout << "ENTREZ UN MOT A RECHERCHER (1er test)" << endl << endl;
	cin >> biblio;

	// Rechercher mot, 2e test
	cout << "________________________________________________" << endl;
	cout << "ENTREZ UN MOT A RECHERCHER (2e test)" << endl << endl;
	cin >> biblio;
	
	// Rechercher mot, 3e test
	cout << "________________________________________________" << endl;
	cout << "ENTREZ UN MOT A RECHERCHER (3e test)" << endl << endl;
	cin >> biblio;
	
	/*******************************/
	/*       FIN DES TESTS         */
	/*******************************/

	// Liberer les ressources si il le faut

	system("pause");
	return 0;
}
Ejemplo n.º 4
0
int main(int argc, char *argv[])
{
    // Creation des abonnes, des etudiants et des professeurs
    Abonne john("1839456", "Doe", "John", 23);
    Abonne nicolas("1630236", "Gagnon", "Nicolas", 8);
    Abonne martin("1269348", "Tremblay", "Martin", 18);
    Etudiant harry("1782965", "Potter", "Harry", 21, "Pourdlard");
    Etudiant hermione("1876458", "Granger", "Hermione", 20, "Pourdlard");
    EtudiantBaccalaureat tony("1865487", "Stark", "Tony", 42);
    Professeur albus("p878546", "Dumbledore", "Albus", 78, { "Polytechnique", "UdM", "Poudlard" });

    // Création des livres et DVD
    Livre livre1("BD302", "Harry Potter et le prisionier d'Azkaban", 1999, 3, 17, "JK ROWLING", "Science-Fiction");
    Livre livre2("QA204", "Calcul a plusieurs variables partie 2", 2011, 3, 1, "Cay HORTSTMANN", "Informatique");
    Livre livre3("GA403", "Big C++", 2009, 8, 2, "Cay HORTSTMANN", "Informatique");
    Livre livre4("AC409", "Le chateau d'Ortrante", 1764, 16, 2, "Cay HORTSTMANN", "Informatique");
    Livre livre5("QA203", "Calcul a plusieurs variables partie 1", 2011, 3, 1, "Cay HORTSTMANN", "Informatique");
    Livre livre6("GA404", "Big C++", 2016, 8, 2, "Cay HORTSTMANN", "Informatique");

    Dvd dvd1("D8403", "Rush Hour", 1998, 2, 13, "Al", { "Jackie Chan", "Chris Tucker" });
    Dvd dvd2("D7203", "Avenger", 2012, 3, 5, "Nick Fury", { "Iron Man", "Thor","Hulk", "Captain America", "Black Window" });

    // Creation de la bibliotheque, et ajout des elements
    Bibliotheque biblio;

    //Ajout des Abonnes
    biblio += &john;	biblio += &nicolas;	biblio += &martin;
    biblio += &harry;	biblio += &tony;	biblio += &hermione;
    biblio += &albus;

    // Ajout des livres et DVD
    biblio += &livre1;	biblio += &livre2;	biblio += &livre3;
    biblio += &livre4;	biblio += &livre5;	biblio += &livre6;
    biblio += &dvd1;	biblio += &dvd2;

    // Creation des objets numeriques et ajout à la bibliotheque
    LivreNumerique livNum1(FORMAT_EPUB, 1270, "vvv.3Mousquetaire.com", "NUM392",
                           "Les 3 mousquetaires", 1844, 11, 5, "A. Dumas", "Roman");
    LivreNumerique livNum2(FORMAT_EPUB, 1270, "vvv.3Mousquetaire.com", "NUM393",
                           "Les 3 mousquetaires 2", 1846, 11, 5, "A. Dumas", "Roman");
    biblio += &livNum1;
    biblio += &livNum2;

    // Création du vecteur pour effectuer les emprunts
    vector<pair<string,string> > vecEmp {make_pair("1630236","BD302"), make_pair("1630236","D7203"),
                                         make_pair("1782965","AC409"), make_pair("1782965","BD302"),
                                         make_pair("1782965","D7203"), make_pair("1782965","QA203"),
                                         make_pair("1865487","AC409"), make_pair("1865487","BD302"),
                                         make_pair("1865487","D7203"), make_pair("1865487","QA204"),
                                         make_pair("1865487","NUM392"), make_pair("p878546","BD302"),
                                         make_pair("p878546","D7203"), make_pair("p878546","NUM392")};
	// Effectue les emprunts
    for (size_t i = 0; i < vecEmp.size(); i++) {
        try {
            biblio.emprunter(vecEmp[i].first, vecEmp[i].second, 160204);
        } catch (exception&) {}
    }


    QApplication a(argc, argv);
    MainWindow w(&biblio);
    w.show();

    return a.exec();
}