static void Main(string[] args) { #region CHARGER DONNEES List <Livre> collectionLivres = Persistance.ChargeLivre(); List <Adherent> collectionAdherents = Persistance.ChargeAdherent(); List <Emprunt> collectionEmprunts = Persistance.ChargeEmprunt(); #endregion #region VARIABLES ==> Utilisées pour la structure WHILE (menu) int choix; bool sortir = false; #endregion #region VARIABLES ==> Utilisées pour stocker les données métiers string numAdherent, nomAdherent, prenomAdherent, emailAdherent, adresseAdherent, villeAdherent, codePostalAdherent; string titreLivre, numLivre, auteur, isbn; string dateRetour; Livre unLivre = null; Adherent unAdherent = null; #endregion #region VARIABLES (dénombrements et structures itératives) int nbElement, compteur = 0, test; #endregion #region VARIABLES DIVERSES bool supprimer = false, trouver = false; #endregion do { Console.Clear(); textMillieu("------------------------------------------------------------------------"); textMillieu("0- Sortir du programme"); textMillieu("1- Ajouter un Livre"); textMillieu("2- Ajouter un adhérent"); textMillieu("3- Afficher la liste des adhérents"); textMillieu("4- Afficher la liste des livres"); textMillieu("5- Supprimer un adhérent"); textMillieu("6- Supprimer un livre"); textMillieu("7- Ajouter un emprunt"); textMillieu("8- Liste des emprunts"); textMillieu("9- Enregister le retour d'un livre"); textMillieu("------------------------------------------------------------------------"); Console.WriteLine(""); choix = Convert.ToInt32(Console.ReadLine()); switch (choix) { case 1: Console.Clear(); textMillieu("------------------------------------------------------------------------"); textMillieu("Le numéro de l'ouvrage :"); numLivre = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Titre de l'ouvrage :"); titreLivre = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Nom de l'auteur :"); auteur = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("ISBN :"); isbn = Console.ReadLine(); unLivre = new Livre(numLivre, titreLivre, auteur, isbn); collectionLivres.Add(unLivre); /* A compléter * * Ecrire les instructions qui : * * permettent à l'utilisateur de saisir le numéro, le titre, le nom de l'auteur et l'ISBN d'un livre * initialise une variable de type livre à partir des valeurs saisies * ajoute le livre à la collection de livres * */ break; case 2: Console.Clear(); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le numéro du nouvel adhérent"); numAdherent = Console.ReadLine(); int numeroAdherent = Convert.ToInt16(numAdherent); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le nom du nouvel adhérent"); nomAdherent = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le prénom du nouvel adhérent"); prenomAdherent = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir l'adresse email du nouvel adhérent"); emailAdherent = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir l'adresse postale du nouvel adhérent"); adresseAdherent = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir la ville de résidence du nouvel adhérent"); villeAdherent = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le code postal de résidence du nouvel adhérent"); codePostalAdherent = Console.ReadLine(); Adherent nouveauAdherent = new Adherent(numeroAdherent, nomAdherent, prenomAdherent, emailAdherent, adresseAdherent, villeAdherent, codePostalAdherent); collectionAdherents.Add(nouveauAdherent); /* A compléter * * Ecrire les instructions qui : * initialise une variable de type Adhérent à partir des valeurs saisies * ajoute l'adhérent (la variable adhérent !) à la collection d'adhérents * */ break; case 3: Console.Clear(); test = collectionAdherents.Count; if (test == 0) { Console.WriteLine("Aucun adherent n'est référencé"); Console.ReadKey(); break; } else { Console.WriteLine("Num Adherent [Nom Adherent] [Prenom Adherent] [Email Adherent] [Adresse Adherent] [Ville Adherent] [Code Postal Adherent]"); foreach (Adherent adherentsCourant in collectionAdherents) { Console.WriteLine(); Console.Write(adherentsCourant.NumeroAdherent); Console.Write(" [ {0} ]", adherentsCourant.NomAdherent); Console.Write(" [ {0} ]", adherentsCourant.PrenomAdherent); Console.Write(" [ {0} ]", adherentsCourant.EmailAdherent); Console.Write(" [ {0} ]", adherentsCourant.AdresseAdherent); Console.Write(" [ {0} ]", adherentsCourant.VilleAdherent); Console.Write(" [ {0} ]", adherentsCourant.CodePostalAdherent); Console.WriteLine(); } } Console.ReadKey(); /* A compléter * * Ecrire les instructions qui : * parcours la collection d'adhérents et affiche à chaque itération, les informations de l'adhérents courant * */ break; case 4: /* * Modifier le bloc d'instruction ci-dessous comme suit : * Si aucun livre n'est référencé, le programme en informe l'utilisateur * dans le cas contraire elle affiche la collection de livres * */ Console.Clear(); test = collectionLivres.Count; if (test == 0) { textMillieu("------------------------------------------------------------------------"); textMillieu("Aucun livre n'est référencé."); textMillieu("------------------------------------------------------------------------"); Console.ReadKey(); break; } else { Console.WriteLine("[Num livre] [Titre livre] [Auteur livre] [ISBN]"); foreach (Livre livreCourant in collectionLivres) { Console.WriteLine(); Console.Write(livreCourant.NumLivre); Console.Write(" [ {0} ]", livreCourant.TitreLivre); Console.Write(" [ {0} ]", livreCourant.Auteur); Console.Write(" [ {0} ]", livreCourant.Isbn); Console.WriteLine(); } } Console.ReadKey(); break; case 5: Console.Clear(); #region Affichage adherents test = collectionAdherents.Count; if (test == 0) { textMillieu("------------------------------------------------------------------------"); textMillieu("Aucun adherent n'est référencé"); textMillieu("------------------------------------------------------------------------"); Console.ReadKey(); break; } else { Console.WriteLine("Num Adherent [Nom Adherent] [Prenom Adherent] [Email Adherent] [Adresse Adherent] [Ville Adherent] [Code Postal Adherent]"); foreach (Adherent adherentsCourant in collectionAdherents) { Console.WriteLine(); Console.Write(adherentsCourant.NumeroAdherent); Console.Write(" [ {0} ]", adherentsCourant.NomAdherent); Console.Write(" [ {0} ]", adherentsCourant.PrenomAdherent); Console.Write(" [ {0} ]", adherentsCourant.EmailAdherent); Console.Write(" [ {0} ]", adherentsCourant.AdresseAdherent); Console.Write(" [ {0} ]", adherentsCourant.VilleAdherent); Console.Write(" [ {0} ]", adherentsCourant.CodePostalAdherent); Console.WriteLine(); } } #endregion textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le nom de l'adhérent à supprimer"); textMillieu("------------------------------------------------------------------------"); nomAdherent = Console.ReadLine(); /* A compléter * * Ecrire les instructions qui : * parcours la collection d'adhérents et * Supprime l'adhérent lorsque le nom de l'adhérent parcouru (courant) est équivalent à celui saisi par l'utilisateur * Rappel : Une collection (LIST) parcouru à l'aide d'un FOREACH est en lecture seule. * La méthode Remove de la classe LIST peut etre utilisée à condition de sortir prématurément * du parcours à l'aide d'une BREAK * * Vous proposerez deux parcours (itération) différents, l'un avec la structure foreach, l'autre avec la structure While */ Console.WriteLine("Méthode Foreach ou While:"); switch (Console.ReadLine()) { case "Foreach": compteur = 0; supprimer = false; foreach (Adherent adherentCourant in collectionAdherents) { if (adherentCourant.NomAdherent == nomAdherent) { supprimer = true; collectionAdherents.RemoveAt(compteur); Console.WriteLine("{0} a été supprimer avec la fonction foreach.", nomAdherent); Console.ReadKey(); break; } else { compteur++; } } break; case "While": compteur = 0; supprimer = false; while (compteur < collectionAdherents.Count) { if (collectionAdherents[compteur].NomAdherent == nomAdherent) { supprimer = true; collectionAdherents.RemoveAt(compteur); Console.WriteLine("{0} a été supprimer avec la fonction while.", nomAdherent); break; } compteur++; } break; } if (supprimer == false) { Console.WriteLine("Le livre rechrché n'est pas référencés"); } Console.ReadKey(); break; case 6: Console.Clear(); #region Affichage livre test = collectionLivres.Count; if (test == 0) { textMillieu("------------------------------------------------------------------------"); textMillieu("Aucun livre n'est référencé."); textMillieu("------------------------------------------------------------------------"); Console.ReadKey(); break; } else { Console.WriteLine("[Num livre] [Titre livre] [Auteur livre] [ISBN]"); foreach (Livre livreCourant in collectionLivres) { Console.WriteLine(); Console.Write(livreCourant.NumLivre); Console.Write(" [ {0} ]", livreCourant.TitreLivre); Console.Write(" [ {0} ]", livreCourant.Auteur); Console.Write(" [ {0} ]", livreCourant.Isbn); Console.WriteLine(); } } #endregion textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le numéro ISBN du livre à supprimer"); isbn = Console.ReadLine(); nbElement = collectionLivres.Count; //nbElement contient le nombre de livres présent dans la collection //compteur = 0;// /*A compléter * * Ecrire les instructions qui: * * Parcours à l'aide d'une boucle While la collection de livres. * recherche l'indice correspondant à l'emplacement ou se trouve le livre dans la collection * supprime l'élément en s'appuyant sur la méthode "removeAt" de la classe LIST * * L'application affichera un message de confirmation * ou un message indiquant l'absence du livre recherché dans la collection de livres référencés. * */ supprimer = false; for (int i = 0; i < nbElement; i++) { if (collectionLivres[i].Isbn == isbn) { supprimer = true; collectionLivres.RemoveAt(i); Console.WriteLine("ISBN {0} a été supprimer.", isbn); break; } } if (supprimer == false) { Console.WriteLine("Le livre rechrché n'est pas référencés"); } Console.ReadKey(); break; case 7: Console.Clear(); /*A compléter * * Ecrire les instructions qui: * * 1) Affiche la collection de livres référencés * 2) Permet la saisie d'un numéro de livre [correspond à la sélection d'un livre] * ou S pour sortir du traitement en cours [Utilisez le break pour sortir du case en cours] * 3) Le systeme recherche "le livre" à partir de la valeur précédement saisie * Si le numéro de livre est erroné, le "case" 7 est relancé [utilisez l'instruction goto] * dans le cas contraire il est stocké dans la variable "unLivre" de type Livre * * 4)Effectuer le traitement similaire permettant de sélectionner un adhérent * Celui-ci sera stocké dans la variable "unAdherent" de type Adherent * * */ #region Affichage livre test = collectionLivres.Count; if (test == 0) { Console.WriteLine("Aucun livre n'est référencé."); Console.ReadKey(); break; } else { Console.WriteLine("[Num livre] [Titre livre] [Auteur livre] [ISBN]"); foreach (Livre livreCourant in collectionLivres) { Console.WriteLine(); Console.Write(livreCourant.NumLivre); Console.Write(" [ {0} ]", livreCourant.TitreLivre); Console.Write(" [ {0} ]", livreCourant.Auteur); Console.Write(" [ {0} ]", livreCourant.Isbn); Console.WriteLine(); } } #endregion #region saisie livre trouver = false; Console.WriteLine("Saisir le numéro de livre (S pour sortir du traitement)"); numLivre = Console.ReadLine(); if (numLivre == "s" || numLivre == "S") { Console.WriteLine("Sortie du traitement."); Console.ReadKey(); break; } foreach (Livre livreCourant in collectionLivres) { if (Convert.ToString(livreCourant.NumLivre) == numLivre) { trouver = true; unLivre = livreCourant; } } if (trouver == false) { Console.WriteLine("Le numéro de livre est erroné."); Console.ReadKey(); goto case 7; } #endregion #region Affichage adherent test = collectionAdherents.Count; if (test == 0) { Console.WriteLine("Aucun adherent n'est référencé"); Console.ReadKey(); break; } else { Console.WriteLine("Num Adherent [Nom Adherent] [Prenom Adherent] [Email Adherent] [Adresse Adherent] [Ville Adherent] [Code Postal Adherent]"); foreach (Adherent adherentsCourant in collectionAdherents) { Console.WriteLine(); Console.Write(adherentsCourant.NumeroAdherent); Console.Write(" [ {0} ]", adherentsCourant.NomAdherent); Console.Write(" [ {0} ]", adherentsCourant.PrenomAdherent); Console.Write(" [ {0} ]", adherentsCourant.EmailAdherent); Console.Write(" [ {0} ]", adherentsCourant.AdresseAdherent); Console.Write(" [ {0} ]", adherentsCourant.VilleAdherent); Console.Write(" [ {0} ]", adherentsCourant.CodePostalAdherent); Console.WriteLine(); } } #endregion #region saisie adherent trouver = false; Console.WriteLine("Saisir le numéro d'adherent."); numAdherent = Console.ReadLine(); if (numAdherent == "s" || numAdherent == "S") { Console.WriteLine("Sortie du traitement."); Console.ReadKey(); break; } foreach (Adherent adherentCourant in collectionAdherents) { if (Convert.ToString(adherentCourant.NumeroAdherent) == numAdherent) { trouver = true; unAdherent = adherentCourant; } } if (trouver == false) { Console.WriteLine("Le numéro d'adherent est erroné."); Console.ReadKey(); goto case 7; } #endregion Console.WriteLine("Saisir la date de retour prévue"); DateTime dt = Convert.ToDateTime(Console.ReadLine()); Emprunt nouvelleEmprunt = new Emprunt(unAdherent, unLivre, dt); collectionEmprunts.Add(nouvelleEmprunt); /*A compléter * * Ecrire les instructions qui: * * initialise un objet de type emprunt à partir des variables objets Livre (unLivre) * et Adherent (unAdherent) précédemment valorisées ainsi que la date d'emprunt stockée * dans une structure (similaire à un objet) de type dateTime (dt) * * Ajoute l'emprunt à la collection d'emprunt * * */ break; case 8: Console.Clear(); foreach (Emprunt empruntCourant in collectionEmprunts) { Console.WriteLine("Date de l'emprunt : {0} \nDate de retour prévue {1} \nAdhérent : {2} \nLivre {3} ", empruntCourant.DateEmprunt.ToString(), empruntCourant.DateRetour.ToString(), empruntCourant.UnAdherent.NomAdherent, empruntCourant.UnLivre.TitreLivre); } Console.ReadKey(); break; case 9: /*A compléter * * Ecrire les instructions qui: * A partir d'un numéro d'adhérent et d'un numéro de livre, recherche l'emprunt correspondant * et enregistre son retour. * * */ textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le numéro d'adhérent:"); numAdherent = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); textMillieu("------------------------------------------------------------------------"); textMillieu("Saisir le numéro de livre:"); numLivre = Console.ReadLine(); textMillieu("------------------------------------------------------------------------"); foreach (Emprunt item in collectionEmprunts) { if (Convert.ToString(item.UnAdherent.NumeroAdherent) == numAdherent && Convert.ToString(item.UnLivre.NumLivre) == numLivre) { item.RetourEmprunt(); } } break; case 0: #region SAUVEGARDE DES DONNEES Persistance.Sauvegarde(collectionLivres); Persistance.Sauvegarde(collectionEmprunts); Persistance.Sauvegarde(collectionAdherents); #endregion sortir = true; break; default: sortir = true; break; } } while (!sortir); }