1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| /*Nom:
Version: 1.0
Date de création: 20/7/2009
Description du travail: Développement d'application en C
Devoir No 10
Gestion d'itinéraires
Optimisation de la recherche d'un parcours*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NBVILLE 20
#define LONGNOM 30
#define NBVILLES 20
#define NBCHEMINS 5
struct matrice {
short int ville_suiv;
short int distance;
};
typedef struct {
short int num_ville;
short int num_suiv;
} ITINERAIRE;
/*déclaration des fonctions*/
int fonction_ville(int nombre_de_ville,char *pville);
void fonction_distance(int nombre_de_ville,char *pville,struct matrice *pchemin);
void fonction_parcours(int nombre_de_ville,char *pville,struct matrice *pchemin);
void fonction_optimise(int nombre_de_ville,char *pville,struct matrice *pchemin,ITINERAIRE *Citi);
/*********************************************/
/* FONCTION PRINCIPALE */
/*********************************************/
int main(int argc,char *argv[])
{
/*déclaration des variables locales*/
/*déclaration du tableau de structure et son pointeur*/
struct matrice chemin[NBVILLES][NBCHEMINS]={{{1,170},{2,140},{3,315},{-1,0},{-1,0}},
{{0,170},{4,345},{2,160},{-1,0},{-1,0}},
{{0,140},{1,160},{4,175},{-1,0},{-1,0}},
{{0,315},{4,235},{-1,0},{-1,0},{-1,0}},
{{1,345},{2,175},{3,235},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}},
{{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}}};
struct matrice *pchemin ;
/*déclaration du tableau des villes et son pointeur*/
char ville[NBVILLE][LONGNOM]={"Paris","Arras","Reims","Dijon","Metz"};
char *pville;
/*déclaration du tableau de struct itinéraire*/
ITINERAIRE Diti[NBVILLES];
ITINERAIRE *Citi;
/*tableau permettant la saisie du choix du menu*/
char choix[9];
int nombre_de_ville=5;/*initialisé à 5 puisque j'ai déjà mis des villes dans le tableau*/
int i,j;
/*initialisation des variables "villes suivantes" à -1*/
for(i=0;i<20;i++)
{
for(j=0;j<5;j++)
{
chemin[i][j].ville_suiv=-1;
}
}
/*initialisation du tableau Diti à -1*/
/*afin qu'il n'y ait pas d'erreur lors des recherches*/
for(i=0;i<20;i++)
Diti[i].num_ville=-1;
/*affichage du menu*/
debut:
printf("\nville");
printf("\ndistance");
printf("\nparcours");
printf("\noptimise");
printf("\nexit");
printf("\nentrez votre choix : ");
/*traitement suivant le choix du menu*/
do
{
gets(choix);/*je ne maîtrise pas fgets .Il faudrait mettre plutôt fgets(stdout,choix) ? J'ai encore besoin de votre aide */
}while((strcmp(choix,"ville"))!=0&&(strcmp(choix,"distance"))!=0
&&(strcmp(choix,"parcours"))!=0&&(strcmp(choix,"optimise"))!=0
&&(strcmp(choix,"exit"))!=0);
if(strcmp(choix,"ville")==0)
{
/*initialisation du pointeur et appel de la fonction ville*/
pville=ville[0];
nombre_de_ville=fonction_ville(nombre_de_ville,pville);
}
else if(strcmp(choix,"distance")==0)
{
/*initialisation du pointeur et appel de la fonction chemin*/
pchemin=chemin[0];
pville=ville[0];
fonction_distance(nombre_de_ville,pville,pchemin);
}
else if(strcmp(choix,"parcours")==0)
{
/*initialisation des pointeurs et appel de la fonction parcours*/
pville=ville[0];
pchemin=chemin[0];
fonction_parcours(nombre_de_ville,pville,pchemin);
printf("\n");
}
else if(strcmp(choix,"optimise")==0)
{
/*initialisation des pointeurs et appel de la fonction optimise*/
Citi=Diti;
pville=ville[0];
pchemin=chemin[0];
fonction_optimise(nombre_de_ville,pville,pchemin,Citi);
printf("\n");
}
else if(strcmp(choix,"exit")==0)
/*sortie du programme*/
exit('0');
/*retour au début de l'affichage du menu*/
goto debut;
} |
Partager