global Queue
global HeadPointer
global TailPointer
global Records
global NumberRecords
class RecordData:
def __init__(self,id,total):
self.ID=id #STRING
self.Total=total #INTEGER
def Enqueue(Value): #String
global Queue
global HeadPointer
global TailPointer
if TailPointer==50:
print("Queue is full")
else:
Queue.append(Value)
TailPointer=TailPointer+1
if HeadPointer==-1:
HeadPointer=0
def Dequeue():
global Queue
global HeadPointer
global TailPointer
if HeadPointer==-1 or HeadPointer==TailPointer:
print("Queue is empty")
return "Empty"
else:
HeadPointer = HeadPointer + 1
temp=Queue[HeadPointer-1]
return temp
def ReadData():
try:
File = open("QueueData.txt","r")
data = File.readline().strip()
while data != "":
Enqueue(data)
data=File.readline().strip()
File.close()
except IOError:
print("File not found")
def TotalData():
global Records
global NumberRecords
DataAccessed=Dequeue()
Flag=False
if NumberRecords==0:
#Records[NumberRecords].ID=DataAccessed
#Records[NumberRecords].Total=1
Records.append(RecordData(DataAccessed,1))
NumberRecords = NumberRecords + 1
Flag=True
else:
for X in range(NumberRecords):
if Records[X].ID==DataAccessed:
Records[X].Total=Records[X].Total + 1
Flag=True
if Flag==False:
Records.append(RecordData(DataAccessed, 1))
NumberRecords=NumberRecords+1
def OutputRecords():
global Records
global NumberRecords
for x in range(NumberRecords):
print("ID",Records[x].ID,"Total",Records[x].Total)
Queue = [] #50 Elements : String
HeadPointer = -1
TailPointer = 0
Records = [] #50 Elements : RecordData
NumberRecords=0
ReadData()
while HeadPointer!=TailPointer:
TotalData()
OutputRecords()
global EmployeeArray
class Employee:
def __init__(self,HPay,ENumber,JobT):
self.__HourlyPay = HPay #REAL
self.__EmployeeNumber = ENumber #STRING
self.__JobTitle = JobT #STRING
self.__PayYear2022 = [] #REAL of 51 elements
for x in range(52):
self.__PayYear2022.append(0.0)
def GetEmployeeNumber(self):
return self.__EmployeeNumber
def SetPay(self,WeekNumber,HoursWorked):
self.__PayYear2022[WeekNumber-1]=HoursWorked*self.__HourlyPay
def GetTotalPay(self):
total=0
for x in range(52):
total=total+self.__PayYear2022[x]
return total
class Manager(Employee):
def __init__(self,BonusVal,HPay,ENumber,JobT):
super().__init__(HPay,ENumber,JobT)
self.__BonusValue=BonusVal
def SetPay(self,WeekNumber,HoursWorked):
HoursWorked=HoursWorked*(1+ self.__BonusValue/100)
super().SetPay(WeekNumber,HoursWorked)
def EnterHours():
global EmployeeArray
try:
File=open("HoursWeek1.txt","r")
EmpoyeeID=""
for x in range(8):
EmployeeID=File.readline().strip()
for y in range(8):
if EmployeeArray[y].GetEmployeeNumber()==EmployeeID:
WorkingHours=float(File.readline().strip())
EmployeeArray[y].SetPay(1,WorkingHours)
except IOError:
print("File not found")
#Main
EmployeeArray = []
Pay=0.0
Number=""
Bonus=0.0
Title=""
temp=""
try:
File = open("Employees.txt","r")
for x in range(8):
Pay=float(File.readline().strip())
Number=File.readline().strip()
temp=File.readline().strip()
try:
Bonus=float(temp)
Title=File.readline().strip()
EmployeeArray.append(Manager(Bonus,Pay,Number,Title))
except:
Title=temp
EmployeeArray.append(Employee(Pay,Number,Title))
File.close()
except IOError:
print("File Not found")
EnterHours()
for x in range(8):
print(EmployeeArray[x].GetEmployeeNumber(),EmployeeArray[x].GetTotalPay())