Zad. 1 Pracownicy (4 p.)
Stworzyć klasę Employee (pracownik), opisującą wspólne atrrybuty pracowników:
- imię,
- nazwisko,
- wiek,
- pensja.
oraz zawierającą odpowiednie metody, które pozwolą w programie testującym dla kilku pracowników:
- uzyskać opis pracownika,
- zmienić pensję o podany procent.
public class Employee {
public String imie;
public String nazwisko;
public int wiek;
public double pensja;
public double zmianaPensji;
// ................................. ATRYBUTY PRACOWNIKOW
public Employee (){
}
public String podajImie(){
return imie;
}
public String podajNazwisko(){
return nazwisko;
}
public int podajWiek(){
return wiek;
}
public double podajPensje(){
return pensja;
}
// ..................... OPIS PRACOWNIKA I ZMIANA PENSJI O DANY PROCENT
public String toString(){
return imie + " " + nazwisko + ", wiek: " + wiek + " lat, pensja: " + pensja;
}
public double zmianaPensji(){
zmianaPensji = pensja+((zmianaPensji/100.0)*pensja);
return zmianaPensji;
}
public Employee(String imie, String nazwisko, int wiek, double pensja){
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
this.pensja = pensja;
}
}
Zad. 2 Pracownicy II (4 p.)
Użyć klasy z poprzedniego zadania w innej klasie, w której dostarczymy:
metody definiowania danych o pracownikach:
Employee defEmp(String msg)
która w dialogu wejściowym pyta użytkownika o dane pracownika (argument msg jest wspólną częścią komunikatu wyświetlanego w oknie dialogowym przy pytaiu o różne dane dla pracownika, może to być np. "Pracownik 1"), tworzy obiekt, reprezentujący wprowadzone dane o pracowniku i zwraca referencję do niego.
metody showInfo(Employee)
, która wyświetla w dialogu komunikatów dane o podanym jako argument pracowniku
metody changeSalary(Employee)
, która pyta o procent o jaki chcemy zmienić pensję podanego jako argument pracownika i zmienia tę pensję..
W metodach zadbać o obsługę błędów.
Przetestować te metody na przykładzie wprowadzenia danych dla 3 pracowników, pokazania tych danych, zmiany pensji i pokazania zmienionych danych.
import javax.swing.JOptionPane;
public class Emp {
public Employee defEmp(String msg){
Employee newEmployee = new Employee();
String imie = JOptionPane.showInputDialog("Podaj imię pracownika");
if (imie == null){
imie = "";
}
newEmployee.imie = imie;
String nazwisko = JOptionPane.showInputDialog("Podaj nazwisko pracownika");
if (nazwisko == null){
nazwisko ="";
}
newEmployee.nazwisko = nazwisko;
String w = JOptionPane.showInputDialog("Podaj wiek pracownika");
if(w == null){
w = "";
}
int wiek = Integer.parseInt(w);
newEmployee.wiek = wiek;
String p = JOptionPane.showInputDialog("Podaj pensje pracownika");
if(p == null){
p = "";
}
double pensja = Double.parseDouble(p);
newEmployee.pensja = pensja;
return newEmployee;
}
public static void changeSalary(Employee emp){
Employee newEmployee = new Employee();
String zmiana = JOptionPane.showInputDialog("Podaj o ile zmienić pensję");
int zmianaPensji = Integer.parseInt(zmiana);
if (zmiana == null){
newEmployee.zmianaPensji = newEmployee.pensja;
}
else {
newEmployee.zmianaPensji = zmianaPensji;
}
}
public static void showInfo(Employee emp) {
JOptionPane.showMessageDialog(null, msg);
}
public static void main(String[] args) {
String dane = JOptionPane.showInputDialog(msg);
if (dane == null){
dane = "Nie wprowadzono danych";
}
else {
JOptionPane.showMessageDialog(null, msg);
}
}
}
error: cannot find symbol
JOptionPane.showMessageDialog(null, msg);
symbol: variable msg
location: class Emp
error: cannot find symbol
String dane = JOptionPane.showInputDialog(msg);
symbol: variable msg
location: class Emp
error: cannot find symbol
JOptionPane.showMessageDialog(null, msg);
symbol: variable msg
location: class Emp
3 errors
Mam problem z drugim zadaniem a mianowicie z metodą showInfo(Employee)
i changeSalary(Employee)
. Posiłkowałam się rozwiązaniami z internetu, jednak wiele z nich miało błędy, dlatego postanowiłam napisać to w swojej wersji i pojawił się właśnie problem z tymi metodami. Nie wiem co powinnam zmienić i jak ten program dokończyć. Mam nadzieje, że chociaż zadanie 1 jest rozwiązane dobrze.
Bardzo proszę o pomoc.
dodanie znaczników <code>, <code class="java"> i `` - fp