Guest User

Untitled

a guest
Jun 21st, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. package election;
  2. import java.util.Scanner;
  3. public class Election1 {
  4.  
  5. /**
  6. * @param args
  7. */
  8. public static void main(String[] args) {
  9. boolean saisieOk=false;
  10. String reponse;
  11. int siegesAPourvoir = 0;
  12. int nbListes = 0 ;
  13. int totalVoix =0;
  14.  
  15. Scanner clavier = new Scanner(System.in);
  16.  
  17. while(!saisieOk){
  18. System.out.println("Nombre de sièges à pouvoir : ");
  19. reponse = clavier.nextLine();
  20.  
  21. try{
  22. siegesAPourvoir = Integer.parseInt(reponse);
  23. saisieOk = siegesAPourvoir >0;}
  24.  
  25. catch(NumberFormatException ex){}
  26.  
  27. if(!saisieOk){
  28. System.out.println("Tapez un nombre entier");
  29. }
  30. else{
  31. System.out.println(String.format("Nombre de Sieges à pouvoir = %d",siegesAPourvoir));}
  32.  
  33. }
  34.  
  35. saisieOk=false;
  36.  
  37. while(!saisieOk){
  38. System.out.println("Nombre de listes en compétition : ");
  39. reponse = clavier.nextLine();
  40.  
  41. try{
  42. nbListes = Integer.parseInt(reponse);
  43. saisieOk = nbListes >0;}
  44.  
  45. catch(NumberFormatException ex){}
  46.  
  47. if(!saisieOk){
  48. System.out.println("Tapez un nombre entier et supérieur à 0");
  49. }
  50. else{
  51. System.out.println(String.format("Nombre de Listes en compétition = %d",nbListes));}
  52. }
  53.  
  54. String nomListe[] =new String[nbListes];
  55. int voixListe[] = new int[nbListes];
  56. boolean elimineListe[] = new boolean[nbListes];
  57. int siegesListe[] = new int[nbListes];
  58. float moyenneListe[] = new float[nbListes];
  59.  
  60. for(int i =0;i<nbListes;i++){
  61. saisieOk=false;
  62. while(!saisieOk){
  63. {
  64. System.out.println("Nom de la Liste "+ i +" :");
  65. reponse = clavier.nextLine();
  66. try{
  67. nomListe[i]=reponse;
  68. if(!nomListe[i].trim().isEmpty()){saisieOk=true;}
  69. }
  70. catch(NumberFormatException ex){}
  71.  
  72. if(!saisieOk){
  73. System.out.println("Entrez une chêne de caractère");
  74. }
  75. }
  76. }
  77.  
  78. saisieOk=false;
  79.  
  80. while(!saisieOk){
  81. {
  82. System.out.println("Nombre de voix de la liste, "+nomListe[i]+" : ");
  83. reponse = clavier.nextLine();
  84.  
  85. try{
  86. voixListe[i] = Integer.parseInt(reponse);
  87. saisieOk = voixListe[i] >0;}
  88.  
  89. catch(NumberFormatException ex){}
  90.  
  91. if(!saisieOk){
  92. System.out.println("Tapez un nombre entier et supérieur à zéro");
  93. }
  94. }
  95. totalVoix += voixListe[i];
  96. }
  97. }
  98.  
  99. int nbVoixUtiles=0;
  100.  
  101. for(int i=0;i<nbListes;i++)
  102. {
  103. if(((float)voixListe[i]/(float)totalVoix)<0.05)
  104. {
  105. elimineListe[i]=true;
  106. }
  107. else
  108. {
  109. elimineListe[i]=false;
  110. nbVoixUtiles += voixListe[i];
  111. }
  112. }
  113.  
  114. if(nbVoixUtiles == 0){
  115. System.out.println("Erreur : toutes les listes ont été éliminées");
  116. System.exit(0);
  117. }
  118.  
  119. float quotientElectoral = nbVoixUtiles/siegesAPourvoir;
  120. int nbSiegesPourvus = 0;
  121.  
  122. for(int i=0; i<nbListes;i++){
  123. if(!elimineListe[i]){
  124. siegesListe[i] = (int) (voixListe[i]/quotientElectoral);
  125. moyenneListe[i]=voixListe[i]/(siegesListe[i]+1);
  126. nbSiegesPourvus+=siegesListe[i];
  127. }
  128. else{
  129. siegesListe[i]=0;
  130. }
  131. }
  132.  
  133. float moyenneMax=0;
  134. int iMax = 0;
  135.  
  136. for(int iSiege =0;iSiege<(siegesAPourvoir-nbSiegesPourvus);iSiege++){
  137. moyenneMax=-1;
  138. for(int i =0;i<nbListes;i++){
  139. if(!elimineListe[i]){
  140. if(moyenneListe[i]>moyenneMax){
  141. moyenneMax=moyenneListe[i];
  142. iMax=i;
  143. }
  144. }
  145. }
  146. siegesListe[iMax]+=1;
  147. moyenneListe[iMax]=voixListe[iMax]/(siegesListe[iMax]+1);
  148. }
  149.  
  150. for(int i =0;i<nbListes;i++){
  151. if(elimineListe[i]){
  152. System.out.println("La liste "+nomListe[i]+" a été éliminée");
  153. }else{
  154. System.out.println("La liste "+nomListe[i]+" a obtenu, " + siegesListe[i] + " siège(s)");
  155. }
  156. }
  157. }
  158. }
Add Comment
Please, Sign In to add comment