Java trudne początki

0

Stworzyć klasę Employee (pracownik), opisującą wspólne atrrybuty danych o pracownikach:

  • imię,
  • nazwisko,
  • wiek,
  • pensja.

oraz zawierającą odpowiednie metody, które pozwolą uzyskać informacje o danym pracowniku oraz ustalić pensję i zmienić pensję o podany procent.

Użyć tej klasy w innej klasie, w której dostarczymy:

  1. metody definiowania danych o pracownikach:
    Employee defEmp(String msg),
    która w dialogu wejściowym

pyta użytkownika o dane pracownika (argument msg jest komunikatem np. "Podaj dane o pracowniku"),
tworzy obiekt, reprezentujący wprowadzone dane o pracowniku,
i zwraca referencję do niego.

  1. metody showInfo(Employee), która wyświetla w dialogu komunikatów dane o podanym jako argument pracowniku

  2. metody changeSalary(Employee), która pyta o procent o jaki chcemy zmienić pensję podanego jako argument pracownika i zmienia tę pensję.

Przetestować te metody na przykładzie wprowadzenia danych dla 3 pracowników, pokazania tych danych, zmiany pensji i pokazania zmienionych danych.

Do wprowadzabnia danych użyć dialogu i skanera.
Klasa Main nienaruszalna

import javax.swing.JOptionPane;

public class Main {

  public static void main(String[] args) {

    Employee Janek = new Employee("Jan", "Janek", 30, 4000.0);
    System.out.println(Janek);
    System.out.println(Janek.getFirstName() + " " + Janek.getLastName());
    System.out.println("Za rok bedzie mial: " + (Janek.getAge() + 1) + " lat.");
    Janek.chgSalary(3.5);
    System.out.println("I bedzie zarabial: " + Janek.getSalary() );

    Employee e = EmpManager.defEmp("Podaj dane pracownika");
    if (e == null) JOptionPane.showMessageDialog(null, "Nie podano danych");
    else {
      EmpManager.showInfo(e);
      EmpManager.changeSalary(e);
      EmpManager.showInfo(e);
    }
  }
}


.

Klasa emploee stworzona przeze mnie

public class Employee {
      //pola klasy Employee to nimi bedziemy manipulować w programie
        
    private String firstName;
    private String lastName;
    private int age;
    private double salary;
     
    
           
      public Employee()
      {
      }
    
      
      public Employee( String fN, String lN, int a, double s  )
      {
          this.firstName=fN;
          this.lastName=lN;
          this.age=a;
          this.salary=s;
          
      }
      
      
     
      public String toString(){
          return firstName+" "   +  lastName +" " + age  + " " +  salary ;
      }
      
      
      
      public String getFirstName()
      {
          return firstName;
      }
      
      public String getLastName()
      {
          return lastName;
      }
      
      public int getAge()
      {
          return age;
      }
      public double getSalary()
     {
          return salary;
     
    }
     public double setSalary()
     {
         return salary;
         
     }
     
     
     
     public void chgSalary(double percent)
     {
         double chg = salary * percent/100;
        salary += chg;          
     }     
     
      
    }
      
 

.

do stworzenia mam klase

import java.util.*;
import static javax.swing.JOptionPane.*;
 
 
public class EmpManager {

 

.

  1. metody definiowania danych o pracownikach:
    Employee defEmp(String msg),
    która w dialogu wejściowym

    pyta użytkownika o dane pracownika (argument msg jest komunikatem np. "Podaj dane o pracowniku"),
    tworzy obiekt, reprezentujący wprowadzone dane o pracowniku,
    i zwraca referencję do niego.

  2. metody showInfo(Employee), która wyświetla w dialogu komunikatów dane o podanym jako argument pracowniku

  3. metody changeSalary(Employee), która pyta o procent o jaki chcemy zmienić pensję podanego jako argument pracownika i zmienia tę pensję.

Przetestować te metody na przykładzie wprowadzenia danych dla 3 pracowników, pokazania tych danych, zmiany pensji i pokazania zmienionych danych.

Do wprowadzania danych użyć dialogu i skanera.

od trzech dni kręcę się w miejscu
Wiem że już nic nie wiem !

0

Więc o co chodzi?

0

totalnie nie wiem jak się do tego zabrać
nie potrafię jej napisać
zupełnie

0

Przy podanych wymaganiach metody muszę być statyczne. Na zachętę masz jedną metodę (bez kontroli czy użytkownik pytany o wiek i pensję podał liczby).

import java.util.Scanner;

public class EmpManager
{
    public static Employee defEmp(String msg)
    {
        System.out.println(msg);
        Scanner scanner = new Scanner(System.in);
        System.out.print("Imie: ");
        String firstName = scanner.nextLine();
        System.out.print("Nazwisko: ");
        String sureName = scanner.nextLine();
        System.out.print("Wiek: ");
        int age = scanner.nextInt();
        scanner.nextLine();
        System.out.print("Pensja: ");
        double salary = scanner.nextDouble();
        scanner.nextLine();
        return new Employee(firstName,sureName,age,salary);
    }    
}

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