Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. class LimitaAtinsa extends Exception{
  4. public LimitaAtinsa(String msg){
  5. super(msg);
  6. }
  7. }
  8.  
  9. class Angajat{
  10. private long nrId;
  11. private String codDepartament;
  12. private double nrAniExperienta;
  13. private ArrayList<String> tehnologiiPreferate=new ArrayList<String>();
  14.  
  15. public Angajat(long nrId,String codDepartament,double nrAniExperienta,ArrayList<String> tehnologiiPreferate){
  16. this.nrId=nrId;
  17. this.codDepartament=codDepartament;
  18. this.nrAniExperienta=nrAniExperienta;
  19. this.tehnologiiPreferate=tehnologiiPreferate;
  20. }
  21.  
  22. public boolean equals(Object o){
  23. if(o instanceof Angajat)
  24. return ( ((Angajat)o).nrId==nrId && ((Angajat)o).codDepartament==codDepartament);
  25. else return false;
  26. }
  27.  
  28. public double getAni(){
  29. return nrAniExperienta;
  30. }
  31.  
  32. public ArrayList<String> getTehnologii(){
  33. return tehnologiiPreferate;
  34. }
  35. }
  36.  
  37. abstract class Training{
  38. protected int nrAngajati;
  39. protected ArrayList<Angajat> angajati=new ArrayList<Angajat>(nrAngajati);
  40. protected double aniExperienta;
  41.  
  42. public Training(double aniExperienta){
  43. this.aniExperienta=aniExperienta;
  44. }
  45.  
  46. public abstract int estimeazaRataDeSucces(Angajat a);
  47. public void adaugaAngajat(Angajat a) throws LimitaAtinsa{
  48. int nrTemporar=0;
  49. for(int i=0;i<nrAngajati;i++){
  50. if(angajati.get(i).equals(a))continue;
  51. }
  52. if(nrTemporar<nrAngajati){
  53. angajati.add(a);
  54. nrTemporar++;
  55. }
  56. else throw new LimitaAtinsa("exceptie");
  57. }
  58. }
  59.  
  60. class SoftSkills extends Training{
  61.  
  62. public SoftSkills(double aniExperienta){
  63. super(aniExperienta);
  64. this.nrAngajati=10;
  65. }
  66. public void adaugaAngajat(Angajat a)throws LimitaAtinsa{
  67. super.adaugaAngajat(a);
  68. }
  69.  
  70. public int estimeazaRataDeSucces(Angajat a){
  71. if( (Math.abs(aniExperienta-a.getAni()) >= 0) && (Math.abs(aniExperienta-a.getAni()) <= 1) )
  72. {return 100;}
  73. else return 5;
  74. }
  75. }
  76.  
  77. class Tehnice extends Training{
  78. private ArrayList<String> tehnologiiAbordate=new ArrayList<String>();
  79. private int nrTehnologii;
  80. public Tehnice(double aniExperienta,ArrayList<String> tehnologiiAbordate){
  81. super(aniExperienta);
  82. this.tehnologiiAbordate=tehnologiiAbordate;
  83. nrAngajati=20;
  84. nrTehnologii++;
  85. }
  86.  
  87. public void adaugaAngajat(Angajat a)throws LimitaAtinsa{
  88. super.adaugaAngajat(a);
  89. }
  90.  
  91. public int estimeazaRataDeSucces(Angajat a){
  92. int gasitTehnologie=0;
  93. for(int i=0;i<tehnologiiAbordate.size();i++){
  94. for(int j=0;j<a.getTehnologii().size();j++)
  95. if(tehnologiiAbordate.get(i).equals(a.getTehnologii().get(j)))gasitTehnologie++;
  96. }
  97. return (int) 100*(gasitTehnologie/nrTehnologii);
  98. }
  99. }
  100.  
  101. class Manager{
  102. private ArrayList<Angajat> angajati=new ArrayList<Angajat>();
  103. private ArrayList<Training> traininguri=new ArrayList<Training>();
  104. public Manager(ArrayList<Angajat> angajati,ArrayList<Training> traininguri){
  105. this.angajati=angajati;
  106. this.traininguri=traininguri;
  107. }
  108.  
  109. public int distribuieAngajati() throws LimitaAtinsa{
  110. int nrInscrieri=0;
  111. int interes=100;
  112. try{
  113. while(interes>=0){
  114. for(int i=0;i<traininguri.size();i++)
  115. for(int j=0;j<angajati.size();j++)
  116. if(traininguri.get(i).estimeazaRataDeSucces(angajati.get(j))==interes)
  117. traininguri.get(i).adaugaAngajat(angajati.get(j));
  118. interes--;
  119. nrInscrieri++;
  120. }
  121. }catch(LimitaAtinsa e){
  122. System.out.println(e);
  123. }
  124. return nrInscrieri;
  125. }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement