Laboratoire en Java Donnez la spécification fonctionnelle et l

Laboratoire en Java
Donnez la spécification fonctionnelle et l’implantation d’une classe « pile » en Java.
Construisez en Java deux applications de la classe « pile » permettant d’exploiter cette classe :
- une application qui calcule la factorielle d’un entier n,
- la construction d’une classe « dossier » :
elle renferme les données suivantes : un numéro de dossier (type int), une priorité
associée au dossier (type float) et une description du dossier (type String) et les
fonctionnalités suivantes : un constructeur sans argument, un constructeur avec 3
paramètres permettant d’initialiser les données membres, des fonctions permettant
d’accéder aux données membres et une fonction d’affichage;
une application qui permet de créer des dossiers, d’empiler des dossiers et de les
traiter.
Note : 1) Vous pouvez omettre la gestion d’erreurs.
2) Vous pouvez conserver dans un même fichier votre application avec l’ensemble
des classes développées.
#include "element_donnee_pile.h"
class pile
{
/* Spécification fonctionnelle de la classe " pile ".
Éléments : Le type de chaque élément de la pile peut être quelconque.
Nous noterons par "element_donnee_pile" le type de chaque
élément.
Structure : Les éléments sont reliés entre eux permettant de déterminer
l'ordre d'arrivée des éléments dans la pile. */
protected:
struct sommet_pile
{
element_donnee_pile element;
struct sommet_pile *suivant;
};
struct sommet_pile * pPile;
public:
void Creer_pile();
/* Permet de créer une pile vide.
Pré - Nil.
Post - La pile existe et est vide.
*/
void Inserer(element_donnee_pile e);
/* Insérer un élément e dans la pile.
Pré - La pile a déjà été créée et n'est pas pleine.
Post - La pile renferme e et l'interprète comme étant
l'élément le plus récent inséré dans la pile. */
void Enlever(element_donnee_pile *pe);
/* Enlever un élément *pe de la pile.
Pré - La pile a déjà été créée et n'est pas vide.
Post - L'élément le plus récent inséré dans la pile est
copié dans *pe; cet élément ne fait plus partie
de la pile. */
bool Pile_vide();
/* Vérifier si la pile est vide ou non.
Pré - La pile a déjà été créée.
Post - Si la pile ne possède aucun élément
alors retourner true
sinon retourner false. */
bool Pile_pleine();
/* Vérifier si la pile est pleine ou non.
Pré - La pile a déjà été créée.
Post - Si la pile a atteint sa capacité maximale
alors retourner vrai
sinon retourner faux. */
void Vider_pile();
/* Vider la pile.
P- La pile a déjà été créée.
Post - La pile est vide.
*/
};
#include <cassert>
#include <iostream.h>
#include "Pile.h"
void pile::Creer_pile()
{
pPile = NULL;
}
void pile::Inserer(element_donnee_pile e)
{
assert(Pile_pleine() != true);
struct sommet_pile *pel = new sommet_pile;
copie_element_donnee_pile(&((*pel).element), e);
(*pel).suivant = pPile;
pPile = pel;
}
void pile::Enlever(element_donnee_pile *pe)
{
assert(Pile_vide() != true);
struct sommet_pile *pel = NULL;
copie_element_donnee_pile(pe, (*pPile).element);
pel = pPile;
pPile = (*pPile).suivant;
delete(pel);
}
bool pile::Pile_vide()
{
if (pPile == NULL ) return true;
else return false;
}
bool pile::Pile_pleine()
{
/* Il n'y a aucune façon de tester si la liste chaînée est
pleine i.e. s'il existe encore de l'espace disponible pour
un autre sommet "sommet_pile".
*/
return false;
}
void pile::Vider_pile()
{
element_donnee_pile el; element_donnee_pile *pel = &el;
while (Pile_vide() == false) Enlever(pel);
}
/* Définition du type de donnée element_donnee_pile */
typedef int element_donnee_pile;
void copie_element_donnee_pile(element_donnee_pile *pe1,
element_donnee_pile e2);
/* Permet de copier e2 dans l'élément pointé par pe1.
Pré - Nil
Post - L'élément pointé par pe1 est initialisé à partir de e2.
*/
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !