Calcul de la distance entre deux villes

Soyez le premier à donner votre avis sur cette source.

Snippet vu 245 539 fois - Téléchargée 27 fois

Contenu du snippet

Tout est dit dans le titre...

Source / Exemple :


public class distances_villes
{public static void main(String args[])
 {int i, choix, nbv=0, fin=0, dist[][]=new int[10][10]; String nom, ville[]=new String[10]; boolean ok;

	do {

		System.out.println("Menu:");
		System.out.println("1|Enregistrer une ville.");
		System.out.println("2|Donner une distance entre deux villes.");
		System.out.println("3|Donner les villes situees a moins de x kilometres d'une ville donnee.");
		System.out.println("X|Quitter.");
		choix=Lire.i();

		switch(choix) {

		case 1:	if(nbv==10)
				System.out.println("Vous ne pouvez plus enregistrez de ville.");

			else {
				System.out.println("Nom de la ville:");
				nom=Lire.S();

				ok=Recherche(ville,nom,nbv);
				if(ok==false)
					System.out.println("Ville deja saisie.");
				else {
					ville[nbv]=nom;

					for(i=0;i<nbv;i++) {
						System.out.println("Donnez la distance avec "+ville[i]+":");
						dist[nbv][i]=Lire.i();
						dist[i][nbv]=dist[nbv][i];
					                   }

					nbv++;
				     }
			     }
			break;

		case 2:	if(nbv==0)
				System.out.println("Il n'y a pas de ville enregistree.");
			else if(nbv==1)
				System.out.println("Il n'y a qu'une ville d'enregistree.");
			else {
				System.out.println("Voici les villes:");
				for(i=0;i<nbv;i++)
					System.out.println(i+": "+ville[i]);
			
				Distance(dist,ville);
			     }
				break;

		case 3:	if(nbv==0)
				System.out.println("Il n'y a pas de ville enregistree.");
			else if(nbv==1)
				System.out.println("Il n'y a qu'une ville d'enregistree.");
			else {
				System.out.println("Voici les villes:");
				for(i=0;i<nbv;i++)
					System.out.println(i+": "+ville[i]);
			
				Distance_min(dist,ville,nbv);
			     }
			break;

		default:	fin=1;
				break;

		             }

	   }
	while(fin==0);

 }

public static void Distance(int Tab1[][], String Tab2[]) {
	int v1, v2, i;
	System.out.println("Donnez le numero de la premiere ville:");
	v1=Lire.i();
	System.out.println("Donnez le numero de la seconde ville:");
	do {
		v2=Lire.i();
		if(v2==v1)
		System.out.println("Vous ne pouvez pas comparer deux fois la meme ville ; recommencez:");	
	   }
	while(v2==v1);
	System.out.println("La distance entre "+Tab2[v1]+" et "+Tab2[v2]+" est : "+Tab1[v1][v2]);
                                                           }

public static void Distance_min(int Tab1[][], String Tab2[], int nb) {
	int v, d, i, cpt=0;
	System.out.println("Donnez le numero de la ville:");
	v=Lire.i();
	System.out.println("Donnez la distance minimale:");
	d=Lire.i();
	System.out.println("Les villes situees a moins de "+d+" km de "+Tab2[v]+" sont:");
	for(i=0;i<v;i++)
		if(Tab1[i][v]<d) {
			System.out.println(Tab2[i]+" --> "+Tab1[i][v]+" km");
			cpt++;
		                 }
	for(i=v+1;i<nb;i++)
		if(Tab1[i][v]<=d) {
			System.out.println(Tab2[i]+" --> "+Tab1[i][v]+" km");
			cpt++;
		                 }
		if(cpt==0)
			System.out.println("Il n'y a pas de ville situee a moins de "+d+" km de "+Tab2[v]+".");
                                                                     }

public static boolean Recherche(String Ville[], String nom, int nbv) {
	int cpt=0, i; boolean ok;
	for(i=0;i<nbv;i++)
		if(nom==Ville[i])
			cpt++;
	if(cpt==0)
		return ok=true;
	else
		return ok=false;
                                                                     }

}

Conclusion :


Ce code est complétement libre, vous pouvez le modifier comme bon vous semble.

Si vous arrivez à des trucs bien, envoyez les moi, je les ajouterais ici afin que tout le monde puisse en profiter...

(bon ben le zip marche po alors je mets le code direct voilà...)

A voir également

Ajouter un commentaire

Commentaires

said_ouchen2
Messages postés
2
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
15 avril 2005
-
Bonjour,
Je cherche une base de donnée contenant la distance entre deux villes par leur code postaux.
Si quelqu'un peut me renseigner.
Merci
kamalios2
Messages postés
1
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
6 décembre 2006
-
merci pour ce tres beau code
Beno 78
Messages postés
1
Date d'inscription
lundi 14 mai 2007
Statut
Membre
Dernière intervention
14 mai 2007
-
je voudrais savoir quel programme vous utilisez pour lancer ces exécutions. DEV CPP? ou autre ?
vincedav31
Messages postés
9
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
18 novembre 2008
-
A croire que les gens qui postent leurs commentaires n'ont pas essayé de faire marcher ton programme. En effet tu n'as pas déclaré ta variable Lire
cs_f0x
Messages postés
3
Date d'inscription
jeudi 13 novembre 2003
Statut
Membre
Dernière intervention
20 janvier 2009
-
en effet car Lire n'est pas une variable ^^
mais une méthode

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.