AziendaExtends
This commit is contained in:
parent
d3837d3c1b
commit
4ef504e28e
43
src/AziendaExtends/Azienda.java
Normal file
43
src/AziendaExtends/Azienda.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Azienda{
|
||||||
|
|
||||||
|
public Azienda(Scanner scDipendenti, Scanner scOreLavoro) throws Exception{
|
||||||
|
Dipendente dip=read(scDipendenti);
|
||||||
|
ArrayList<OreLavoro> oreLavoro = new ArrayList<OreLavoro>();
|
||||||
|
dipendenti = new ArrayList<Dipendente>();
|
||||||
|
OreLavoro ol=OreLavoro.read(scOreLavoro);
|
||||||
|
while(ol!=null){
|
||||||
|
oreLavoro.add(ol);
|
||||||
|
ol=OreLavoro.read(scOreLavoro);
|
||||||
|
}
|
||||||
|
while(dip!=null){
|
||||||
|
for(OreLavoro ore: oreLavoro)
|
||||||
|
if(dip.getCodiceFiscale().equals(ore.getCodiceFiscale()))
|
||||||
|
dip.setOreLavoro(ore.getOreLavoro());
|
||||||
|
|
||||||
|
dipendenti.add(dip);
|
||||||
|
dip=read(scDipendenti);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dipendente read(Scanner sc) throws Exception{
|
||||||
|
String id;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
id=sc.next();
|
||||||
|
if(id.equals("OP"))
|
||||||
|
return Operaio.read(sc);
|
||||||
|
else
|
||||||
|
return Dirigente.read(sc);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
for(Dipendente dip: dipendenti)
|
||||||
|
ps.println(dip.getCodiceFiscale()+" "+dip.getNome()+" "+dip.getCnome()+" "+dip.calcoloPaga());
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArrayList<Dipendente> dipendenti;
|
||||||
|
}
|
83
src/AziendaExtends/Dipendente.java
Normal file
83
src/AziendaExtends/Dipendente.java
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Dipendente{
|
||||||
|
|
||||||
|
public Dipendente(String codiceFiscale, String nome, String cnome, double paga){
|
||||||
|
|
||||||
|
this.codiceFiscale=codiceFiscale;
|
||||||
|
this.nome=nome;
|
||||||
|
this.cnome=cnome;
|
||||||
|
this.paga=paga;
|
||||||
|
this.oreLavoro=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double calcoloPaga(){
|
||||||
|
return oreLavoro*getPaga();
|
||||||
|
}
|
||||||
|
|
||||||
|
//METODI GET
|
||||||
|
|
||||||
|
public String getCodiceFiscale(){
|
||||||
|
return codiceFiscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNome(){
|
||||||
|
return nome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCnome(){
|
||||||
|
return cnome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getPaga(){
|
||||||
|
return paga;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOreLavoro(){
|
||||||
|
return oreLavoro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOreLavoro(int ore){
|
||||||
|
oreLavoro=ore;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//I/O
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return codiceFiscale+" "+nome+" "+cnome+" "+paga;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println(codiceFiscale);
|
||||||
|
ps.println(nome);
|
||||||
|
ps.println(cnome);
|
||||||
|
ps.println(paga);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dipendente read(Scanner sc) throws Exception{
|
||||||
|
String codiceFiscale, nome, cnome;
|
||||||
|
double paga;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codiceFiscale=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
nome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
cnome=sc.next();
|
||||||
|
if(!sc.hasNextDouble()) return null;
|
||||||
|
paga=sc.nextDouble();
|
||||||
|
|
||||||
|
return new Dipendente(codiceFiscale, nome, cnome, paga);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String codiceFiscale;
|
||||||
|
private String nome;
|
||||||
|
private String cnome;
|
||||||
|
private double paga;
|
||||||
|
private int oreLavoro;
|
||||||
|
|
||||||
|
}
|
10
src/AziendaExtends/Dipendenti
Normal file
10
src/AziendaExtends/Dipendenti
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
OP GFYDFG67J15A789M Paperino Duck Operaio I 120
|
||||||
|
OP GDRSFG67B12Y456Y Pippo Goofy Operaio I 120
|
||||||
|
DIR HJKDTF34G11G134G Topolino Mouse R&D 600
|
||||||
|
OP GFHHHH56U77U894G Pluto Pluto Operaio I 120
|
||||||
|
DIR GSDHBG12H34H765F Eta Beta Approvvigionamento 1000
|
||||||
|
OP MFGTYG12F44H897Y Qui Duck Operaio II 220
|
||||||
|
OP MGRFGH16J0JU908M Quo Duck Operaio II 220
|
||||||
|
OP GSDHBG12H34H765F Qua Duck Operaio II 220
|
||||||
|
DIR XDDHBG12Y84H767J Paperino Fauntleroy Contabilità 330
|
||||||
|
DIR GSDTGB12H31E764Y Goku Son Personale 1000
|
34
src/AziendaExtends/Dirigente.java
Normal file
34
src/AziendaExtends/Dirigente.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Dirigente extends Dipendente{
|
||||||
|
|
||||||
|
public Dirigente(String codiceFiscale, String nome, String cnome, double paga, String areaResponsabilità){
|
||||||
|
super(codiceFiscale, nome, cnome, paga);
|
||||||
|
this.areaResponsabilità=areaResponsabilità;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
super.print(ps);
|
||||||
|
ps.println(areaResponsabilità);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dirigente read(Scanner sc) throws Exception{
|
||||||
|
String nome, cnome, areaResponsabilità, codiceFiscale;
|
||||||
|
double paga;
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codiceFiscale=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
nome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
cnome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
areaResponsabilità=sc.next();
|
||||||
|
if(!sc.hasNextDouble()) return null;
|
||||||
|
paga=sc.nextDouble();
|
||||||
|
|
||||||
|
return new Dirigente(codiceFiscale, nome, cnome, paga, areaResponsabilità);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String areaResponsabilità;
|
||||||
|
}
|
52
src/AziendaExtends/Operaio.java
Normal file
52
src/AziendaExtends/Operaio.java
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Operaio extends Dipendente{
|
||||||
|
|
||||||
|
public Operaio(String codiceFiscale, String nome, String cnome, double paga, String funzione, String livello){
|
||||||
|
super(codiceFiscale, nome, cnome, paga);
|
||||||
|
this.funzione=funzione;
|
||||||
|
this.livello=livello;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
super.print(ps);
|
||||||
|
ps.println(funzione);
|
||||||
|
ps.println(livello);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return super.toString()+" "+funzione+" "+livello;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double calcoloPaga(){
|
||||||
|
int oreLavoro=super.getOreLavoro();
|
||||||
|
if(oreLavoro>165)
|
||||||
|
return ((oreLavoro-165)*0.3+165)*super.getPaga();
|
||||||
|
else
|
||||||
|
return oreLavoro*super.getPaga();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Operaio read(Scanner sc) throws Exception{
|
||||||
|
String nome, cnome, livello, funzione, codiceFiscale;
|
||||||
|
double paga;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codiceFiscale=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
nome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
cnome=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
funzione=sc.next();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
livello=sc.next();
|
||||||
|
if(!sc.hasNextDouble()) return null;
|
||||||
|
paga=sc.nextDouble();
|
||||||
|
|
||||||
|
return new Operaio(codiceFiscale, nome, cnome, paga, funzione, livello);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String livello;
|
||||||
|
private String funzione;
|
||||||
|
}
|
10
src/AziendaExtends/OreLavoro
Normal file
10
src/AziendaExtends/OreLavoro
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
GFYDFG67J15A789M 100
|
||||||
|
GDRSFG67B12Y456Y 100
|
||||||
|
HJKDTF34G11G134G 1000
|
||||||
|
GFHHHH56U77U894G 200
|
||||||
|
GSDHBG12H34H765F 300
|
||||||
|
MFGTYG12F44H897Y 400
|
||||||
|
MGRFGH16J0JU908M 100
|
||||||
|
GSDHBG12H34H765F 100
|
||||||
|
XDDHBG12Y84H767J 100
|
||||||
|
GSDTGB12H31E764Y 1000
|
32
src/AziendaExtends/OreLavoro.java
Normal file
32
src/AziendaExtends/OreLavoro.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class OreLavoro{
|
||||||
|
|
||||||
|
public OreLavoro(int oreLavoro, String codiceFiscale){
|
||||||
|
this.oreLavoro=oreLavoro;
|
||||||
|
this.codiceFiscale=codiceFiscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OreLavoro read(Scanner sc) throws Exception{
|
||||||
|
String codiceFiscale;
|
||||||
|
int oreLavoro;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codiceFiscale=sc.next();
|
||||||
|
if(!sc.hasNextInt()) return null;
|
||||||
|
oreLavoro=sc.nextInt();
|
||||||
|
|
||||||
|
return new OreLavoro(oreLavoro, codiceFiscale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOreLavoro(){
|
||||||
|
return oreLavoro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodiceFiscale(){
|
||||||
|
return codiceFiscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int oreLavoro;
|
||||||
|
private String codiceFiscale;
|
||||||
|
}
|
11
src/AziendaExtends/Test.java
Normal file
11
src/AziendaExtends/Test.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class Test{
|
||||||
|
public static void main(String [] args) throws Exception{
|
||||||
|
Scanner scDipendenti = new Scanner(new File("Dipendenti"));
|
||||||
|
Scanner scOreLavoro = new Scanner(new File("OreLavoro"));
|
||||||
|
Azienda azienda = new Azienda(scDipendenti, scOreLavoro);
|
||||||
|
azienda.print(System.out);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user