forked from Chris-m41/CS241
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ta07.py
72 lines (53 loc) · 1.6 KB
/
ta07.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
from abc import ABC
from abc import abstractmethod
class Employee(ABC):
def __init__(self, name):
self.name = name
@abstractmethod
def display(self):
print(self.name)
class HourlyEmployee(Employee):
"""
An HourlyEmployee has an hourly wage.
"""
def __init__(self, name, wage):
super().__init__(name)
self.hourly_wage = wage
def display(self):
print("{} - ${}/hour".format(self.name, self.hourly_wage))
@abstractmethod
def get_paycheck(self):
pass
class SalaryEmployee(Employee):
"""
A SalaryEmployee has a salary.
"""
def __init__(self, name, salary):
super().__init__(name)
self.salary = salary
def display(self):
print("{} - ${}/year".format(self.name, self.salary))
def main():
"""
Prompt the user for a series of employees and then display
their information at the end.
"""
employees = []
command = ""
while command != "q":
command = input("Enter 'h' (hourly employee), 's', (salary employee) or 'q': ")
if command == "h":
name = input("Enter name: ")
wage = int(input("Enter wage: "))
emp = HourlyEmployee(name, wage)
employees.append(emp)
elif command == "s":
name = input("Enter name: ")
salary = int(input("Enter salary: "))
emp = SalaryEmployee(name, salary)
employees.append(emp)
# We are done entering data, print them out now
for employee in employees:
employee.display()
if __name__ == "__main__":
main()