-
Notifications
You must be signed in to change notification settings - Fork 0
/
Main.js
129 lines (102 loc) · 3.11 KB
/
Main.js
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
//Referente a Universidades e Repúblicas
class Curso {
constructor(nome, carga) {
this.nome = nome;
this.carga = carga;
}
}
class Universidade {
constructor(nome, curso) {
this.nome = nome;
this.cursos = curso;
}
}
class Republica {
constructor(nome, idade, n_moradores) {
this.nome = nome;
this.idade = idade;
this.n_moradores = n_moradores;
}
}
//Referente ao comércio
class Bebida {
constructor(nome, valor, lata) {
this.nome = nome;
this.valor = valor;
this.lata = lata;
}
}
class Pedido {
constructor(n_pessoas, vet_bebidas) {
this.n_pessoas = n_pessoas;
this.vet_bebidas = vet_bebidas;
this.total = 0;
}
CalculaTotal() {
for(let i = 0; i < this.vet_bebidas.length; i++) {
this.total = this.total + this.vet_bebidas[i].valor;
}
return (this.total);
}
CalculaIndividual() {
this.total = 0;
return (this.CalculaTotal()/this.n_pessoas);
}
setTotalToZero() {
this.total = 0;
}
}
//Referente a Pessoa
class Pessoa {
constructor(nome, idade) {
this.nome = nome;
this.idade = idade;
}
}
class Estudante extends Pessoa {
constructor(nome, idade, universidade, curso, republica) {
super(nome, idade);
this.universidade = universidade;
this.curso = curso;
this.republica = republica;
}
PedirConta(pedido) {
pedido.setTotalToZero();
return ("O total da conta foi: "
+ pedido.CalculaTotal().toFixed(2)
+ ". Sendo assim, ficou: "
+ pedido.CalculaIndividual().toFixed(2)
+ " pra cada.");
}
}
class Bartender extends Pessoa {
constructor(nome, idade) {
super(nome, idade);
}
ChecarID(Pessoa) {
if(Pessoa.idade > 17) {
return `${Pessoa.nome} é maior de idade.\n`;
} else {
return `${Pessoa.nome} é menor de idade.\n`;
}
}
}
//Main
let republica0 = new Republica("Orfanato", 10, 6);
let curso0 = new Curso("CJM", 3630);
let curso1 = new Curso("SJM", 3000);
let curso2 = new Curso("EJM", 3630);
let universidade0 = new Universidade("UFOP", [curso0, curso1]);
let pessoa0 = new Estudante("Pedro", 20, universidade0, curso0, republica0);
let pessoa1 = new Estudante("Ana", 17, universidade0, curso0, republica0);
let pessoa2 = new Estudante("Constantino", 24, universidade0, curso2, republica0);
let pessoa3 = new Estudante("Parmênedes", 17, universidade0, curso1, republica0);
let pessoa4 = new Bartender("Cícero", 33);
let bebida0 = new Bebida("Guaraná Jesus", 4.99, true);
let bebida1 = new Bebida("Hidromel 1,25L", 59.89, false);
let bebida2 = new Bebida("Cerveja Heineken", 5.49, true);
let pedido0 = new Pedido(4, [bebida0, bebida0, bebida1, bebida2]);
console.log(pessoa4.ChecarID(pessoa0), pessoa4.ChecarID(pessoa1), pessoa4.ChecarID(pessoa2), pessoa4.ChecarID(pessoa3));
console.log(pessoa0, pessoa1, pessoa2, pessoa3, pessoa4);
console.log(pedido0);
console.log(pessoa1.PedirConta(pedido0));