From b3ab3db4b56fb185b24a113bdeaf89ffc327513e Mon Sep 17 00:00:00 2001 From: Kushal Shukla Date: Fri, 10 Oct 2025 01:14:20 +0530 Subject: [PATCH] solution for challenge 3 --- .../kushalShukla-web/solution-template.go | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 challenge-3/submissions/kushalShukla-web/solution-template.go diff --git a/challenge-3/submissions/kushalShukla-web/solution-template.go b/challenge-3/submissions/kushalShukla-web/solution-template.go new file mode 100644 index 00000000..f0edd251 --- /dev/null +++ b/challenge-3/submissions/kushalShukla-web/solution-template.go @@ -0,0 +1,68 @@ +package main + +import "fmt" + +type Employee struct { + ID int + Name string + Age int + Salary float64 +} +type Manager struct { + Employees []Employee +} + +func (m *Manager) GetEmployee() { + +} + +func (m *Manager) AddEmployee(em Employee) { + m.Employees = append(m.Employees, em) +} + +func (m *Manager) RemoveEmployee(id int) { + var tempValue []Employee + for i := 0; i < len(m.Employees); i++ { + if m.Employees[i].ID == id { + continue + } else { + tempValue = append(tempValue, m.Employees[i]) + } + } + m.Employees = tempValue +} + +func (m *Manager) GetAverageSalary() float64 { + if len(m.Employees) == 0 { + return 0 + } + var averagesalary float64 + for i := 0; i < len(m.Employees); i++ { + averagesalary += m.Employees[i].Salary + } + + averagesalary = averagesalary / float64(len(m.Employees)) + return averagesalary +} + +func (m *Manager) FindEmployeeByID(id int) *Employee { + for i := 0; i < len(m.Employees); i++ { + if m.Employees[i].ID == id { + return &m.Employees[i] + } + } + return nil +} + +func main() { + manager := Manager{} + manager.AddEmployee(Employee{ID: 1, Name: "Kushal", Age: 23, Salary: 4500}) + manager.AddEmployee(Employee{ID: 2, Name: "Bob", Age: 25, Salary: 65000}) + manager.RemoveEmployee(1) + averagesalary := manager.GetAverageSalary() + fmt.Println("The average salary is ", averagesalary) + employee := manager.FindEmployeeByID(2) + if employee != nil { + fmt.Printf("Employee found: %+v\n", *employee) + } +}