Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum LETTORE { DOCENTE, STUDENTE, LIBERO };
- public static class TestoBase {
- private static int lastId = 0;
- private final int id, nPag, anno;
- private final String lingua;
- private String titolo;
- private float prezzo, sconto;
- public TestoBase(int id, int nPag, int anno, String lingua) {
- id = lastId++;
- this.id = id;
- this.nPag = nPag;
- this.anno = anno;
- this.lingua = lingua;
- }
- public TestoBase(int id, int nPag, int anno, String lingua,
- String titolo, float prezzo, float sconto) {
- this(id, nPag, anno, lingua);
- this.titolo = titolo;
- this.prezzo = prezzo;
- this.sconto = sconto;
- }
- public static int getLastId() {
- return lastId;
- }
- public static void setLastId(int lastId) {
- TestoBase.lastId = lastId;
- }
- public String getTitolo() {
- return titolo;
- }
- public void setTitolo(String titolo) {
- this.titolo = titolo;
- }
- public float getPrezzo() {
- return prezzo;
- }
- public void setPrezzo(float prezzo) {
- this.prezzo = prezzo;
- }
- public float getSconto() {
- return sconto;
- }
- public void setSconto(float sconto) {
- this.sconto = sconto;
- }
- public int getId() {
- return id;
- }
- public int getnPag() {
- return nPag;
- }
- public int getAnno() {
- return anno;
- }
- public String getLingua() {
- return lingua;
- }
- public float costoPagina() {
- // calcolo del costo per pagina senza sconto
- return prezzo / nPag;
- }
- public float prezzoFinale() {
- // calcolo dello sconto
- // scelta: sconto --> [ 0; 1 ]
- return prezzo - (prezzo * sconto);
- }
- @Override
- public String toString() {
- return String.format("Testo base %d:\n"
- + "\ttitolo: %s"
- + "\tanno: %d"
- + "\tpag: %d"
- + "\tprezzo finale: %d",
- getId(),
- getTitolo(),
- getAnno(),
- getnPag(),
- prezzoFinale());
- }
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof TestoBase)) return false;
- TestoBase t = (TestoBase) obj;
- return getId() == t.getId() &&
- getnPag() == t.getnPag() &&
- getTitolo() == t.getTitolo() &&
- getAnno() == t.getAnno();
- }
- /*
- * CARATTERISTICHE
- * - id (incremetale)
- * - n pagine
- * - lingua
- * - titolo
- * - anno
- * - prezzo
- * - sconto (in percentuale)
- *
- * FUNZIONI
- * - calcolo costo per pagina
- * - calcolo prezzo finale
- * - toString: titolo (n pagine): anno ; prezzo finale
- * - equals: confronto su id; n pagine; titolo; anno
- *
- * */
- }
- public static class TestoTecnico extends TestoBase {
- private String materia;
- private float scontoDoc;
- private float scontoStud;
- public TestoTecnico(int id, int nPag, int anno, String lingua,
- String materia, float scontoDoc, float scontoStud) {
- super(id, nPag, anno, lingua);
- this.materia = materia;
- this.scontoDoc = scontoDoc;
- this.scontoStud = scontoStud;
- }
- public TestoTecnico(int id, int nPag, int anno, String lingua,
- String titolo, float prezzo, float sconto,
- String materia, float scontoDoc, float scontoStud) {
- super(id, nPag, anno, lingua, titolo, prezzo, scontoStud);
- this.materia = materia;
- this.scontoDoc = scontoDoc;
- this.scontoStud = scontoStud;
- }
- public String getMateria() {
- return materia;
- }
- public void setMateria(String materia) {
- this.materia = materia;
- }
- public float getScontoDoc() {
- return scontoDoc;
- }
- public void setScontoDoc(float scontoDoc) {
- this.scontoDoc = scontoDoc;
- }
- public float getScontoStud() {
- return scontoStud;
- }
- public void setScontoStud(float scontoStud) {
- this.scontoStud = scontoStud;
- }
- public float prezzoFinale(LETTORE l) {
- float ssconto = 0,
- fprezzo = prezzoFinale();
- switch(l) {
- case DOCENTE: ssconto = scontoDoc; break;
- case STUDENTE: ssconto = scontoStud; break;
- }
- return fprezzo - (fprezzo * ssconto);
- }
- /*
- * CARATTERISTICHE:
- * - materia
- * - sconto docenti (percentuale)
- * - sconto studente (percentuale)
- *
- * FUNZIONI
- * - calcolo prezzo finale:
- * prende in ingresso il tipo di lettore e restitusce il prezzo finale
- * decurtato del giusto sconto (libero non ha sconti aggiuntivi)
- *
- * */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement