Classe Tesserino

Di seguito intestazione e implementazione della classe Punto scritta durante la lezione del 20 marzo 2013.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef TESSERINO_H
#define TESSERINO_H
 
#include "Studente.h"
 
class Tesserino {
    friend void setCostoPasto(int valore);
    friend void setPercentualeFascia(int i, int valore);
 
public:
    Tesserino(const Studente& studente, int fascia);
 
    int getFascia() const;
    void setFascia(int valore);
 
    int getCostoPastoFascia() const;
 
    void stampa() const;
 
private:
    static int costoPasto;
    static int percentualeFascia[3];
 
    Studente studente;
    int fascia;
};
 
#endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "Tesserino.h"
 
#include <cassert>
#include <iostream>
 
using namespace std;
 
int Tesserino::costoPasto = 600;
int Tesserino::percentualeFascia[] = { 20, 30, 50 };
 
Tesserino::Tesserino(const Studente& studenteInit, int fasciaInit)
: studente(studenteInit) {
    this->setFascia(fasciaInit);
}
 
int Tesserino::getFascia() const {
    return fascia;
}
 
void Tesserino::setFascia(int valore) {
    assert(1 <= valore && valore <= 3);
    fascia = valore;
}
 
int Tesserino::getCostoPastoFascia() const {
    assert(1 <= this->fascia && this->fascia <= 3);
    return Tesserino::costoPasto * Tesserino::percentualeFascia[this->fascia - 1] / 100;
}
 
void setCostoPasto(int valore) {
    assert(valore > 0);
    Tesserino::costoPasto = valore;
}
 
void setPercentualeFascia(int i, int valore) {
    assert(1 <= i && i <= 3);
    if(valore >= 0 && valore <= 100)
        Tesserino::percentualeFascia[i - 1] = valore;
}
 
void Tesserino::stampa() const {
    cout << studente.getNome() << " " << studente.getCognome() << " paga " << ( getCostoPastoFascia() / 100.0 ) << " euro" << endl;
}

Leave a Reply

Your email address will not be published. Required fields are marked *