Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class Angajat{
- private String nume;
- public Angajat(String s){
- nume=s;
- }
- public abstract double calculSalar();
- public boolean equals(Object o) {
- if(o instanceof Angajat)
- return (((Angajat)o).nume == nume);
- else
- return false;
- }
- public String getNume()
- {
- return nume;
- }
- }
- class AngajatCuSalarFix extends Angajat{
- private double salar;
- public AngajatCuSalarFix(String n, double s){
- super(n);
- salar=s;
- }
- public double calculSalar(){
- return salar;
- }
- public void schimbaSalarFix(double d){
- this.salar=d;
- }
- }
- class AngajatCuOra extends Angajat{
- private double sal_ora;
- private Double[] tab = new Double[31];
- private int nr;
- public AngajatCuOra(String n, double s){
- super(n);
- sal_ora=s;
- }
- public void adaugaOre(double o){
- int x=nr+1;
- if(x<31)
- {
- tab[nr]=o;
- nr++;
- }
- }
- public void schimbaSalarPeOra(double d){
- this.sal_ora=d;
- }
- public double calculSalar(){
- int i;
- double ore=0;
- for(i=0;i<nr;i++)
- ore+=tab[i];
- return sal_ora*ore;
- }
- }
- class Firma{
- private Angajat[] a = new Angajat[1024];
- private int nr;
- public int angajeaza(Angajat ang){
- int x=nr+1;
- int i,c=0;
- for(i=0;i<nr;i++)
- if(ang.equals(a[i])==true) c++;
- if(x>1024)
- return -1;
- else
- if(c!=0)
- return -2;
- else
- {
- a[nr]=ang;
- nr++;
- return 0;
- }
- }
- public String toString(){
- String s="Firma\n";
- int i;
- for(i=0;i<nr;i++)
- s+=a[i].getNume()+" "+a[i].calculSalar()+" ";
- return s;
- }
- public double salarMediu(){
- int i;
- double sum=0;
- if(nr==0) return 0;
- for(i=0;i<nr;i++)
- sum+=a[i].calculSalar();
- return sum/nr;
- }
- }
- class ClientFirma{
- public static void main(String[] argv){
- Angajat a1 = new AngajatCuSalarFix("Ang1", 1000);
- Angajat a2 = new AngajatCuSalarFix("Ang2", 900);
- Angajat a3 = new AngajatCuSalarFix("Ang3", 1090);
- Angajat a4 = new AngajatCuOra("Ang4", 100);
- ((AngajatCuOra)a4).adaugaOre(2);
- ((AngajatCuOra)a4).adaugaOre(9);
- ((AngajatCuOra)a4).adaugaOre(7);
- ((AngajatCuOra)a4).adaugaOre(8);
- ((AngajatCuSalarFix)a2).schimbaSalarFix(800);
- Firma f = new Firma();
- f.angajeaza(a1);
- f.angajeaza(a2);
- f.angajeaza(a3);
- f.angajeaza(a4);
- System.out.println(f);
- System.out.println(f.salarMediu());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement