-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcucina.cpp
47 lines (35 loc) · 1.56 KB
/
cucina.cpp
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
44
45
46
47
#include "cucina.h"
float Cucina::_pesoCucina=1.45; // => 1.45^(numeroCommensali) punti ogni pasto
Cucina::Cucina(const std::string & nome, int tempoStimato, unsigned short numeroCommensali, Inquilino *incaricato, bool svolto):
Incarico(nome,incaricato,svolto), Faccenda(tempoStimato), _numeroCommensali(numeroCommensali) {}
Cucina* Cucina::clone() const {return new Cucina(*this);}
bool Cucina::posponi(const Data & d) const
{
return Incarico::posponi(d) && _numeroCommensali>6;
}
string Cucina::generaNota() const
{
return "CUCINA\n\n"+Incarico::generaNota()+"\n"+Faccenda::generaNota()+
"\nPunteggio: "+std::to_string(calcolaPunteggio())+" punti \n"+
"Numero commensali: "+std::to_string(_numeroCommensali)+"\n\n"+"Forza chef: mettiti ai fornelli!";
}
unsigned short int Cucina::calcolaPunteggio() const
{
return controlloSoglia(std::pow(_pesoCucina,_numeroCommensali));
}
void Cucina::exportXml(QXmlStreamWriter & xmlOutput,string data) const
{
xmlOutput.writeStartElement(QString::fromStdString("CUCINA"));
Faccenda::exportXml(xmlOutput,data);
xmlOutput.writeTextElement("numeroCommensali", QString::fromStdString(std::to_string(_numeroCommensali)));
xmlOutput.writeEndElement();
}
std::string Cucina::getLabel() const {return "Cucina";}
void Cucina::importXml(QXmlStreamReader & xmlInput, vector<string> & parametri)
{
Faccenda::importXml(xmlInput,parametri);
string numeroCommensali;
assignWithXml(xmlInput, "numeroCommensali", numeroCommensali);
parametri[6]=numeroCommensali;
parametri[1]="Cucina";
}