Advertisement
Guest User

Es

a guest
Jun 14th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.47 KB | None | 0 0
  1. enum LETTORE { DOCENTE, STUDENTE, LIBERO };
  2.     public static class TestoBase {
  3.        
  4.         private static int lastId = 0;
  5.        
  6.         private final int id, nPag, anno;
  7.        
  8.         private final String lingua;
  9.         private String titolo;
  10.        
  11.         private float prezzo, sconto;
  12.        
  13.         public TestoBase(int id, int nPag, int anno, String lingua) {
  14.            
  15.             id = lastId++;
  16.            
  17.             this.id = id;
  18.             this.nPag = nPag;
  19.             this.anno = anno;
  20.             this.lingua = lingua;
  21.         }
  22.         public TestoBase(int id, int nPag, int anno, String lingua,
  23.                         String titolo, float prezzo, float sconto) {
  24.            
  25.             this(id, nPag, anno, lingua);
  26.            
  27.             this.titolo = titolo;
  28.             this.prezzo = prezzo;
  29.             this.sconto = sconto;
  30.         }
  31.         public static int getLastId() {
  32.             return lastId;
  33.         }
  34.         public static void setLastId(int lastId) {
  35.             TestoBase.lastId = lastId;
  36.         }
  37.         public String getTitolo() {
  38.             return titolo;
  39.         }
  40.         public void setTitolo(String titolo) {
  41.             this.titolo = titolo;
  42.         }
  43.         public float getPrezzo() {
  44.             return prezzo;
  45.         }
  46.         public void setPrezzo(float prezzo) {
  47.             this.prezzo = prezzo;
  48.         }
  49.         public float getSconto() {
  50.             return sconto;
  51.         }
  52.         public void setSconto(float sconto) {
  53.             this.sconto = sconto;
  54.         }
  55.         public int getId() {
  56.             return id;
  57.         }
  58.         public int getnPag() {
  59.             return nPag;
  60.         }
  61.         public int getAnno() {
  62.             return anno;
  63.         }
  64.         public String getLingua() {
  65.             return lingua;
  66.         }
  67.        
  68.         public float costoPagina() {
  69.            
  70.             // calcolo del costo per pagina senza sconto
  71.            
  72.             return prezzo / nPag;
  73.         }
  74.         public float prezzoFinale() {
  75.            
  76.             // calcolo dello sconto
  77.             // scelta: sconto --> [ 0; 1 ]
  78.             return prezzo - (prezzo * sconto);
  79.         }
  80.        
  81.         @Override
  82.         public String toString() {
  83.            
  84.             return String.format("Testo base %d:\n"
  85.                                + "\ttitolo: %s"
  86.                                + "\tanno: %d"
  87.                                + "\tpag: %d"
  88.                                + "\tprezzo finale: %d",
  89.                                getId(),
  90.                                getTitolo(),
  91.                                getAnno(),
  92.                                getnPag(),
  93.                                prezzoFinale());
  94.         }
  95.         @Override
  96.         public boolean equals(Object obj) {
  97.            
  98.             if (!(obj instanceof TestoBase)) return false;
  99.            
  100.             TestoBase t = (TestoBase) obj;
  101.            
  102.             return getId() == t.getId() &&
  103.                    getnPag() == t.getnPag() &&
  104.                    getTitolo() == t.getTitolo() &&
  105.                    getAnno() == t.getAnno();
  106.         }
  107.        
  108.         /*
  109.          *      CARATTERISTICHE
  110.          *      - id (incremetale)
  111.          *      - n pagine
  112.          *      - lingua
  113.          *      - titolo
  114.          *      - anno
  115.          *      - prezzo
  116.          *      - sconto (in percentuale)
  117.          *
  118.          *      FUNZIONI
  119.          *      - calcolo costo per pagina
  120.          *      - calcolo prezzo finale
  121.          *      - toString: titolo (n pagine): anno ; prezzo finale
  122.          *      - equals: confronto su id; n pagine; titolo; anno
  123.          *
  124.          * */
  125.     }
  126.     public static class TestoTecnico extends TestoBase {
  127.    
  128.         private String materia;
  129.        
  130.         private float scontoDoc;
  131.         private float scontoStud;
  132.        
  133.         public TestoTecnico(int id, int nPag, int anno, String lingua,
  134.                             String materia, float scontoDoc, float scontoStud) {
  135.            
  136.             super(id, nPag, anno, lingua);
  137.            
  138.             this.materia = materia;
  139.             this.scontoDoc = scontoDoc;
  140.             this.scontoStud = scontoStud;
  141.         }
  142.         public TestoTecnico(int id, int nPag, int anno, String lingua,
  143.                             String titolo, float prezzo, float sconto,
  144.                             String materia, float scontoDoc, float scontoStud) {
  145.            
  146.             super(id, nPag, anno, lingua, titolo, prezzo, scontoStud);
  147.                        
  148.             this.materia = materia;
  149.             this.scontoDoc = scontoDoc;
  150.             this.scontoStud = scontoStud;
  151.         }
  152.        
  153.         public String getMateria() {
  154.             return materia;
  155.         }
  156.         public void setMateria(String materia) {
  157.             this.materia = materia;
  158.         }
  159.         public float getScontoDoc() {
  160.             return scontoDoc;
  161.         }
  162.         public void setScontoDoc(float scontoDoc) {
  163.             this.scontoDoc = scontoDoc;
  164.         }
  165.         public float getScontoStud() {
  166.             return scontoStud;
  167.         }
  168.         public void setScontoStud(float scontoStud) {
  169.             this.scontoStud = scontoStud;
  170.         }
  171.        
  172.         public float prezzoFinale(LETTORE l) {
  173.            
  174.             float ssconto = 0,
  175.                   fprezzo = prezzoFinale();
  176.            
  177.             switch(l) {
  178.                
  179.                 case DOCENTE: ssconto = scontoDoc; break;
  180.                 case STUDENTE: ssconto = scontoStud; break;
  181.             }
  182.            
  183.             return fprezzo - (fprezzo * ssconto);
  184.         }
  185.        
  186.         /*
  187.          *      CARATTERISTICHE:
  188.          *      - materia
  189.          *      - sconto docenti (percentuale)
  190.          *      - sconto studente (percentuale)
  191.          *
  192.          *      FUNZIONI
  193.          *      - calcolo prezzo finale:
  194.          *          prende in ingresso il tipo di lettore e restitusce il prezzo finale
  195.          *          decurtato del giusto sconto (libero non ha sconti aggiuntivi)
  196.          *
  197.          * */
  198.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement