Advertisement
Demetra4

prob36Angajat

Nov 25th, 2019
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.84 KB | None | 0 0
  1. abstract class Angajat{
  2.     private String nume;
  3.     public Angajat(String s){
  4.         nume=s;
  5.     }
  6.     public abstract double calculSalar();
  7.     public boolean equals(Object o) {
  8.         if(o instanceof Angajat)
  9.             return (((Angajat)o).nume == nume);
  10.         else
  11.             return false;
  12.     }
  13.     public String getNume()
  14.     {
  15.         return nume;
  16.     }
  17. }
  18. class AngajatCuSalarFix extends Angajat{
  19.     private double salar;
  20.     public AngajatCuSalarFix(String n, double s){
  21.         super(n);
  22.         salar=s;
  23.     }
  24.     public double calculSalar(){
  25.         return salar;
  26.     }
  27.     public void  schimbaSalarFix(double d){
  28.         this.salar=d;
  29.     }
  30. }
  31. class AngajatCuOra extends Angajat{
  32.     private double sal_ora;
  33.     private Double[] tab = new Double[31];
  34.     private int nr;
  35.     public AngajatCuOra(String n, double s){
  36.         super(n);
  37.         sal_ora=s;
  38.     }
  39.     public void adaugaOre(double o){
  40.         int x=nr+1;
  41.         if(x<31)
  42.         {
  43.             tab[nr]=o;
  44.             nr++;
  45.         }
  46.     }
  47.     public void  schimbaSalarPeOra(double d){
  48.         this.sal_ora=d;
  49.     }
  50.    
  51.     public double calculSalar(){
  52.         int i;
  53.         double ore=0;
  54.         for(i=0;i<nr;i++)
  55.             ore+=tab[i];
  56.         return sal_ora*ore;
  57.     }
  58. }
  59.  
  60. class Firma{
  61.     private Angajat[] a = new Angajat[1024];
  62.     private int nr;
  63.     public int angajeaza(Angajat ang){
  64.         int x=nr+1;
  65.         int i,c=0;
  66.         for(i=0;i<nr;i++)
  67.             if(ang.equals(a[i])==true) c++;
  68.        
  69.         if(x>1024)
  70.             return -1;
  71.         else
  72.             if(c!=0)
  73.                 return -2;
  74.         else
  75.         {
  76.             a[nr]=ang;
  77.             nr++;
  78.             return 0;
  79.         }
  80.     }
  81.     public String toString(){
  82.         String s="Firma\n";
  83.         int i;
  84.         for(i=0;i<nr;i++)
  85.             s+=a[i].getNume()+" "+a[i].calculSalar()+" ";
  86.         return s;
  87.     }
  88.     public double salarMediu(){
  89.         int i;
  90.         double sum=0;
  91.         if(nr==0) return 0;
  92.         for(i=0;i<nr;i++)
  93.             sum+=a[i].calculSalar();
  94.         return sum/nr;
  95.     }
  96. }
  97.  
  98. class ClientFirma{
  99.     public static void main(String[] argv){
  100.         Angajat a1 = new AngajatCuSalarFix("Ang1", 1000);
  101.         Angajat a2 = new AngajatCuSalarFix("Ang2", 900);
  102.         Angajat a3 = new AngajatCuSalarFix("Ang3", 1090);
  103.         Angajat a4 = new AngajatCuOra("Ang4", 100);
  104.         ((AngajatCuOra)a4).adaugaOre(2);
  105.         ((AngajatCuOra)a4).adaugaOre(9);
  106.         ((AngajatCuOra)a4).adaugaOre(7);
  107.         ((AngajatCuOra)a4).adaugaOre(8);
  108.         ((AngajatCuSalarFix)a2).schimbaSalarFix(800);
  109.         Firma f = new Firma();
  110.         f.angajeaza(a1);
  111.         f.angajeaza(a2);
  112.         f.angajeaza(a3);
  113.         f.angajeaza(a4);
  114.         System.out.println(f);
  115.         System.out.println(f.salarMediu());
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement