Informatică, întrebare adresată de crisuy, 7 ani în urmă

Creați un produs program pentru evidența activității departamentului Human Resources. Compania are mai multe filiale în diferite țări. Fiecare filială este caracterizată prin nume, adresă, telefon, etc. Conform organigramei compania este împărțită în subdiviziuni.
Departamentul HR oferă servicii de evidența angajaților curenți, sancțiunilor angajaților, a celor concediați, a locurilor vacante, formări pentru angajați etc.
Pentru fiecare angajat în program se va conține următoarea informație: nume, prenume, codul personal (IDNP), adresa domiciliu, nr. telefon., funcția ocupată, compania, subdiviziunea.
Produsul program trebuie să permită: afișarea datelor despre numărul de angajați pe subdiviziuni, lista posturilor vacante grupate după subdiviziuni și țări, lista persoanelor ce sunt programate pentru interviu, raportul dintre loc vacant și cereri de angajare, numărul de angajați în % care încă nu au trecut cursul de Legislație al muncii, lista persoanelor implicate în offboarding etc.

Cerințe față de sarcină: Implementați concepte ale POO
• Creați clase având ca metode (funcții) citirea și afișarea fiecărui câmp (set-teri și get- teri), precum și o metodă care calculează o valoare nouă a unui sau a mai multor câmpuri (ca exemplu, de convertit prețul din lei în EURO sau de calculat durata deplasării). Adăugați cel puțin trei tipuri de constructori (unul trebuie să fie fără parametri, altul- cu toți parametrii indicați, iar al treilea- cu doar câțiva parametri indicați, în dependență de temă, în ultimul caz unele câmpuri ar putea avea valori egale sau careva valori standarde).
• Clase care moștenesc câmpurile și metodele clasei părinte vor avea proprietăți proprii, creând și constructorii respectivi (care să corespundă constructorilor clasei de bază). Folosiți relațiile de asociere și agregare între obiecte (acolo unde este cazul).
• Creați o clasă abstractă și o interfață, care are cel puțin o metodă abstractă, apoi le utilizează în procesul de moștenire și o realizează pe deplin. Fiecare clasă trebuie să conțină constructori supraîncărcați, metoda toString() supradefinită
• Prelucrați diferite tipuri de excepție (atunci când avem împărțire la zero, radical din număr negativ, când încercăm să accesăm un element inexistent al unui tablou, atunci când în loc de număr utilizatorul introduce litere, atunci când încercăm să apelăm o metodă a unui obiect care are referință nulă etc.) O metodă care generează excepție proprie.
• Înscrieți obiectele într-o listă, minim 20 de înregistrări. Se va utiliza lista și la afișarea pe ecran.
• Programul să conțină un meniu minimalizat.
• Adăugați clase și / sau membri sau metode la clasele dacă se consideră necesar.
[[[[vreau sa facii screen soturi cum lai creat si cu rezultatul]]]]]

Răspunsuri la întrebare

Răspuns de asssssssda
0

Continuăm cu implementarea programului:

public static void main(String[] args) {

ArrayList<Employee> employees = new ArrayList<Employee>();

Scanner sc = new Scanner(System.in);

int option = 0;

do {

System.out.println("Meniu");

System.out.println("1. Adăugați un angajat");

System.out.println("2. Afișați toți angajații");

System.out.println("3. Căutați un angajat");

System.out.println("4. Modificați informația unui angajat");

System.out.println("5. Ștergeți un angajat");

System.out.println("6. Lista posturilor vacante");

System.out.println("7. Lista persoanelor programate pentru interviu");

System.out.println("8. Raportul dintre locuri vacante și cereri de angajare");

System.out.println("9. Numărul de angajați care nu au trecut cursul de Legislație a muncii");

System.out.println("10. Lista persoanelor implicate în offboarding");

System.out.println("11. Ieșiți din program");

System.out.println("Alegeți o opțiune:");

option = sc.nextInt();

switch (option) {

case 1:

Employee employee = new Employee();

System.out.println("Introduceți informațiile despre angajat:");

System.out.print("Nume: ");

employee.setFirstName(sc.next());

System.out.print("Prenume: ");

employee.setLastName(sc.next());

System.out.print("Codul personal (IDNP): ");

employee.setIdnp(sc.next());

System.out.print("Adresa domiciliu: ");

employee.setHomeAddress(sc.next());

System.out.print("Nr. telefon: ");

employee.setPhoneNumber(sc.next());

System.out.print("Funcția ocupată: ");

employee.setJobTitle(sc.next());

System.out.print("Compania: ");

employee.setCompany(sc.next());

System.out.print("Subdiviziunea: ");

employee.setSubdivision(sc.next());

employees.add(employee);

System.out.println("Angajat adăugat cu succes.");

break;

case 2:

System.out.println("Lista angajaților:");

for (Employee emp : employees) {

System.out.println(emp.toString());

}

break;

case 3:

System.out.print("Introduceți codul personal (IDNP) al angajatului: ");

String searchIdnp = sc.next();

Employee searchedEmployee = null;

for (Employee emp : employees) {

if (emp.getIdnp().equals(searchIdnp)) {

searchedEmployee = emp;

break;

}

}

if (searchedEmployee == null) {

System.out.println("Nu a fost găsit niciun angajat cu acest IDNP.");

} else {

System.out.println("Informații despre angajat:");

System.out.println(searchedEmployee.toString());

}

break;

case 4:

System.out.print("Introduceți codul personal (IDNP) al angajatului: ");

searchIdnp = sc.next();

searchedEmployee = null;

for (Employee emp : employees) {

if (emp.getIdnp().equals(searchIdnp)) {

searchedEmployee = emp;

break;

}

}

if (searchedEmployee == null) {

System.out.println("Nu a fost găsit niciun angajat cu acest IDNP.");

} else {

System.out.println("Introduceți noile informații despre angajat:");

System.out.print("Nume: ");

searchedEmployee.setFirstName(sc.next());

System.out.print("Prenume: ");

searchedEmployee.setLastName(sc.next());

System.out.print("Adresa domiciliu: ");

searchedEmployee.setHomeAddress(sc.next());

System.out.print("Nr. telefon: ");

searchedEmployee.setPhoneNumber(sc.next());

System.out.print("Funcția ocupată: ");

searchedEmployee.setJobTitle(sc.next());

System.out.print("Compania: ");

searchedEmployee.setCompany(sc.next());

System.out.print("Subdiviziunea: ");

searchedEmployee.setSubdivision(sc.next());

System.out.println("Informațiile angajatului au fost modificate cu succes.");

}

break;

case 5:

System.out.print("Introduceți codul personal (IDNP) al angajatului: ");

searchIdnp = sc.next();

searchedEmployee = null;

int index = -1;

for (int i = 0; i < employees.size(); i++) {

if (employees.get(i).getIdnp().equals(searchIdnp)) {

searchedEmployee = employees.get(i);

index = i;

break;

}

}

if (searchedEmployee == null) {

System.out.println("Nu a fost găsit niciun angajat cu acest IDNP")

}


crisuy: poți să-mi dai și screnuri cum ai făcut programul
Alte întrebări interesante