Çalışanlar için bir sınıf oluşturmam, bir nesne olarak saklamak için çalışan bilgilerini içeren bir metin dosyasında okumam, çalışılan bir saat dosyasında okumam ve dosyalardan bir ödeme bilgisi sözlüğü oluşturmam gereken bir ödevim var. Şimdiye kadar, çalışan metin dosyasında yalnızca bir çalışan olduğu sürece iyi çalışıyor gibi görünüyor, ancak bir saniye eklediğimde, ilkinin üzerine yazılır ve ikincisinin bilgileri oluşturulan şeydir. Bu şimdiye kadar sahip olduğum bazı bilgiler:
class Staff:
staffData = {}
def __init__(self, EmpID, LName, FName, RHours, HRate, OTMult, TaxC, SBand, Date, HrsWorked):
self.EmpID = EmpID
self.LName = LName
self.FName = FName
self.RHours = RHours
self.HRate = HRate
self.OTMult = OTMult
self.TaxC = TaxC
self.SBand = SBand
self.Date = Date
self.HrsWorked = HrsWorked
Staff.staffData[EmpID] = self
def setup(staff ,hrs): # staff and hrs are text files
with open(staff) as empFile:
for line in empFile:
SID, LN, FN, RH, HR, OTM, TC, SB = line.split()
with open(hrs) as hFile:
for line in hFile:
SID, date, HrsWorked = line.split()
stf = Staff(SID, LN, FN, int(RH), int(HR), float(OTM), int(TC), int(SB),date, HrsWorked)
return stf
def paySlip(self,HrsWorked, date):
paymentDict = {}
#creates paySlip using information from instance and creates others by performing
calculations
return paymentDict
jg = Staff.setup('Staff.txt', 'Hrs.txt')
dic = jg.paySlip(42,'31/10/2021')
print(dic)
Şimdiye kadar sahip olduğum şey bu ve doğru çıktıyı döndürüyor, ancak ikinci bir çalışanla ikinci bir satır eklediğimde, sorunları aldığım yer burası. Ayrıca, sadece bir not, maaş bordrosu parametrelerinin sadece metin dosyasından değil, saat metin dosyasından çalışılan tarih ve saat olması gerekir. Programlamada oldukça yeniyim, bu yüzden özür dilerim, eğer bu temel bir düzeltme ise, son 3 günümü farklı panoları ve web sitelerini ziyaret ederek anlamaya çalışarak geçirdim. Herhangi bir yardım çok takdir edilecektir.