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