Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package election;
- import java.util.Scanner;
- public class Election1 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- boolean saisieOk=false;
- String reponse;
- int siegesAPourvoir = 0;
- int nbListes = 0 ;
- int totalVoix =0;
- Scanner clavier = new Scanner(System.in);
- while(!saisieOk){
- System.out.println("Nombre de sièges à pouvoir : ");
- reponse = clavier.nextLine();
- try{
- siegesAPourvoir = Integer.parseInt(reponse);
- saisieOk = siegesAPourvoir >0;}
- catch(NumberFormatException ex){}
- if(!saisieOk){
- System.out.println("Tapez un nombre entier");
- }
- else{
- System.out.println(String.format("Nombre de Sieges à pouvoir = %d",siegesAPourvoir));}
- }
- saisieOk=false;
- while(!saisieOk){
- System.out.println("Nombre de listes en compétition : ");
- reponse = clavier.nextLine();
- try{
- nbListes = Integer.parseInt(reponse);
- saisieOk = nbListes >0;}
- catch(NumberFormatException ex){}
- if(!saisieOk){
- System.out.println("Tapez un nombre entier et supérieur à 0");
- }
- else{
- System.out.println(String.format("Nombre de Listes en compétition = %d",nbListes));}
- }
- String nomListe[] =new String[nbListes];
- int voixListe[] = new int[nbListes];
- boolean elimineListe[] = new boolean[nbListes];
- int siegesListe[] = new int[nbListes];
- float moyenneListe[] = new float[nbListes];
- for(int i =0;i<nbListes;i++){
- saisieOk=false;
- while(!saisieOk){
- {
- System.out.println("Nom de la Liste "+ i +" :");
- reponse = clavier.nextLine();
- try{
- nomListe[i]=reponse;
- if(!nomListe[i].trim().isEmpty()){saisieOk=true;}
- }
- catch(NumberFormatException ex){}
- if(!saisieOk){
- System.out.println("Entrez une chêne de caractère");
- }
- }
- }
- saisieOk=false;
- while(!saisieOk){
- {
- System.out.println("Nombre de voix de la liste, "+nomListe[i]+" : ");
- reponse = clavier.nextLine();
- try{
- voixListe[i] = Integer.parseInt(reponse);
- saisieOk = voixListe[i] >0;}
- catch(NumberFormatException ex){}
- if(!saisieOk){
- System.out.println("Tapez un nombre entier et supérieur à zéro");
- }
- }
- totalVoix += voixListe[i];
- }
- }
- int nbVoixUtiles=0;
- for(int i=0;i<nbListes;i++)
- {
- if(((float)voixListe[i]/(float)totalVoix)<0.05)
- {
- elimineListe[i]=true;
- }
- else
- {
- elimineListe[i]=false;
- nbVoixUtiles += voixListe[i];
- }
- }
- if(nbVoixUtiles == 0){
- System.out.println("Erreur : toutes les listes ont été éliminées");
- System.exit(0);
- }
- float quotientElectoral = nbVoixUtiles/siegesAPourvoir;
- int nbSiegesPourvus = 0;
- for(int i=0; i<nbListes;i++){
- if(!elimineListe[i]){
- siegesListe[i] = (int) (voixListe[i]/quotientElectoral);
- moyenneListe[i]=voixListe[i]/(siegesListe[i]+1);
- nbSiegesPourvus+=siegesListe[i];
- }
- else{
- siegesListe[i]=0;
- }
- }
- float moyenneMax=0;
- int iMax = 0;
- for(int iSiege =0;iSiege<(siegesAPourvoir-nbSiegesPourvus);iSiege++){
- moyenneMax=-1;
- for(int i =0;i<nbListes;i++){
- if(!elimineListe[i]){
- if(moyenneListe[i]>moyenneMax){
- moyenneMax=moyenneListe[i];
- iMax=i;
- }
- }
- }
- siegesListe[iMax]+=1;
- moyenneListe[iMax]=voixListe[iMax]/(siegesListe[iMax]+1);
- }
- for(int i =0;i<nbListes;i++){
- if(elimineListe[i]){
- System.out.println("La liste "+nomListe[i]+" a été éliminée");
- }else{
- System.out.println("La liste "+nomListe[i]+" a obtenu, " + siegesListe[i] + " siège(s)");
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment