Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kurs_alx_pcz
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
kurs_alx_pcz
Commits
1d1804e0
Commit
1d1804e0
authored
Dec 01, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pracownik2
parent
572f29cb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
85 additions
and
0 deletions
+85
-0
pracownik2.py
dzien7/klasy_wprowadzenie/pracownik2.py
+85
-0
No files found.
dzien7/klasy_wprowadzenie/pracownik2.py
0 → 100644
View file @
1d1804e0
'''
Zaimplementuj klasę Pracownik umożliwiającą rejestrowanie czasu
pracy oraz wypłacanie pensji na podstawie zadanej stawki
godzinowej. Jeżeli pracownik będzie pracował więcej niż 8 godzin
(podczas pojedynczej rejestracji czasu) to kolejne godziny policz
jako nadgodziny (z podwójną stawką godzinową).
Przykład użycia:
>>> p = Pracownik('Jan', 'Nowak', 100.0)
>>> p.praca(6)
>>> p.praca(4)
>>> p.wyplata()
1000.0
>>> p.wyplata()
0.0
>>> p.praca(10)
>>> p.wyplata()
1200.0
'''
class
Pracownik
:
def
__init__
(
self
,
imie
,
nazwisko
,
stawka
):
self
.
imie
=
imie
self
.
nazwisko
=
nazwisko
self
.
stawka
=
stawka
self
.
kasa
=
0
def
praca
(
self
,
godziny
):
if
godziny
>
8
:
self
.
kasa
+=
8
*
self
.
stawka
self
.
kasa
+=
(
godziny
-
8
)
*
2
*
self
.
stawka
else
:
self
.
kasa
+=
godziny
*
self
.
stawka
def
wyplata
(
self
):
try
:
return
self
.
kasa
finally
:
self
.
kasa
=
0
def
test_jedna_praca
():
p
=
Pracownik
(
'Jan'
,
'Nowak'
,
100.0
)
p
.
praca
(
6
)
wynik
=
p
.
wyplata
()
assert
wynik
==
600
def
test_suma_prac
():
p
=
Pracownik
(
'Jan'
,
'Nowak'
,
100.0
)
p
.
praca
(
6
)
p
.
praca
(
4
)
wynik
=
p
.
wyplata
()
assert
wynik
==
1000
def
test_nadgodziny
():
p
=
Pracownik
(
'Jan'
,
'Nowak'
,
100.0
)
p
.
praca
(
10
)
p
.
praca
(
5
)
wynik
=
p
.
wyplata
()
assert
wynik
==
1700
def
test_zero
():
p
=
Pracownik
(
'Jan'
,
'Nowak'
,
100.0
)
p
.
praca
(
10
)
p
.
praca
(
5
)
wynik1
=
p
.
wyplata
()
# w tym teście nie sprawdzamy wartości pierwszej wypłaty - tym zajmują się inne testy
wynik2
=
p
.
wyplata
()
# w tym teście sprawdzamy, czy kolejna wypłata daje zero
assert
wynik2
==
0
def
main
():
p
=
Pracownik
(
'Jan'
,
'Nowak'
,
100.0
)
p
.
praca
(
6
)
p
.
praca
(
4
)
wynik
=
p
.
wyplata
()
print
(
wynik
)
wynik
=
p
.
wyplata
()
print
(
wynik
)
p
.
praca
(
10
)
wynik
=
p
.
wyplata
()
print
(
wynik
)
if
__name__
==
'__main__'
:
main
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment