AziendaExtends

This commit is contained in:
Orange 2016-11-18 19:06:16 +01:00
parent d3837d3c1b
commit 4ef504e28e
8 changed files with 275 additions and 0 deletions

View 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;
}

View 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;
}

View 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

View 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à;
}

View 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;
}

View 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

View 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;
}

View 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);
}
}