Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class LimitaAtinsa extends Exception{
- public LimitaAtinsa(String msg){
- super(msg);
- }
- }
- class Angajat{
- private long nrId;
- private String codDepartament;
- private double nrAniExperienta;
- private ArrayList<String> tehnologiiPreferate=new ArrayList<String>();
- public Angajat(long nrId,String codDepartament,double nrAniExperienta,ArrayList<String> tehnologiiPreferate){
- this.nrId=nrId;
- this.codDepartament=codDepartament;
- this.nrAniExperienta=nrAniExperienta;
- this.tehnologiiPreferate=tehnologiiPreferate;
- }
- public boolean equals(Object o){
- if(o instanceof Angajat)
- return ( ((Angajat)o).nrId==nrId && ((Angajat)o).codDepartament==codDepartament);
- else return false;
- }
- public double getAni(){
- return nrAniExperienta;
- }
- public ArrayList<String> getTehnologii(){
- return tehnologiiPreferate;
- }
- }
- abstract class Training{
- protected int nrAngajati;
- protected ArrayList<Angajat> angajati=new ArrayList<Angajat>(nrAngajati);
- protected double aniExperienta;
- public Training(double aniExperienta){
- this.aniExperienta=aniExperienta;
- }
- public abstract int estimeazaRataDeSucces(Angajat a);
- public void adaugaAngajat(Angajat a) throws LimitaAtinsa{
- int nrTemporar=0;
- for(int i=0;i<nrAngajati;i++){
- if(angajati.get(i).equals(a))continue;
- }
- if(nrTemporar<nrAngajati){
- angajati.add(a);
- nrTemporar++;
- }
- else throw new LimitaAtinsa("exceptie");
- }
- }
- class SoftSkills extends Training{
- public SoftSkills(double aniExperienta){
- super(aniExperienta);
- this.nrAngajati=10;
- }
- public void adaugaAngajat(Angajat a)throws LimitaAtinsa{
- super.adaugaAngajat(a);
- }
- public int estimeazaRataDeSucces(Angajat a){
- if( (Math.abs(aniExperienta-a.getAni()) >= 0) && (Math.abs(aniExperienta-a.getAni()) <= 1) )
- {return 100;}
- else return 5;
- }
- }
- class Tehnice extends Training{
- private ArrayList<String> tehnologiiAbordate=new ArrayList<String>();
- private int nrTehnologii;
- public Tehnice(double aniExperienta,ArrayList<String> tehnologiiAbordate){
- super(aniExperienta);
- this.tehnologiiAbordate=tehnologiiAbordate;
- nrAngajati=20;
- nrTehnologii++;
- }
- public void adaugaAngajat(Angajat a)throws LimitaAtinsa{
- super.adaugaAngajat(a);
- }
- public int estimeazaRataDeSucces(Angajat a){
- int gasitTehnologie=0;
- for(int i=0;i<tehnologiiAbordate.size();i++){
- for(int j=0;j<a.getTehnologii().size();j++)
- if(tehnologiiAbordate.get(i).equals(a.getTehnologii().get(j)))gasitTehnologie++;
- }
- return (int) 100*(gasitTehnologie/nrTehnologii);
- }
- }
- class Manager{
- private ArrayList<Angajat> angajati=new ArrayList<Angajat>();
- private ArrayList<Training> traininguri=new ArrayList<Training>();
- public Manager(ArrayList<Angajat> angajati,ArrayList<Training> traininguri){
- this.angajati=angajati;
- this.traininguri=traininguri;
- }
- public int distribuieAngajati() throws LimitaAtinsa{
- int nrInscrieri=0;
- int interes=100;
- try{
- while(interes>=0){
- for(int i=0;i<traininguri.size();i++)
- for(int j=0;j<angajati.size();j++)
- if(traininguri.get(i).estimeazaRataDeSucces(angajati.get(j))==interes)
- traininguri.get(i).adaugaAngajat(angajati.get(j));
- interes--;
- nrInscrieri++;
- }
- }catch(LimitaAtinsa e){
- System.out.println(e);
- }
- return nrInscrieri;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement