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 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
import java.util.*;
/*-------------------->>Classe contenant la méthode main<<-------------------*/
public class TestLabo8
{
public static void main(String[] args)
{
Villes city[]=new Villes[6];
//Initialisation du tableau city dans le désordre
city[0]=new Villes("La Louvière","Belgique",7100);
city[1]=new Villes("Kinshasa","Congo",3347);
city[2]=new Villes("Detroit","USA",4929);
city[3]=new Villes("Anvers","Belgique",2000);
city[4]=new Villes("Houston","USA",7024);
city[5]=new Capital("Bruxelles","Belgique",1000);
//Ajout de quelques entités pour La Louvière dans le désordre
city[0].addAntite("Houdeng",7110);
city[0].addAntite("Strépy",7113);
city[0].addAntite("Boussoit",7112);
city[0].addAntite("Maurage",7111);
city[0].addAntite("Besonrieux",7114);
//Ajout de quelques entités pour Bruxelles dans le désordre
city[5].addAntite("Ixelles",1050);
city[5].addAntite("Etterbeek",1040);
city[5].addAntite("Laeken",1020);
//Triage sur le pays et affichage
Arrays.sort(city);
for(int i=0;i<6;i++)
{
city[i].affichePlace();
}
}
}
/*----------------------------->>Classe Villes<<-----------------------------*/
class Villes implements Comparable
{
protected String nomVille,pays;
protected int codePostal;
protected Vector antites;
//Premier constructeur de la classe Villes
public Villes(String a,int b)
{
nomVille=a;
codePostal=b;
pays=null;
}
//Deuxième constructeur de la classe Villes
public Villes(String a,String b,int c)
{
nomVille=a;
pays=b;
codePostal=c;
antites=new Vector();
}
//Méthode pour comparer les entités par code postal
public int compareTo(Object Villes)
{
int nombre1 = ((Villes) Villes).getCodePostal();
int nombre2 = this.getCodePostal();
if (nombre1 > nombre2) return -1;
else if(nombre1 == nombre2) return 0;
else return 1;
}
//Méthode renvoyant le code postale d'une ville
public int getCodePostal()
{
return codePostal;
}
//Méthode retournant le nom d'une ville
public String getNomVille()
{
return nomVille;
}
//Méthode affichant un objet Villes + Tri des entités
public void affichePlace()
{
System.out.println("Nom ville: "+nomVille);
System.out.println("**********");
System.out.println();
System.out.println("--->Code postal: "+codePostal);
System.out.println("--->Pays: "+pays);
if(antites.size()!=0)
{
int taille=antites.size();
Villes temp;
Collections.sort(antites);
System.out.println("--->Entites: ");
for(int i=0;i<taille;i++)
{
temp=(Villes)antites.get(i);
System.out.println(" - "+temp.getCodePostal()+" "+temp.getNomVille());
}
}
System.out.println();
}
//Méthode ajoutant un objet Villes au Vector antités
public void addAntite(String a,int b)
{
Villes ant=new Villes(a,b);
antites.addElement(ant);
}
//Méthode supprimant tous les objets du Vector antités
public void deleteAntites()
{
antites.clear();
}
}
/*-------------->>Classe Capital dérivant de la classe Villes<<--------------*/
class Capital extends Villes
{
private char capital;
//Constructeur de la classe Capital
public Capital(String a,String b,int c)
{
super(a,b,c);
capital='*';
}
//Méthode affichant un objet Capital
public void affichePlace()
{
System.out.println("Nom ville: *"+nomVille);
System.out.println("**********");
System.out.println();
System.out.println("--->Code postal: "+codePostal);
System.out.println("--->Pays: "+pays);
if(antites.size()!=0)
{
int taille=antites.size();
Villes temp;
Collections.sort(antites);
System.out.println("--->Entites: ");
for(int i=0;i<taille;i++)
{
temp=(Villes)antites.get(i);
System.out.println(" - "+temp.getCodePostal()+" "+temp.getNomVille());
}
}
System.out.println();
}
} |
Partager