-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculate_algoritm.py
executable file
·88 lines (78 loc) · 2.19 KB
/
calculate_algoritm.py
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
class Situation:
def __init__(self, aanwezige_uren, totale_uren, leerjaar, cijfers):
self.aanwezige_uren = aanwezige_uren
self.totale_uren = totale_uren
self.leerjaar = leerjaar
self.cijfers = cijfers
self.s = 0
self.a = 0
self.c = 0
self.m = 0
@property
def gemiddeld_cijfer(self):
return sum(self.cijfers) / len(self.cijfers)
@property
def jaren_te_gaan(self):
jaren_te_gaan = 4 - self.leerjaar
if jaren_te_gaan < 0:
jaren_te_gaan = 0
return jaren_te_gaan
def calculate(self):
self.s = 1 + (self.jaren_te_gaan / 100 * 5)
self.a = (100 - (self.aanwezige_uren / self.totale_uren * 100)) * 0.4
self.c = (10 - self.gemiddeld_cijfer) * 8
self.m = 100 - (self.a + self.c) * self.s
return self.m
def __str__(self):
self.calculate()
return 'Aanwezigheid: {} van de {} uur. Gemiddeld cijfer: {}. Leerjaar: {} ({} te gaan).\n{}'.format(
self.aanwezige_uren,
self.totale_uren,
self.gemiddeld_cijfer,
self.leerjaar,
self.jaren_te_gaan,
'S={}, A={}, C={}, M={}'.format(self.s, self.a, self.c, self.m)
)
def main():
situations = [
Situation(
aanwezige_uren=15,
totale_uren=20,
leerjaar=2,
cijfers=[6]
),
Situation(
aanwezige_uren=5,
totale_uren=20,
leerjaar=3,
cijfers=[8]
),
Situation(
aanwezige_uren=5,
totale_uren=20,
leerjaar=3,
cijfers=[6]
),
Situation(
aanwezige_uren=20,
totale_uren=20,
leerjaar=3,
cijfers=[0]
),
Situation(
aanwezige_uren=20,
totale_uren=20,
leerjaar=1,
cijfers=[10]
),
Situation(
aanwezige_uren=0,
totale_uren=20,
leerjaar=1,
cijfers=[0]
),
]
for situation in situations:
print('{}'.format(situation))
if __name__ == '__main__':
main()