/* Historique: ----------- Module: tp3H05.cpp Auteur: Mohamed Lokbani Version: 1.03 Modifications: 22 février 2003 - M.Lokbani - gcc3.2 + commentaires + getopt Copyright (C) 2003 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- Description: ----------- Ce fichier consititue le programme de simulation. En quelque sorte il est le pilote en charge des commandes de l'avion. Ce pilote peut décider quand et comment activer le "pilote automatique" et avec quels paramètres. Il y a 3 paramètres qui vont affecter le pilote automatique: 1) L'altitude à atteindre (mètres) en phase ascendante (montée): c'est la variable vhaut. 2) La durée de la phase de croisière (T=durée laps de temps): c'est la variable duree. 3) L'altitude à atteindre (mètres) en phase descendante (descente): c'est la variable vbas. Ces 3 paramètres ont été initialisés avec des valeurs par défaut. Vous pouvez quand même modifier une de ces valeurs ou toutes ces valeurs à l'aide des options passées sur la ligne de commande et cela comme suit: si tp3.exe est le programme exécutable alors: tp3.exe -h va afficher un message d'aide. tp3.exe va exécuter le programme avec les paramètres par défaut. vhaut=1000, duree=10 et vbas=50 tp3.exe va exécuter le programme avec les paramètres par défaut. tp3.exe -a 10000 -t 40 -d 0 va exécuter le programme avec les valeurs suivantes: vhaut=10000, duree=40 et vbas=0 tp3.exe -a 5000 -t 30 va exécuter le programme avec les valeurs suivantes: vhaut=10000, duree=40 et vbas=valeur par défaut i.e. 50 tp3.exe -t 20 va exécuter le programme avec les valeurs suivantes: vhaut=valeur par défaut i.e 1000, duree=20 et vbas=valeur par défaut i.e. 50 tp3.exe va exécuter le programme avec les paramètres par défaut. etc. Pour pouvoir passer ces options, nous utilisons une 3e arguments disponibles dans la fonction main ansi que l'utilisation de la fonction getopt. Il faut inclure unistd.h pour pouvoir l'utiliser. */ #include #include #include #include "avion.h" using namespace std; namespace tp3 { int vhaut = 1000; // altitude à atteindre (mètres), phase ascendante (montée) int duree = 10; // la durée de la phase de croisiere (T=durée laps de temps) int vbas = 50; // altitude à atteindre (mètres), phase descendante (descente) string Message = "\nPour avoir de l'aide: -h\nPour modifier l'altitude a atteindre en phase ascendante: -a valeur_int\nPour modifier l'altitude a atteindre en phase descendante: -d valeur_int\nPour modifier la duree de la phase de croisiere: -t valeur_int\n"; static void GetArgs(int argc, char *argv[]); } static void tp3::GetArgs(int argc, char *argv[]) { extern char *optarg; extern int optind; char ch; while ((ch = getopt(argc, argv, "ha:t:d:")) != -1) switch (ch) { case 'h': cout << Message; exit(0); break; case 'a': vhaut = atoi(optarg); break; case 't': duree = atoi(optarg); break; case 'd': vbas = atoi(optarg); break; case '?': cerr << "Option(s) inconnue(s)!\n"<