Morou
-
22 avril 2009 à 22:25
Nabla's
Messages postés18203Date d'inscriptionmercredi 4 juin 2008StatutContributeurDernière intervention28 avril 2014
-
22 avril 2009 à 22:35
Bonjour à tous,
Je suis un étudiant de la MIAGE II. Je voudrai comprendre le langage C++.Ainsi je propose ce TP pour que si possible avoir le code source. J'aimerai ça sous DEV-C++ si possible.
Merci!
Sujet de l’étude
Nous allons dans le cadre de ce projet nous intéresser au développement d’une application
devant nous permettre de gérer une médiathèque. La médiathèque à laquelle nous
allons nous intéresser sera simplifiée afin de rendre l’étude réalisable dans les temps.
Nous considérerons, afin de simplifier notre analyse, que la bibliothécaire possède des
compétences en informatique et que cela ne lui pose pas de difficultés que l’application
soit développée en mode terminal. L’application sera développée en mode mono-utilisateur,
cela signifie qu’un seul utilisateur peut utiliser l’application à un instant donné.
L’application va devoir permettre de gérer les différentes ressources disponibles dans une
médiathèque classique : des livres, des CD, des DVD, des revues et des vidéos VHS. L’ensemble
de ces ressources sera bien évidement renseigné à l’aide des informations élémentaires
liées à chaque type de ressources : titre, auteur, durée, nombre de pages, etc.
L’application devra posséder au minimum les fonctionnalités suivantes :
1. Permettre l’ajout et la suppression de médias dans la bibliothèque,
2. Permettre la consultation des médias (liste, informations détaillées),
3. Permettre de sauvegarder, charger une bibliothèque à partir d’un fichier,
4. Permettre de rechercher un média à partir d’une information (nom, titre, etc. ), les recherches
pourront être incrémentales,
5. Permettre de réserver, emprunter ou rendre un média.
La liste des besoins exprimés ci-dessus n’est pas exhaustive. Une définition plus fine des
besoins sera exprimée dans la suite du sujet dans la partie nommée “cahier des charges”.
Les outils informatiques
Pour réaliser l’ensemble du projet vous aurez normalement besoin d’un éditeur de texte
type Emacs/VI et d’un compilateur C++ (GCC dans notre cas). Vous aurez aussi à votre
disposition un outil plus sophistiqué, Eclipse (avec le plugin CDT) pour ceux qui le désirent.
L’ensemble de ces outils est gratuit, vous pouvez donc les récupérer pour les installer
chez vous pour avancer plus rapidement le projet.
Pour les plus téméraires, vous pouvez bien évidement choisir d’autres environnements de
développement disponibles sous Windows, Linux ou MacOS. Je vous déconseille toutefois
l’utilisation de l’outil Visual Studio de Microsoft qui dans certains cas ne respecte pas la
norme C++ et vous obligera à intégrer dans vos codes sources des déclarations non
portables...
Projet sur la programmation orientée objets appliquée au langage C++
Bertrand LE GAL
Le cahier des charges
Comme nous l’avons déjà précisé nous allons nous attacher à développer une application
permettant de gérer une médiathèque. Cette application sera développée en mode monoutilisateur
impliquant qu’une seule personne peut utiliser l’outil à un instant donné.
Nous souhaitons que l’application permette de mémoriser toutes les ressources disponibles
dans une médiathèque classique. Pour cela nous allons devoir mémoriser les informations
issues de différents types de supports : livres, revues, CD, DVD, VHS, etc.
L’ensemble de ces différentes ressources sont décrites à l’aide d’informations différentes
qui sont pour partie propres à leur type. Afin de vous aider, j’en ai référencé quelques
unes :
- Des livres : un livre est écrit par un auteur durant une année précise, il est composé
de N pages et appartient à une certaine collection. De plus un livre possède un titre
et il peut posséder un résumé.
- Des revues : une revue possède les mêmes caractéristiques que les livres sauf qu’elle
possède en plus un éditeur et un ainsi qu’un attribut spécifiant le nombre d’articles
contenus dedans. Pour chaque revue on pourra mémoriser le nom des articles contenus
afin d’autoriser leur indexation.
- Des CD : un CD est un support musical qui possède une durée, un nombre de pistes,
un auteur, une maison de production et un titre.
- Des vidéos VHS : une VHS est un support vidéo qui possède une durée, un auteur, et
une maison de production.
- Des DVD : un DVD est un support vidéo similaire à une VHS sauf qu’il possède en
plus une information spécifiant le nombre de pistes (ou chapitres) qu’il contient.
- Des ressources numériques : une ressource numérique sera pour nous un “simple” fichier.
Un fichier possède un auteur, un type (format PDF, DOC, PPT, etc.), une taille
ainsi qu’un nom et un chemin d’accès (nous supposerons que ces fichiers sont mémorisés
sur un serveur WEB => le chemin sera donc une URL).
Vous devrez dans votre application pouvoir supporter au minimum ces différents types de
ressources avec leurs propriétés respectives. La liste est non exhaustive, vous avez toute
liberté pour rajouter des informations supplémentaires.
Les interactions entre l’homme et la machine seront réalisées mode ligne de commandes
afin de limiter les difficultés... Voici la liste des commandes minimum que devra fournir
votre application :
- BYE : lorsque l’utilisateur lance cette commande, il demande simplement à quitter votre
application. Dans ce cas là, vous devez tout simplement fermer proprement votre
outil (dans le sens destruction des ressources allouées).
- ADD type : cette commande lancera la procédure permettant de créer une nouvelle
ressource en fonction du type spécifié en paramètre.
Projet sur la programmation orientée objets appliquée au langage C++
Bertrand LE GAL
- LOAD filename : cette commande doit permettre à l’utilisateur de charger un fichier
un fichier contenant les ressources disponibles dans la médiathèque. La contenu de
ce fichier viendra remplacer les données actuellement chargées dans l’outil.
- SAVE filename : cette commande permet à l’utilisateur de sauvegarder les données
actuellement dans l’outil dans le fichier dont le nom est spécifié en paramètre. Le
format de sauvegarde des données est laissé à votre discrétion.
- SEARCH chaine : cette fonction permet de rechercher dans la base de données les
documents contenant la chaîne de caractères spécifiée en paramètre. Les résultats
issus de la recherche remplaceront temporairement la base de données courante pour
faire en sorte que si l’utilisateur lance une seconde recherche elle ne s’appliquera que
sur les résultats de la première recherche (recherche incrémentale).
- CLEAR : cette commande permet de réinitialiser la base de données courante après
une recherche. Si l’utilisateur emploie cette commande après avoir effectué une recherche
alors, les résultats sont détruits et la future recherche s’appliquera à l’ensemble
des ressources disponibles dans la médiathèque.
- LIST : cette fonction permet d’afficher de manière compacte les données contenues
dans la base de données. Si une recherche a été lancée, alors cette commande ne
doit afficher que les résultats de la recherche précédemment lancée.
- SHOW id : cette fonction doit permettre d’afficher les informations détaillées sur une
ressource précise contenue dans la médiathèque. Le paramètre passé lors de l’appel
de la procédure utilise un identifiant unique que doit posséder toute ressource appartenant
à la médiathèque (identifiant de l’objet par exemple => attribut static).
- DELETE id : cette méthode permet de supprimer une ressource particulière appartenant
à la médiathèque.
- RESET : cette dernière méthode permet de supprimer toutes les ressources contenues
dans la bibliothèque.
L’ensemble de ces commandes doit permettre à l’utilisateur de réaliser les taches décrites
dans le cahier des charges. Vous êtes toutefois libre de rajouter de nouvelles fonctionnalités
à votre gré.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.