Skip to content
Open

lab1 #54

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/lab-java-basics.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 38 additions & 0 deletions src/Employ.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
public class Employ {
// 1. Le proprietà vanno qui (fuori dai metodi)
public String name;
public String idNumber;
public String department;
private double salary;
private Integer level;

// 2. Il costruttore
public Employ(String name, String idNumber, String department, double salary, Integer level) {
this.name = name;
this.idNumber = idNumber;
this.department = department;
this.salary = salary;
this.level = level;
}

// 3. I metodi della classe
public void login() {
System.out.println("Benvenuto " + this.name);
}

public void setSalary(double salary) {
this.salary = salary;
}

public double getSalary() {
return salary;
}

public int getLevel() {
return level;
}

public void setLevel(int level) {
this.level = level;
}
}
22 changes: 22 additions & 0 deletions src/Intern.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
public class Intern extends Employ{
// Costante per il limite massimo di stipendio
private static final double MAX_SALARY = 20000.0;

// Costruttore
public Intern(String name, String idNumber, String department, double salary, int level) {
super(name, idNumber, department, 0, level);
// Usiamo il setter validato per impostare lo stipendio iniziale
this.setSalary(salary);
}

// Override del setter per validare il limite salariale
@Override
public void setSalary(double salary) {
if (salary > MAX_SALARY) {
System.out.println("Attenzione: Stipendio non valido per un Intern. Impostato al massimo consentito: " + MAX_SALARY);
super.setSalary(MAX_SALARY);
} else {
super.setSalary(salary);
}
}
}
42 changes: 42 additions & 0 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {{
// Creazione di un array per contenere 10 dipendenti
Employ[] staff = new Employ[10];
// Test di un dipendente normale
Employ emp = new Employ("Mario", "001", "IT", 25000.0, 1);
emp.login();
System.out.println("Salario Mario: " + emp.getSalary());

// Test dello stagista (Intern)
Intern intern = new Intern("Luca", "002", "Marketing", 25000.0, 0);
System.out.println("Salario Luca (dovrebbe essere 20000): " + intern.getSalary());


// Inizializzazione dei 10 dipendenti
staff[0] = new Employ("Mario Rossi", "E001", "IT", 35000.0, 3);
staff[1] = new Employ("Luigi Verdi", "E002", "HR", 28000.0, 2);
staff[2] = new Employ("Anna Bianchi", "E003", "Marketing", 32000.0, 3);
staff[3] = new Employ("Giulia Neri", "E004", "IT", 45000.0, 5);
staff[4] = new Employ("Paolo Gialli", "E005", "Finance", 38000.0, 4);
staff[5] = new Employ("Elena Viola", "E006", "Sales", 26000.0, 1);
staff[6] = new Employ("Marco Blu", "E007", "IT", 31000.0, 2);
staff[7] = new Employ("Sofia Rosa", "E008", "HR", 29500.0, 2);
staff[8] = new Employ("Luca Marrone", "E009", "Finance", 41000.0, 4);
staff[9] = new Intern("Sara Arancio", "I010", "IT", 15000.0, 0); // Esempio con Intern

// Ciclo per stampare le proprietà di tutti i 10 dipendenti
System.out.println("--- ELENCO DIPENDENTI ---");
for (int i = 0; i < staff.length; i++) {
System.out.println("Dipendente #" + (i + 1));
System.out.println("Nome: " + staff[i].name);
System.out.println("ID: " + staff[i].idNumber);
System.out.println("Reparto: " + staff[i].department);
System.out.println("Stipendio: " + staff[i].getSalary() + "€");
System.out.println("Livello: " + staff[i].getLevel());
System.out.println("-------------------------");
}
}
}
}
30 changes: 30 additions & 0 deletions src/Numbers.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
public class Numbers {
//Write a method in Java to get the difference between the largest and smallest values in an array of integers.
// The length of the array must be 1 and above. Use loops and conditionals to develop the algorithm.
void main() {
int[] numbers = {2, 8, 23, 14, 5};

// Inizializziamo con il primo elemento dell'array
int maxNumberList = numbers[0];
int minNumberList = numbers[0];

for (int number : numbers) {
// Controllo per il massimo
if (number > maxNumberList) {
maxNumberList = number;
}
// Controllo per il minimo
if (number < minNumberList) {
minNumberList = number;
}
}

int difference = maxNumberList - minNumberList;

System.out.println("Max num is: " + maxNumberList);
System.out.println("Min num is: " + minNumberList);
System.out.println("The difference is: " + difference);
}


}
34 changes: 34 additions & 0 deletions src/Numbers2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
public class Numbers2 {
void main() {

//Write a method in Java to find the smallest and second smallest elements of a given array and print it in the console.
// Use loops and conditionals to develop the algorithm.
int[] numbers = {1, 81, 3, 4, 20};

// Inizializziamo con i valori massimi possibili per trovare i minimi
int smallest = Integer.MAX_VALUE;
int secondSmallest = Integer.MAX_VALUE;

int max = numbers[0];
int min = numbers[0];

for (int number : numbers) {
// Logica per Differenza (Max/Min)
if (number > max) max = number;
if (number < min) min = number;

// Logica per il più piccolo e il secondo più piccolo
if (number < smallest) {
secondSmallest = smallest;
smallest = number;
} else if (number < secondSmallest && number != smallest) {
secondSmallest = number;
}
}

System.out.println("Differenza (Max - Min): " + (max - min));
System.out.println("Il più piccolo: " + smallest);
System.out.println("Il secondo più piccolo: " + secondSmallest);
}

}