Procedures C++

Fermé
Utilisateur anonyme - 15 mars 2010 à 12:11
 Utilisateur anonyme - 17 mars 2010 à 09:14
Bonjour,
j'ai un programme qui contient deux tableaux; le premier est celui des vols qui est caracterisé par: numero de vol et type d'avion, le deuxieme est celui des passagers qui est caracterisé par: numero de passeport, nom et prenom, numero de vol.
je veux une procedure en language C (C++) qui ajoute un vol dans le tableau des vols et une autre procedure pour ajouter un passager qui va prendre un certain vol.
je suis debutante en ce language et je n'ai pas reussi à les faire correctement !!
merci d'avance pour votre aide

3 réponses

swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
15 mars 2010 à 12:13
poste ton code, histoire de te donner un coup de main
0
Utilisateur anonyme
17 mars 2010 à 09:14
j'ai posté mon code ci dessous, merci de le voir
0
-Arod- Messages postés 275 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 15 avril 2010 76
15 mars 2010 à 12:51
Est ce qu'il y a de la place dans tes tableaux pour pouvoir y ajouter les vols et autre, ou est ce qu'il faut en plus prévoir d'augmenter la taille du tableau pour chaque enregistrement supplémentaire?

Est ce que les tableaux sont stocké dans les sous programmes ou l'appelant?
0
Utilisateur anonyme
15 mars 2010 à 15:19
oui il y a de la place pour l'ajout de chaque vol, et les tableaux ne sont pas stocké dans les sous programmes, on les appellent dans le programme princiale
0
J'ai pas trop réfléchi, mais j'essaye de donner une piste ....
Effectivement, ce serait mieux en ayant ton code, comme le disais swoog...

void addVol(Vol[] voltab, Vol v)
{
// compteurs pour parcours du tableau
int cptVol = 0;

// tant qu'on est pas à la fin du tableau des vols, et qu'il y a un vol, on avance dans le tableau
while ( cptvol < voltab.length && voltab(cptvol)!=null )
cptVol++;

// arrivé à la fin du tableau
if (cptVol>=voltab.length)
// ---> faire ERREUR car ton tableau a plus de place
// sinon, arrivé à emplacement vide, sans vol : ajoute le vol à cet emplacement
else
voltab[cptVol]=v;
}

C'est du vite fait, merci pour les critiques/insultes/etc...
( je suis même plus sur du .length ...)

Cordialement,
M.
0
Utilisateur anonyme
16 mars 2010 à 21:47
merci bien pour votre aide swed, bon je vais vous donner mon code, peut etre vous pouvez m'aider encore une fois. voila le code des deux procedures avec le programme principal bien sur, je n'ai pas compris comment utiliser le pointeur dans une matrice, j'espere que vous pouvez m'aider


include<stdio.h>
void ajt_vol(int numvol[100],char typav[100][50],char vil[100][50],char hdep[100][10],int nv,char vda,char ta,char hd)
{
int p,*p1,n=3;
char *p2;
printf("Donner la position d'ajout: ");
scanf("%d",&p);
for(p1=numvol+n;p1>(numvol+p-1);p1--)
*p1=*(p1-1);
p1=numvol+p-1;
*p1=nv;
for(p2=typav+n;p2>(typav+p-1);p2--)
*p2=*(p2-1);
p2=typav+p-1;
*p2=ta;
for(p2=vil+n;p2>(vil+p-1);p2--)
*p2=*(p2-1);
p2=vil+p-1;
*p2=vda;
for(p2=hd+n;p1>(hd+p-1);p2--)
*p2=*(p2-1);
p2=hdep+p-1;
*p2=hd;
}
void ajt_pass(int v,int numvol,char numpass,char numpc);
{
int m=2;
printf("Donner le numéro de passeport du passager: ");
scanf("%d",&npas);
numpass[indice][m]=npass;
printf("Donner le nom et le prénom du passager: ");
scanf("%d",&npr);
nppas[indice][m]=npr;
printf("Donner le numéro de place du passager: ");
scanf("%d",&np);
numpc[indice][m]=np;
}
void main()
{
int c,numvol[100],numpc[100][100],numpass[100][100],trouve=0;
char hdep[100][10],vil[100][50],typa[100][50],nppass[100][50];
numpas[0][0]=1;
numpas[0][1]=2;
numpas[1][0]=3;
numpas[1][1]=4;
numpas[2][0]=5;
numpas[2][1]=6;
nppas[0][0]="Ali Ben Salah";
nppas[0][1]="Sonia Baraket";
nppas[1][0]="Mohamed Ali Elleuch";
nppas[1][1]="François Brel"
nppas[2][0]="Zaineb Trabelsi"
nppas[2][1]="Vectoria Fernandez"
numpc[0][0]=1;
numpc[0][1]=2;
numpc[1][0]=3;
numpc[1][1]=4;
numpc[2][0]=5;
numpc[2][1]=6;
numvol[0]=1;
numvol[1]=2;
numvol[2]=3;
typav[0]="Boeing";
typav[1]="Concorde";
typav[2]="Boeing";
vil[0]="Tunis --> Marseille";
vil[1]="Madrid --> Casablanca";
vil[2]="London --> Roma";
hdep[0]="12:25";
hdep[1]="08:05";
hdep[2]="23:45";
do
{
printf("Ajout d'un vol..................................(1)");
printf("Ajout d'un passager.............................(2)");
printf("Suppression d'un vol et ses passagers...........(3)");
printf("Affichage des passagers.........................(4)");
printf("Recherche d'un passager.........................(5)");
printf("Modification des informations d'un passager.....(6)");
printf("La liste des passagers..........................(7)");
printf("Quitter.........................................(8)");
do
{
printf("Donner votre choix: ");
scanf("%d",&c);
} while (c<1 || c>8);
switch (c)
{
case 1:
{
do
{
printf("Donner le numéro du vol: ");
scanf("%d",&nv);
while(trouve=0 || p1<numvol+n)
{
if(*p1==nv)
{
trouve=1;
printf("Ce vol existe déja");
}
}
} while (trouve=1);
do
{
printf("Donner le type d'avion: ");
scanf("%d",&ta);
} while (ta!="Boeing" && ta!="Concorde");
printf("Donner la ville de départ et la ville d'arrivée: ");
scanf("%d",&vda);
printf("Donner l'heure de départ: ");
scanf("%d",&hd);
ajt_vol(numvol,tyav,vil,hdep,nv,vda,ta,hd);
}
case 2:
{
do
{
printf("Dans quel vol voulez vous ajouter un passager? ");
scanf("%d",&v);
for(p1=numvol;p1<numvol+n && trouve=0;p1++)
if(*p1=v)
{
trouve=1;
indice=p1-numvol;
break;
}
} while (trouve=0);


ajt_pas(v);
}


merci d'avance
0