Enseignement > Programmation orientée objet > Java > Sujets d'examens et corrigés > Controle 2016  

Controle de programmation orientée objet (mise à niveau)

Mercredi 28 septembre 2016 - durée : 4 heures

On souhaite écrire une application Java pour gérer des collectivités territoriales (communes, conseils régionaux, etc...) et leurs assemblées délibérantes (conseils municipaux, conseils régionaux, etc...).

Vous devez créer un "package" Collectivite (projet NetBeans ou Eclipse) qui regroupera toutes les classes nécessaires.

Pour chacune des classes que vous aller créer, vous encapsulerez judicieusement les attributs et vous réécrirer la méthode toString().

Question 1 : Assemblée délibérante
Une assemblée délibérante est un organe collectif composé d’individus qui délibèrent en vue de prendre des décisions.
Ecrire une classe AssembleeDeliberante qui permette de définir ses membres sous la forme d'un tableau de personnes. Vous réutiliserez la classe Personne vue dans le TP sur la gestion de l'état civil.
Ecrire une méthode boolean election(Personne[] elus) permettant de changer les membres à chaque élection. Cette méthode renvoie vraie si l'élection est valide (dans ce premier cas, l'élection est toujours valide).
Ecrire une méthode boolean respecteParite() qui vérifie que l'assemblée est composée d'autant d'hommes que de femmes (à un près en cas de nombre impair) ; utiliser les classes Homme et Femme vues dans le TP sur la gestion de l'état civil.

Question 2 : Collectivité territoriale
Ecrire une classe abstraite CollectiviteTerritoriale qui est composée de son nom (exemple : Besançon) et d'une assemblée délibérante.
Une collectivité territoriale est définie par un code Insee (string) qui est unique et qui vous servira à redéfinir la methode equals(Object o).
Ecrire les méthodes abstraites superficie() et population() qui permettent d'obtenir ces informations pour une collectivité territoriale.
Ecrire une méthode qui calcule la densité de population.
Cette classe implementera l'interface Comparable : on comparera les collectivité sur l'ordre alphabétique de leur nom.

Question 3 : Commune
En France, l'échelon de base des divisions administratives est la commune qui est une collectivité territoriale dirigée par un Maire.
La commune a une superficie et une population qui lui est propre.
Ecrire une classe Commune qui mémorise également le gentilé (nom donné aux habitants d’une commune).
Ecrire une méthode electionMaire (Personne maire) ; vérifier que le maire soit membre de l'assemblée délibérante (le conseil municipal).
Réécrire la méthode toString() qui précise bien le nom du maire.
Réécrire la méthode election(Personne[] elus) qui vérifie que le nombre d'élus correspond à la tranche de population de la commune et pour les communes de plus de 1000 habitants, l'assemblée doit respecter la parité.

Question 4 : Commune nouvelle
Une commune nouvelle est une commune formée par le regroupement de plusieurs communes.
Ecrire une classe CommuneNouvelle dont le constructeur aura la forme CommuneNouvelle(String nom, Commune[] communes)
La superficie et la population de la commune nouvelle sont la somme des superficies et des populations des communes d'origine.
L'assemblée délibérante de la commune nouvelle est formée de la fusion des conseils municipaux des communes membres, jusqu'à l'éléction suivante.
Réécrire la méthode toString() qui précise le nom des communes d'origine qu'il faut donc mémoriser d'une manière ou d'une autre (à vous d'imaginer la solution).

Question 5 : Préfecture
Une préfecture désigne les services de l'administration préfectorale à la tête desquels est placé un préfet, ainsi que le bâtiment qui les héberge.
Créer une classe Prefecture qui sera formée par une personne, le Préfet, et par l'adresse du bâtiment.

Question 6 : Ville Préfecture
Une ville préfecture est une commune dans laquelle se trouve une préfecture.
Ecrire une classe VillePrefecture.

Question 7 : Communauté de communes
Une communauté de communes est une collectivité territoriale composée de communes. Elle a une assemblée délibérante, le conseil communautaire, dont les membres sont élus parmi les conseillers municipaux des communes membres. Elle est dirigée par un président qui est élu parmi le conseil communautaire.
Ecrire une classe CommunauteDeCommunes.

Question 8 : Jeu de test
Ecrire une classe qui construise un jeu de test qui comprendra une communauté de communes formée d'une ville préfecture, d'une commune nouvelle et d'autres communes.