Au final, nous sommes arrivés au Modèle Conceptuel de Données suivant (réalisé avec AMC Designor) : Projet AIR France, 22/12/2003 2



Documents pareils
Le langage C. Séance n 4

1.1 L EXPLORATEUR WINDOWS

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

COSWIN MOBILE SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION

- Université Paris V - UFR de Psychologie ASDP4 Info Introduction à Windows

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Comment accéder à d Internet Explorer

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Access 2007 FF Access FR FR Base

Algorithmique avec Algobox

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

PROCÉDURE D AIDE AU PARAMÉTRAGE

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Les structures de données. Rajae El Ouazzani

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Manuel d'installation de GESLAB Client Lourd

La technologie au collège

Assistance à distance sous Windows

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Créer vos données sources avec OpenOffice, adieu Excel

Progression secrétariat

Utilisation du logiciel ModellingSpace

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

TAGREROUT Seyf Allah TMRIM

Installation et utilisation du client FirstClass 11

FAIRE UN PAIEMENT TIPI

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

Importation de fichiers Eagle

G.T.I. Windows V1.1 Guide d Utilisation

Outlook Présentation.

Découvrir la messagerie électronique et communiquer entre collègues. Entrer dans le programme Microsoft Outlook Web Access

Manuel d'utilisation d'apimail V3

Quel que soit L élève - Il est valorisé par l utilisation d un outil technologique haut de gamme - Il peut travailler seul et à son rythme.

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Édu-groupe - Version 4.3

supérieure Vous ne connaissez pas le numéro de version de votre application?

Organiser le disque dur Dossiers Fichiers

Mode Opératoire Windows XP

Tutorial et Guide TeamViewer

Prise en main. Borland C++Builder 6. pour Windows

Google Drive, le cloud de Google

Création d un compte Exchange (Vista / Seven)

Tutoriel Création d une source Cydia et compilation des packages sous Linux

GUIDE D INSTALLATION INTERNET haute vitesse

Utiliser le service de messagerie électronique de Google : gmail (1)

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

MANUEL DE L UTILISATEUR

Module.NET 3 Les Assemblys.NET

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Mon aide mémoire traitement de texte (Microsoft Word)

MANUEL. de l application «CdC Online» pour Windows. Table des matières

Installation du logiciel Windows Suivant Démarrer Tous les programmes Démarrer Tous les programmes Marketing Manager Marketing Manager Linux ici Mac

Utilisation du client de messagerie Thunderbird

Créer et modifier un fichier d'importation SAU avec Excel

Informations techniques préparatoires

Logiciel d envois de ing

Procédure d installation de mexi backup

SAUVEGARDER SES DONNEES PERSONNELLES

CREG : versailles.fr/spip.php?article803

DELEGATION ACADEMIQUE AU NUMERIQUE FORMATION ADMINISTRATEUR SCRIBE 2.3 ET CARTABLE EN LIGNE (CEL)

Guide d installation CLX.PayMaker Office (3PC)

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

Les PowerToys pour Windows XP

Tutoriel. Votre site web en 30 minutes

Introduction à Expression Web 2

Guide Expert Comptable Production Coala

INSTALLER LA DERNIERE VERSION DE SECURITOO PC

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Cours 1: Java et les objets

Guide Utilisateur. Edition Mars Agenda. s. Evènements. Synchroniser avec les identités de gestion, de. Messagerie interne. Post-it.

I Pourquoi une messagerie?

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Formation. Module WEB 4.1. Support de cours

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Manuel de formation Spaceman 1 ère journée

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

MERLIN. Guide de démarrage rapide Gestion de projet professionnelle ProjectWizards GmbH, Melle, Allemagne. Tous droits réservés.

UE Programmation Impérative Licence 2ème Année

ACCUEIL / Introduction. Introduction. Présentation de StarBoard Software Éléments de l écran Guide de démarrage rapide

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

GanttProject : guide utilisateur

Publier un Carnet Blanc

Cliquez sur le lien «Vous n'avez pas d'identifiant Adobe?» afin de vous créer un identifiant Adobe.

Manuel d utilisation de l outil collaboratif

Sélection du contrôleur

Depuis votre ordinateur de bureau

Tutorial créer une machine virtuell.doc Page 1/9

Guide de configuration. Logiciel de courriel

Gestionnaire d emploi du temps

Transcription:

ANALYSE ET CONCEPTION Avant de rentrer dans le vif du sujet, " la programmation ", nous avons passer du temps (10 heures environ) à comprendre et analyser le projet. Nous avons donc établit dans un premier temps, une ébauche du modèle conceptuel de données, puis réfléchit aux spécifications relative aux classes. Au final, nous sommes arrivés au Modèle Conceptuel de Données suivant (réalisé avec AMC Designor) : Projet AIR France, 22/12/2003 2

Hall nomhall touteslesportes!!! Toutes les classes héritent de la classe Base Zone nomzone typezone touslesparkings 1,1 Porte nomporte prthall touslesparkings 1,1 1,1 Parking nomparking ptrzone ptrporte touslessejours ParkingAuContact ParkingHorsContact Avion numavion typeavion touslesvols Sejour sera traduit en classe lors de l'implémentation Sejour 1,n 1,1 Vol numvol ptravion ptrsejour heure ville VolArrive VolDepart Modèle conceptuel de données Projet : PCC Modèle : Gestion des parking Auteur : Ma-Ba-Da Version: 2.00 21/03/100 Projet AIR France, 22/12/2003 3

ListeIterator liste courant Utiliser cons Liste Se_Servir struct Cell info suivant Etre_Menbre 1,1 Contenir Base Modèle conceptuel de données Projet : PCC Modèle : Gestion des parking Auteur : Ma-Ba-Da Version: 2.00 21/03/100 Projet AIR France, 22/12/2003 4

Voici les spécifications des classes (réalisées avec Rational Rose) : Vol numvol : string heure : DateHeure ville : string ptravion : Avion* ptrsejour : Sejour* Vol() ~Vol() <<const>> getnumvol() <<const>> getheure() <<const>> getville() <<const>> getptravion() <<virtual>> getlignevol() setptravion() setptravionnull() setptrsejour() setptrsejournull() operator>() operator<=() VolArrive VolArrive() ~VolArrive() <<virtual>> getlignevol() Avion numavion : string typeavion : string touslesvols : Liste Avion() ~Avion() <<const>> getnumavion() <<const>> gettypeavion() majtouslesvols() otervol() affichertouslesvols() Hall nomhall : string touteslesportes : Liste Hall() ~Hall() <<const>> getnomhall() getlignehall() gettouteslesportes() majtouteslesportes() oterporte() affichertouteslesportes() VolDepart VolDepart() ~VolDepart() <<virtual>> getlignevol() Projet AIR France, 22/12/2003 5

Zone nomzone : string typezone : string touslesparkings : Liste Zone() ~Zone() <<const>> getnomzone() <<const>> gettypezone() majtouslesparkings() oterparking() affichertouslesparkings() Sejour ptrvolarrive : VolArrive* ptrvoldepart : VolDepart* ptrparking : Parking* Parking nomparking : string ptrporte : Porte* ptrzone : Zone* Parking() ~Parking() <<const>> getnomparking() <<const>> getptrporte() <<const>> getptrzone() gettouslessejours() setptrporte() setptrportenull() setptrzone() setptrzonenull() operator<=() operator>() majtouslessejours() otersejour() affichertouslessejours() Sejour() Sejour() ~Sejour)() <<const>> getptrvolarrive() <<const>> getptrvoldepart() <<const>> getptrparking() <<const>> getnumvolarrive() <<const>> getnumvoldepart() <<const>> getnomparking() <<const>> getnomporte() <<const>> getnomhall() <<const>> getheurearrivee() <<const>> getheuredepart() <<const>> getdestination() <<const>> getprovenance() <<const>> getlignesejourarrive() <<const>> getlignesejourdepart() setptrparking() setptrparkingnull() <<friend>> operator>>() operator>() operator<=() <<static>> sauvertouteslesinstances() N.b. : bien qu elles ne soient pas présentées ici, les classes ParkingContact et ParkingHorsContact ont été réalisées. Porte nomporte : string ptrhall : Hall* touslesparkings : Liste Porte() ~Porte() <<const>> getnomporte() <<const>> getptrhall() <<const>> gettouslesparkings() setptrhall() setptrhallnull() operator>() operator<=() majtouslesparkings() oterparking() affichertouslesparkings() Projet AIR France, 22/12/2003 6

DEVELOPPEMENT Suivi des conventions de programmation : Le programme est organisé selon l arborescence suivante : Fichier.obj et.exe et point d entrée du programme (méthode OwlMain() de l OWL) Projet Win32 sous DOS utilisé pour le débbogage Fichiers d informations (.txt) Bibliothèques (.cpp) Fichiers d entête (.h) En ce qui concerne les noms utilisés, nous avons toujours imposé le même schéma d écriture dont voici un exemple : - Nom de classe : Hall - Nom de variable : nomhall - Nom de méthode : getnomhall() Algorithme de l affectation des parkings : On affecte les parkings et on crée les vols lors de l initialisation des séjours. DEBUT Initialisation Hall, Porte, Zone, Parking, Avion int nbenregistrement; ouvrir le fichier Séjours.txt ; Projet AIR France, 22/12/2003 7

Si Fichier Sejours.txt est bien ouvert Alors nbenregistrement nombre d enregistrements qui est inscrit en première ligne du fichier ; Pour i de 1 à nbenregistrement avec un pas de 2 Faire Création d un séjour vide ; Séjour vide infos présentes dans Séjours.txt ; //en même temps sont crées les VolArrive et VolDepart //correspondants Fin pour ; //les Séjours sont maintenant crées et classés par heure de //VolArrive fermeture fichier Séjours.txt ; Fin si ; //on crée un liste de Sejour calquée sur touteslesinstances Liste touslessejoursdejaalloues ; TousLesSejoursDejaAlloues touteslesinstances; //variables pour parcourir les donnees ListeIterator parkingiterator(&parking::touteslesinstances); ListeIterator sejouriterator(&touteslesinstances); ListeIterator sejouriteratordejaalloue(&touslessejoursdejaalloues); Sejour * ptrsejourdejaalloue; Sejour * ptrsejouraallouer (Sejour*)sejourIterator++;; Parking * ptrparkingvide (Parking*)parkingIterator++; int nballocation; Duree delai(0,5); //on prévoit un délai de battement de 5 minutes //entre chaque vol //nombre d'allocation de Parking à effectuer nballocation Sejour::nombreInstances(); //création du premier sejour ptrsejouraallouer->setptrparking(ptrparkingvide); //mise à jour des parkings utilisés ptrparkingvide (Parking*)parkingIterator++; Projet AIR France, 22/12/2003 8

//mise à jour de nombre d'allocation restants à faire nballocation--; //allocation des nbenregistrement-1 Sejours restants Pour i de 1 à nballocation Faire //mise à jour des Sejour restants à allouer ptrsejouraallouer (Sejour*)sejourIterator++; //retour en début de liste de Sejour deja alloués sejouriteratordejaalloue.reinit(); //on se place sur le premier Sejour à prendre en compte ptrsejourdejaalloue (Sejour*)sejourIteratorDejaAlloue++; //parcours des Séjours déjà alloués en recherchant un Sejour //dont l'heure de Depart soit < = à l'heure d'arrivée du Sejour à //allouer Tant que le pointeur de séjour n est pas NULL Et que l heure de départ du séjour pointé + le délai est > à l heure d arrivée du séjour à allouer Faire ptrsejourdejaalloue (Sejour*)sejourIteratorDejaAlloue++; Si ptrsejourdejaalloue n est pas NULL Alors on a trouvé un Sejour dont l'heure de Depart est <= à l'heure d'arrivée du Sejour à allouer on affecte donc un sejour à un parking deja utilise Sinon //on met à jour l'indice des sejours déja alloués touslessejoursdejaalloues.oter(ptrsejourdejaalloue); //on affecte un parking non alloue ptrsejouraallouer->setptrparking(ptrparkingvide); FIN. //mise à jour des parkings utilisés ptrparkingvide = (Parking*)parkingIterator++; Fin si; Fin tant que; Fin pour ; Projet AIR France, 22/12/2003 9

Pour vérifier notre affectation des parkings, nous avons crée un méthode permettant d écrire automatiquement dans un fichier la liste des affectations par séjour. En appelant Sejour::sauverToutesLesInstances(); on génère ce fichier (voir annexe). Code Source : cf Listing INTERFACE GRAPHIQUE L OWL (Object Windows Library) est une bibliothèque de classes (équivalente aux MFC de Microsoft) fournie par Borland pour faciliter la création d un logiciel pour MS-Windows. Notamment l ensemble des appels aux API WIN32 sont encapsulés au sein de classes de l OWL facilitant ainsi l accès aux fonctions avancées de l OS tout en programmant en objet. Pour créer une application Windows, les classes minimales à utiliser sont Tapplication (pour créer un programme Windows) et Twindow (pour créer la fenêtre du programme), Dans le projet, voici les classes de l OWL que nous avons utilisées : Classe de l'owl disposant des données et méthodes minimales pour créer un programme Window TApplication Classe de l'owl permettant de créer une fenêtre d'application TWindow Classe créée pour le projet. On l'instancie pour exécuter le programme Windows par TApp.Run() dans OwlMain() TApp TFenApp TListBox 1,1 1,1 Classe créée pour le projet. Elle contiendra les éléments à afficher, la fenêtre d'acceuil, la boite de liste,... TMessageBar TDialog Classe de l'owl permettant de créer une barre d'état Classe de l'owl pour afficher une boite de dialogue Projet AIR France, 22/12/2003 10

Nous avons également utilisé dans notre projet un fichier de ressources. Les ressources Windows sont constitués de l ensemble des éléments graphiques utilisés par le programme. On trouve dans un fichier de ressources des MENU, ICONE, BITMAP, DIALOG, Le principe est de mettre en place l équation Bloc de données + bloc de code = Programme. Le bloc de données contient toutes les ressources de chaîne de l'interface utilisateur mais aucun code. À l'inverse, le bloc de code ne contient que le code de l'application. Fichier.rc Fichiers sources.cpp Compilaton Avec WorkShop Compilatio n fichier.res fichiers compilés.obj Edition des liens Fichier.exe Pour créer notre fichier de ressources resgui.rc, nous avons eu recours au Worshop de Borland : c est un éditeur de ressources qui permet de créer, modifier, visualiser des ressources Windows. Nous l avons utilisé notamment pour créer la fenêtre d accueil. Projet AIR France, 22/12/2003 11

Projet AIR France, 22/12/2003 12

ANNEXES On présente en annexes le fichier généré par notre application lors de l affectation des parkings aux séjours puis le code source du programme. Projet AIR France, 22/12/2003 13