Wskazówki potrzebne. Obiekty jako argumenty metod.

0

Witajcie, potrzebuję wskazówek, jak ruszyć takie oto zadanie.

Mam 4 klasy i polecenie.
Klasy są następujące:

import zad2.*;

public class **Main** {

  public static void main(String[] a) {
    EmpsList elist = new EmpsList();
    elist.add(new Employee("A", "Aaa", 20, 2000));
    elist.add(new Employee("B", "Bbb", 30, 4000));
    elist.add(new Employee("C", "CCC", 40, 5000));

    elist.showForward();
    elist.showBackward();
    elist.changeAllSalaries(10.0);
    elist.showForward();
  }

}    
import java.util.Scanner;

import zad2.Employee;

public class **EmpsList** {
// na razie pusta
}
package zad3;

import java.util.Scanner;

import zad2.Employee;

public class **Emps** {

}
package zad2;


public class **Employee **{

	private String firstName;
	private String lastName;
	private int age;
	private double salary;
	
	public Employee(String imie, String nazwisko, int wiek, double pensja){
		this.firstName = imie;
		this.lastName = nazwisko;
		this.age = wiek;
		this.salary = pensja;
	}
	public String getFirstName(){
		return firstName;
	}
	public String getLastName(){
		return lastName;
	}
	public void setSalary(double x){
		salary = x;
	}
	public double getSalary(){
		return salary;
	}
	public void chgSalary(double x){
		salary *= (1 + x/100);
	}
	
	public int getAge(){
		return age;
	}
	
	
	public String toString() {
		   return firstName + " " + lastName + " " + age + " " + salary;
		 }
}

Stworzyłem klasę Employee.
I się zawiesiłem.
Wszystkie 3 klasy oprócz klasy Employee są w tej samej paczce zad.3. Klasa Employee jest w paczce zad.2.

Zadanie jest jak następuje:

Lista pracowników:

Stworzyć klasę (o przykładowej nazwie Emps), której obiekty będą stanowić elementy (ogniwa) listy pracowników.
Każdy obiekt tej klasy zawiera trzy składniki: referencję do obiektu klasu Employee, który jest reprezentowany przez dany obiekt (e), referencję do poprzedniego elementu listy (prev) , referencję do następnego elementu listy (next).

Lista pracowników powinna być zrealizowana jako klasa EmpsList i może wygląda tak :

Zwróćmy uwagę, że tutaj w przypadku pierwszego elementu na liście wskazanie prev ma warość null (nie istnieje poprzedni element), a w przypadku ostatniego - wskazanie next ma wartość null (nie istnieje następny element).

Definicja klasy Employee - z poprzedniego zadania.

W klasie EmpsList dostarczyć:

- metody add(Employee e), dodającej na końcu listy element, reprezentujące pracownika e,
- metody showForward() i showBackward() wypisujące dane o pracownikach w kolejności od pierwszego elementu do ostatniego i odwrotnie,
- metodę changeAllSalaries - zmieniającą pensje wszystkich pracownikow na liście o podany jako argument procent.

Generator projektów stworzy (pustą) klasę EmpsList (którą trzeba wypełnić treścią) oraz testową klasę Main. Klasę Emps, używaną w opisie tego zadania należy utworzyć samodzielnie (i może ona miec dowolną nazwę).
Utworzona klasa Main ma następującą postać:

import zad2.*;

public class Main {
  
  public static void main(String[] a) {
    EmpsList elist = new EmpsList();
    elist.add(new Employee("A", "Aaa", 20, 2000));
    elist.add(new Employee("B", "Bbb", 30, 4000));
    elist.add(new Employee("C", "CCC", 40, 5000));

    elist.showForward();
    elist.showBackward();
    elist.changeAllSalaries(10.0);
    elist.showForward();
 }

}

a uruchomienie jej metody main winno wyprowadzić na konsolę następujące wyniki:

A Aaa 20 2000.0
B Bbb 30 4000.0
C CCC 40 5000.0
C CCC 40 5000.0
B Bbb 30 4000.0
A Aaa 20 2000.0
A Aaa 20 2200.0
B Bbb 30 4400.0
C CCC 40 5500.0

Kod klasy Main (utworzony przez generator) nie może być w żaden sposób zmieniony, a forma wydruku jest obowiązkowa.
Uwaga przy oprogramowaniu klasy EmpsList:

nie wolno używać tablic,
nie wolno używac gotowych klas (ze standardu Javy lub bibliotek zewnętrznych) realizujących koncepcję listy (kolekcji).

Poproszę o wskazówki, co dalej, nie wiem, od której strony ugryźć to.

Dziękuję,
Gieno

1

Generalnie chodzi o to abyś zaimplementował listę dwukierunkową ;)

0

Na pierwszy rzut oka, to wystarczy taka definicja klasy Emps:

public class Emps
{
     Employee e = null;
     Employee next = null;
     Employee prev = null;
}

A w klasie EmpsList prócz wymaganych metod, przydadzą się pola first i last typu Emps. Reszta wydaje się prosta.

1 użytkowników online, w tym zalogowanych: 0, gości: 1