Gestion aeroport langage C

Fermé
pascal - 2 janv. 2008 à 12:52
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 - 13 avril 2023 à 17:51
Bonjour, je dois programmer pr les cours un logiciel de simulation de la gestion du trafic d 'un aeroport et jsuis un peu perdu. Jvoudrais savoir si y en a bien qui voudrais m aider. Merci d'avance.
A voir également:

13 réponses

jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
2 janv. 2008 à 12:59
salut, ton sujet me rapelle quelque chose.
T'est pas à l'ESTACA apr hasard ??
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
2 janv. 2008 à 13:01
l'an dernier il y eu le meme sujet pour les projets informatiques de 2ième année.
0
salut
non a marne la vallé
tu peux m aider si ca te rappel qq ch ???
0
moi aussi jsuis en deuxieme année cette année
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
2 janv. 2008 à 13:09
j'ai peut etre quelque chose pour toi.
En gros on avais une base de donnée de chaques appareil.
Puis on devait faire des sorties sur excel.
Moi je suis en 2ième année cette année et l'an dernier je n'était qu'en 1ère donc ce n'est pas moi 'a fait ce projet. Par contre je connais bien certains 3ièmes années qui auront suremets le projet. La prochaine fois que je les voit connectés sur msn je te remet ça sur ta page.
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
2 janv. 2008 à 13:16
Juste un truc Pascal tu peut me balancer ton projet de l'an enier stp. Voilà le mien:

#include<conio.h>
#include<stdlib.h>
#include<iostream>
#include<stdio.h>
#include<windows.h>
#include<time.h>

int Representation_Barres_Regime(int); // utilisée pour l'affichage des batons représentant le régime
int evolutionregime(int,int,int,int); // utilisé pour le calcul du régime : fonction IMPORTANTISSIME
double Diminution_Progressive_Vitesse(double); // utilisée pour faire descendre progressivement la vitsse
void Color(int,int); // utilisée pour mettre des couleurs
int limiteur_de_vitesse(int,int,int,int); // utilisée pour le limitateur de vitesse à 130km/h
void gotoxy(int x,int y);

/****************************** PARTIE MAIN ************************************************************/

int main()
{
int baton; // Les déclarations
int PositionPedale=1;
int rapport=1;
double tab_coefficients_droite_D[7]={0,0.00666,0.0173,0.0250,0.0317,0.0390,0.0467};
double tab_coefficients_droite_M[6]={0.00666,0.0174,0.0250,0.0320,0.0365,0.0462};
double tab_origine_droite_D[7]={0,3.3333,-4.3333,0.0000,3.3333,4.0000,3.3333};
double tab_origine_droite_M[6]={3.3333,-4.3333,0.0000,3.3333,4.0000,3.3333};
double tab_regimeminD[7]={1000,1000,1720,1760,1750,1760,1800};
double tab_regimemaxD[7]={4000,3750,3000,2500,2350,2240,3500};
double Vitesse=0;
char touche;
int PositionLevier=1;
int regime=1000;
bool running=true;
bool erreur1=0;
bool limiteur=0;
int nb_barres=5;int i=1;
while (running)
{
// programme affichage heure
char horloge[128];
_tzset();
_strtime(horloge);
// programme prise en compte des touches
system("cls");
if (kbhit())
touche=getch();
switch (touche)
{
case '+' :
{
if (PositionPedale>=7)
PositionPedale=7;
else
PositionPedale=PositionPedale+1;
touche=0;
}break;
case '-' :
{
if (PositionPedale<=1)
PositionPedale=1;
else
PositionPedale=PositionPedale-1;
touche=0;
}break;
case ' ' : // le limitateur
{
if(limiteur==1)
limiteur=0;
else
limiteur=1;
touche=0;
}break;
case 80 : //flèche du bas : "baisser" la boite
{
if (erreur1=1)
erreur1=0;
if (PositionLevier==1 || PositionLevier==3)
regime=1000;
if (PositionLevier==3 && Vitesse!=0)
{
erreur1=1;
PositionLevier=PositionLevier-1;
}
else
erreur1=0;
if (PositionLevier<5)
PositionLevier=PositionLevier+1;
if (PositionLevier==6)
{
rapport=rapport-1;touche=0;
regime=(Vitesse-tab_origine_droite_M[rapport-1])/(tab_coefficients_droite_M[rapport-1]);
}touche=0;
}break;
case 72 : //flèche du haut : "monter" la boite
{
if (PositionLevier<=1)
PositionLevier=1;
else
{
if (PositionLevier<=5)
{
PositionLevier=PositionLevier-1;
if (PositionLevier==2)
regime=1000;
if (PositionLevier==2 && Vitesse!=0)
{
erreur1=1;
PositionLevier=PositionLevier+1;
}
else
erreur1=0;
touche=0;
}
if (PositionLevier==6)
{
if (rapport<6)
rapport=rapport+1;
regime=(Vitesse-tab_origine_droite_M[rapport-1])/(tab_coefficients_droite_M[rapport-1]);
touche=0;
}
}
}break;
case 75 : //flèche de gauche : repasser en mode D
{
if (PositionLevier==6)
PositionLevier=4;
}
break;
case 77 : //flèche de doite : passer en M
{
if (PositionLevier==4)
PositionLevier=6;
}break;
case 27 : running=false;break;
default : break;
}
switch (PositionLevier) // on étudie içi la position de la boite (touts les paramètres dépendent du chois de la boite, c'est pourquoi on fait un switch)
{
case 1:
{
rapport=0; // en P, le rapport est 0
regime=evolutionregime(PositionPedale,regime,PositionLevier,rapport); // le conducteur peut jouer avec le régime
Vitesse=Diminution_Progressive_Vitesse(Vitesse); // d'une importance minime, sert seulement à faire diminuer progressivement la vitesse.
}break;
case 2 :
{
rapport=1; // en R, on se base sur le rapport 1
regime=evolutionregime(PositionPedale,regime,PositionLevier,rapport); // le régime varie et est calculé par la fonction evolutionregime
Vitesse=regime*(tab_coefficients_droite_D[rapport])+tab_origine_droite_D[rapport]; // la vitesse qui est fonction du regime nottement est calculé içi.
}break;
case 3:
{
rapport=0; // en N, le rapport est 0
regime=evolutionregime(PositionPedale,regime,PositionLevier,rapport); // le conducteur peut jouer avec le régime
Vitesse=Diminution_Progressive_Vitesse(Vitesse); // d'une importance minime, sert seulement à faire diminuer progressivement la vitesse.
}break;
default : double tab_coefficients_droite_D[6]={0.00666,0.0173,0.0250,0.0317,0.0390,0.0467}; // ce default équivaut au modes 4, 5 et 6.
double tab_origine_droite_D[6]={3.3333,-4.3333,0.0000,3.3333,4.0000,3.3333};
double tab_regimeminD[6]={1000,1720,1760,1750,1760,1800};
double tab_regimemaxD[6]={3750,3000,2500,2350,2240,3500};
// Partie IMPORTANTISSIME : pour éviter de créer 3 tableaux et d'en apeller donc 3 selon les cas (boite D,S,M), on met le contenu du tableau qu'on aura à utiliser dans un tableau qui servira de base pour la suite du prg (on a choisit D car il se trouve juste après le N)
switch (PositionLevier)
{
case 5://S / Le contenu du tableau D est remplacé par celui de S
{
tab_coefficients_droite_D[0]=0.00666;tab_coefficients_droite_D[1]=0.0167;tab_coefficients_droite_D[2]=0.0250;tab_coefficients_droite_D[3]=0.0320;tab_coefficients_droite_D[4]=0.0380;tab_coefficients_droite_D[5]=0.0462;
tab_origine_droite_D[0]=3.3333;tab_origine_droite_D[1]=-3.700;tab_origine_droite_D[2]=0.0000;tab_origine_droite_D[3]=6.0000;tab_origine_droite_D[4]=5.500;tab_origine_droite_D[5]=3.8000;
tab_regimeminD[0]=1000;tab_regimeminD[1]=1550;tab_regimeminD[2]=1850;tab_regimeminD[3]=2250;tab_regimeminD[4]=2400;tab_regimeminD[5]=2450;
tab_regimemaxD[0]=3100;tab_regimemaxD[1]=3175;tab_regimemaxD[2]=3125;tab_regimemaxD[3]=3100;tab_regimemaxD[4]=3075;tab_regimemaxD[5]=3500;
}break;
case 6://M / Le contenu du tableau D est remplacé par celui de M
{
tab_coefficients_droite_D[0]=0.00666;tab_coefficients_droite_D[1]=0.0167;tab_coefficients_droite_D[2]=0.0250;tab_coefficients_droite_D[3]=0.0320;tab_coefficients_droite_D[4]=0.0365;tab_coefficients_droite_D[5]=0.0462;
tab_origine_droite_D[0]=3.3333;tab_origine_droite_D[1]=-4.3333;tab_origine_droite_D[2]=0.0000;tab_origine_droite_D[3]=3.3333;tab_origine_droite_D[4]=4.0000;tab_origine_droite_D[5]=3.3333;
tab_regimeminD[0]=1000;tab_regimeminD[1]=1250;tab_regimeminD[2]=1270;tab_regimeminD[3]=1300;tab_regimeminD[4]=1400;tab_regimeminD[5]=1500;
tab_regimemaxD[0]=3700;tab_regimemaxD[1]=3500;tab_regimemaxD[2]=3400;tab_regimemaxD[3]=3300;tab_regimemaxD[4]=3250;tab_regimemaxD[5]=3500;
}break;
default : if (Vitesse<10) // ce default équivaut au case 4,c'est à dire à D (on ne touche pas au contenu des tableaux, ils restent donc identiques a la déclaration
Vitesse=10;break;
}
if (rapport<1) // pour ne pas arriver sur des rapport <=0, surtout que si on quitte N, on est en 0 donc il faut passer en rapport =1
rapport=1;
regime=evolutionregime(PositionPedale,regime,PositionLevier,rapport); // calcul du régime
if (regime>=tab_regimemaxD[rapport-1]) // si on arrive dans le régime maximun, on passe le rapport et on arrive au régime qui correspont à la vitesse (en km/h) de ce nouveau rapport.
{
rapport=rapport+1;
regime=(Vitesse-tab_origine_droite_D[rapport-1])/(tab_coefficients_droite_D[rapport-1]);
}
else // meme chose mais pour le cas où on arrive sur le minimun du régime
{
if (regime<=tab_regimeminD[rapport-1])
{
rapport=rapport-1;
if (rapport<1)
rapport=1;
regime=(Vitesse-tab_origine_droite_D[rapport-1])/(tab_coefficients_droite_D[rapport-1]);
}
}
if (rapport>6) // pour ne pas partir sur des rapport>6
{
rapport=6;
regime=tab_regimemaxD[rapport-1];
}
Vitesse=regime*(tab_coefficients_droite_D[rapport-1])+tab_origine_droite_D[rapport-1]; // calcul de la vitesse, fonction du rapport et du regime
}
if (regime<1020 && (PositionPedale==1 || PositionPedale==2) && (PositionLevier!=3) && (PositionLevier!=1)) //Pour avoir un régime "propre" et donc éviter les trucs du genre il s'arrete a 1007 ou oscille entre 1000.
{
regime=1000;
Vitesse=10;
}
if (limiteur==1) //Pour limiter le régime a un seuil max, qui rend la vitesse tout juste inférieure à 130 à cause des radars.
regime=limiteur_de_vitesse(PositionPedale,regime,rapport,PositionLevier);

_sleep(10); // début de la partie affichage : pas trop longue : environ 50 lignes.
switch(PositionLevier)
{
case 1: printf(" >>");Color(15,12);printf("P");Color(15,0);printf("\n |\t\t\t%3.1f\n |\n R\n |\t\t\t%d\n N +\n |\n D--M\n | \t\t\t<%d>\n S -\n\n",Vitesse,regime,rapport);break;
case 2: printf(" P\n |\t\t\t%3.1f\n |\n >>",Vitesse);Color(15,12);printf("R");Color(15,0);printf("\n |\t\t\t%d\n N +\n |\n D--M\n | \t\t\t<%d>\n S -\n\n",regime,rapport);break;
case 3: printf(" P\n |\t\t\t%3.1f\n |\n R\n |\t\t\t%d\n >>",Vitesse,regime);Color(15,12);printf("N");Color(15,0);printf(" +\n |\n D--M\n | \t\t\t<%d>\n S -\n\n",rapport);break;
case 4: printf(" P\n |\t\t\t%3.1f\n |\n R\n |\t\t\t%d\n N +\n |\n >>",Vitesse,regime);Color(15,12);printf("D");Color(15,0);printf("--M\n | \t\t\t<%d>\n S -\n\n",rapport);break;
case 5: printf(" P\n |\t\t\t%3.1f\n |\n R\n |\t\t\t%d\n N +\n |\n D--M\n | \t\t\t<%d>\n >>",Vitesse,regime,rapport);Color(15,12);printf("S");Color(15,0);printf(" -\n\n");break;
case 6: printf(" P\n |\t\t\t%3.1f\n |\n R\n |\t\t\t%d\n N +\n |\n D--",Vitesse,regime);Color(15,12);printf("M");Color(15,0);printf("<<\n | \t\t\t<%d>\n S -\n\n",rapport);break;
}
printf("\n"); // pour afficher la pédale
for(i=1;i<=7;i++)
{
if (i==PositionPedale)
printf("/");
else
printf("-");
}
// affichage des petites barres qui témoignent du régime
baton=Representation_Barres_Regime(regime);
printf("\t\t ");
if (baton<12) // 12 batons équivaut à regime=3000. Donc en dessous de 3000, les batons s'afficent en blanc
{
for(nb_barres=0;nb_barres<baton;nb_barres++)
printf("|");
}
else // à partir de 3000, les barres s'affichent en rouge.
{
printf("||||||||||||");
for(nb_barres=12;nb_barres<baton;nb_barres++)
{
Color(12,0);printf("|");
}
}
Color(15,0);
// Le limiteur
printf("\n\nLimiteur\n ");
if (limiteur==1)
{
Color(15,12);printf("Yes");Color(15,0);printf("|No"); // le yes sera écrit en blanc sur fond rouge, le no en blanc sur fond noir
}
else
{
Color(15,0);printf("Yes|");Color(15,12);printf("No"); // le yes sera écrit en blanc sur fond noir, le no en blanc sur fond rouge
}
Color(15,0);
printf("\t\t\t%s\n____________________________________________________\nMessage :",horloge);
if (erreur1==1)
printf(" maneuvre impossible!\n\t Attendez d'etre a 0 km/h\n");
gotoxy(29,4);printf("T/MN");gotoxy(28,1);printf(" Km/H");gotoxy(1,11);printf("Pedale\t\t 0 1 2 3 4 5");
}
}


///////////////////////////////////////////// Les FONCTIONS ////////////////////////////////////////////////////////////


/*******************************************************************************************
fonction "Representation_Barres_Regime"
La fonction renvoie un nombre qui correspond aux nombre de barres à afficher

entrée :
regime : int

sortie :
standard : int // nombre de barres
*******************************************************************************************/
int Representation_Barres_Regime(int regime)
{
int nb_barres=1;
while(regime)
{
nb_barres=regime/250+1;
return nb_barres;
}
}



/*******************************************************************************************
fonction "evolutionregime"
La fonction renvoie un nombre qui correspond à la valeur du régime avec une incrémentation particulière

entrée :
PositionPedale (entier)
regime (entier)
boite (entier)
rapport (entier)

sortie :
standard : int // nouvelle valeur du régime
*******************************************************************************************/
int evolutionregime(int PositionPedale, int regime, int PositionLevier, int rapport) // fonction à renommer qui s'occupe de calculer le régime pour les boites P N et R ( 94 lignes ça va.)
{
double tab_regimeminD[7]={1000,1000,1720,1760,1750,1760,1800};
double tab_regimemaxD[7]={4000,3750,3000,2500,2350,2240,3500};
double tab_regime_stableD[7]={2425,2300,2280,2100,2050,2000,2000}; //la pedale à 0

switch (PositionLevier)
{
case 5 ://S
{
tab_regimeminD[1]=1000;tab_regimeminD[2]=1550;tab_regimeminD[3]=1850;tab_regimeminD[4]=2250;tab_regimeminD[5]=2400;tab_regimeminD[6]=2450;
tab_regimemaxD[1]=3100;tab_regimemaxD[2]=3175;tab_regimemaxD[3]=3125;tab_regimemaxD[4]=3100;tab_regimemaxD[5]=3075;tab_regimemaxD[6]=3500;
tab_regime_stableD[1]=1950;tab_regime_stableD[2]=2200;tab_regime_stableD[3]=2500;tab_regime_stableD[4]=2650;tab_regime_stableD[5]=2700;tab_regime_stableD[6]=2700;
}break;
case 6 ://M
{
tab_regimeminD[1]=1000;tab_regimeminD[2]=1250;tab_regimeminD[3]=1270;tab_regimeminD[4]=1300;tab_regimeminD[5]=1400;tab_regimeminD[6]=1500;
tab_regimemaxD[1]=3700;tab_regimemaxD[2]=3500;tab_regimemaxD[3]=3400;tab_regimemaxD[4]=3300;tab_regimemaxD[5]=3250;tab_regimemaxD[6]=3500;
tab_regime_stableD[1]=1950;tab_regime_stableD[2]=2240;tab_regime_stableD[3]=2260;tab_regime_stableD[4]=2280;tab_regime_stableD[5]=2280;tab_regime_stableD[6]=2290;
}break;
}
switch (PositionPedale)
{
case 1 :
{
if (regime<(tab_regimeminD[rapport]+20)) // le +20 sert a bien stabiliser le tt a la valeur souhaitée, pareil en case2
regime=(tab_regimeminD[rapport]);
else
regime=regime-20;
}break;
case 2 :
{
if (regime<(tab_regimeminD[rapport])+15)
regime=(tab_regimeminD[rapport]);
else
regime=regime-15;
}break;
case 3 :
{
if (regime<=(tab_regimeminD[rapport]+tab_regime_stableD[rapport])/2)
regime=regime+10;
else
regime=regime-10;
}break;
case 4 :
{
if (regime<=(tab_regime_stableD[rapport]))
regime=regime+5;
else
regime=regime-5;
}break;
case 5 :
{
if (regime<=(tab_regime_stableD[rapport]+tab_regimemaxD[rapport])/2)
regime=regime+10;
else
regime=regime-10;
}break;
case 6 :
{
if (regime>(tab_regimemaxD[rapport])-15)
regime=(tab_regimemaxD[rapport]);
else
regime=regime+15;
}break;
case 7 :
{
if (regime>(tab_regimemaxD[rapport])-20)
regime=(tab_regimemaxD[rapport]);
else
regime=regime+20;
}break;
}
return regime;
}



/*******************************************************************************************
fonction "Diminution_Progressive_Vitesse"
La fonction renvoie la vitesse qui décroit.

entrée :
Vitesse : double

sortie :
standard : double // nouvelle valeur de la vitesse
*******************************************************************************************/
double Diminution_Progressive_Vitesse(double Vitesse) // descente progressive du speed
{
if (Vitesse<0.3) // pour être sure que la vitesse ne passe pas juste en dessous de 0 pendant un instant
Vitesse=0;
else
Vitesse=Vitesse-0.3;
return Vitesse;
}



/*******************************************************************************************
fonction "Color"
La fonction sert à colorer le fond et le texte

entrée :
couleurDuTexte : int
couleurDeFond : int

sortie :
void // couleur à appliquer
*******************************************************************************************/
void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs
{
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}



/*******************************************************************************************
fonction "limiteur_de_vitesse"
La fonction sert à limiter la vitesse juste en dessous de 130.

entrée :
PositionPedale : int
regime : int
rapport : int
boite : int

sortie :
standard : int // retourne le régime convenable pour avoir une vitesse inférieur à 130.
*******************************************************************************************/
int limiteur_de_vitesse(int PositionPedale, int regime,int rapport,int PositionLevier) // fonction réservée au limitateur de vitesse
{
switch (PositionLevier)
{
case 4:
{
if (regime>2692 && PositionPedale>=5 && rapport==6)
{
if (regime>2692)
regime=regime-40;
else
regime=2692;
}
}break;
case 5:
{
if (regime>2717 && PositionPedale>=5 && rapport==6)
{
if (regime>2717)
regime=regime-40;
else
regime=2717;
}
}break;
case 6:
{
if (regime>2722 && PositionPedale>=5 && rapport==6)
{
if (regime>2722)
regime=regime-40;
else
regime=2722;
}
}break;
}
return regime;
}



/*******************************************************************************************
fonction "gotoxy"
Déplace le curseur aux coordonnées fournies

entrée :
a, b : 2entiers : position proposée au curseur.

sortie :
void // nouvelle coordonnée
*******************************************************************************************/
void gotoxy(int x,int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
fflush(stdin);
dwCursorPosition.X=x;
dwCursorPosition.Y=y;
hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
0
l an dernier q t aussi en 1ere année, g programmer le puissance 4
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
2 janv. 2008 à 13:28
Si tu teste c'est une boite de vitesse automatique.
Sinon en ce moment je fait un truc perso pour récupérer les valeurs boursières et les réutiliser ensuites.
0
la je ne l ai pas passe moi ton email et jte l envoie ce soir
0
voila le site ou se trouve mon sujet dis moi si c a peu pres le meme

http://209.85.129.104/search?q=cache:5-uYzxjEY4EJ:www.lri.fr/~fiorenzi/Teaching/L.2.1/projet.ps+gestion+du+trafic+aerien+d%27un+aeroport&hl=fr&ct=clnk&cd=2&gl=fr


merci ;)
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
2 janv. 2008 à 13:39
oui c'est très ressemblant. je te l'enverrai.
++
0
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
7 janv. 2008 à 17:20
salut pascal j'ai eu le programme. C'est un fichier qui comporte plein de programmes en pagaille.
Je t'est mis tout ça sur un site web:
http://jeremieobert.free.fr/
Le dossier s'appelle Jetcad.
Sinon j'attend toujours ton puissance 4 !!!!!! lol
0

salut je n'arrive pas à trouver jetcad 

0
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084 > inou
Modifié le 13 avril 2023 à 18:17

@inou StatutMembreTu réponds à un message posté il y a 15 ans.

Par ailleurs, jerémiethe7 ne fréquente plus le forum CCM depuis 2009 et il est très peu probable qu'il te réponde.

Si tu as un problème ou une question dans le cadre de ton projet en langage C, je t'invite à poster ton propre message sur le forum C, en décrivant ton problème et en postant le cas échéant ton code, en cliquant sur ce lien :

https://forums.commentcamarche.net/forum/c-266/new

avant de poster, tu peux lire ceci et cela.

0
gestion20262439
29 mars 2012 à 19:13
programme c de la gestion d' enregistrement des passagers dans un airport
0