Advertisement
Demetra4

angajatiiii

Jan 5th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.63 KB | None | 0 0
  1. package angajat;
  2.  
  3. abstract class Angajat {
  4.     protected String nume;
  5.     protected double salariu;
  6.     public Angajat(String nume){
  7.         this.nume = nume;
  8.         this.salariu = salariu;
  9.     }
  10.     public abstract double calculSalar();
  11. }
  12.  
  13. class AngajatCuSalariuFix extends Angajat{
  14.     private double salariu;
  15.     private String nume;
  16.    
  17.     public AngajatCuSalariuFix(String nume, double salariu){
  18.         super(nume);
  19.         this.salariu = salariu;
  20.     }
  21.     public double calculSalar(){
  22.         return this.salariu;
  23.     }
  24.     public double schimbaSalariuFix(double new_salar){
  25.         return this.salariu = new_salar;
  26.     }
  27.     public boolean equals(Object o){
  28.         if (o instanceof Angajat){
  29.             Angajat a = (Angajat)o;
  30.             if (a.nume == this.nume)
  31.                 return true;}
  32.          return false; 
  33.     }
  34.     public String toString(){
  35.         return this.nume + " " + this.salariu;
  36.     }
  37. }
  38.  
  39. class AngajatCuOra extends Angajat{
  40.     private double salariuPeOra;
  41.     private String nume;
  42.     private double ore[] = new double [31];
  43.     private int count_ore = 0;
  44.     public AngajatCuOra(double salariuPeOra, String nume){
  45.         super(nume);
  46.         this.salariuPeOra = salariuPeOra;
  47.     }
  48.     public double calculSalar(){
  49.          double suma = 0;
  50.         for(int i = 0; i < count_ore; i++)
  51.             suma +=ore[i];
  52.  
  53.         return this.salariuPeOra * suma;
  54.     }
  55.     public void adaugaOre(double oreLucrate){
  56.         ore[count_ore++] = oreLucrate;
  57.             }
  58.     public double schimbaSalarPeOra(double salarNou){
  59.         return this.salariuPeOra = salarNou;
  60.     }
  61.  
  62. }
  63.  
  64. class Firma{
  65.         private int nr_angajati;
  66.         private Angajat angajati[]  = new Angajat[1024];
  67.         public int angajeaza(Angajat a){
  68.             if (nr_angajati >= 1024)
  69.                 return -1;
  70.             for (int i = 0; i < nr_angajati; i++){
  71.                 if (a.equals(angajati[i])) return -2;}
  72.                 angajati[nr_angajati++] = a;
  73.             return 0;
  74.            
  75.         }
  76.            
  77.     public double  salariuMediu(){
  78.          double suma = 0;
  79.          if(nr_angajati == 0) return 0;
  80.             for(int i = 0; i < nr_angajati; i++)
  81.                 suma +=angajati[i].calculSalar();
  82.             return suma/nr_angajati;
  83.     }  
  84.     public String toString(){
  85.         String s = "";
  86.         for(int i = 0; i < nr_angajati; i++)
  87.         s += angajati[i].toString();
  88.         return s;
  89.     }
  90. }
  91.  
  92. class Main{
  93.     public static void main(String[] args){
  94.         AngajatCuOra a = new AngajatCuOra (123, "Andrei");
  95.         a.schimbaSalarPeOra(130);
  96.         a.calculSalar();
  97.         a.adaugaOre(3);
  98.         System.out.println(a.calculSalar());
  99.         AngajatCuSalariuFix b = new AngajatCuSalariuFix("Maria", 100);
  100.         b.schimbaSalariuFix(150);
  101.         System.out.println(b.calculSalar());
  102.         //System.out.println(b.toString());
  103.         Firma f = new Firma();
  104.         System.out.println(f.angajeaza(a));
  105.         System.out.println(f.angajeaza(b));
  106.         System.out.println(f.salariuMediu());
  107.         //System.out.println(f.toString());
  108.        
  109.        
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement