Python
Напишіть інформаційну систему «Співробітники». Програма має забезпечувати введення, редагування та видалення даних про співробітника, пошук співробітника за прізвищем, виведення інформації про співробітників вказаного віку або прізвище яких починається з вказаної літери. Зробіть можливість зберігати знайдену інформацію у файл, як і весь список співробітників (при виході з програми – автоматично, у процесі виконання програми – за командою користувача). Під час старту програми відбувається завантаження списку співробітників із зазначеного користувачем файлу.
Ответы
Ответ:
Объяснение:
import json
class Employee:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
class EmployeeSystem:
def __init__(self):
self.employees = []
def load_from_file(self, filename):
try:
with open(filename, 'r') as file:
data = json.load(file)
self.employees = [Employee(**entry) for entry in data]
print("Дані співробітників завантажено з файлу.")
except FileNotFoundError:
print("Файл не знайдено. Починаємо з пустого списку співробітників.")
def save_to_file(self, filename):
with open(filename, 'w') as file:
data = [{'first_name': emp.first_name, 'last_name': emp.last_name, 'age': emp.age}
for emp in self.employees]
json.dump(data, file)
print("Дані співробітників збережено у файл.")
def add_employee(self, first_name, last_name, age):
self.employees.append(Employee(first_name, last_name, age))
print("Співробітник доданий.")
def edit_employee(self, index, first_name, last_name, age):
if 0 <= index < len(self.employees):
self.employees[index] = Employee(first_name, last_name, age)
print("Дані співробітника відредаговано.")
else:
print("Неправильний індекс співробітника.")
def delete_employee(self, index):
if 0 <= index < len(self.employees):
del self.employees[index]
print("Співробітник видалений.")
else:
print("Неправильний індекс співробітника.")
def search_by_last_name(self, last_name):
found_employees = [emp for emp in self.employees if emp.last_name == last_name]
return found_employees
def search_by_age(self, age):
found_employees = [emp for emp in self.employees if emp.age == age]
return found_employees
def search_by_first_letter(self, letter):
found_employees = [emp for emp in self.employees if emp.last_name.startswith(letter)]
return found_employees
def main():
employee_system = EmployeeSystem()
filename = "employees.json"
employee_system.load_from_file(filename)
while True:
print("\nМеню:")
print("1. Додати співробітника")
print("2. Редагувати співробітника")
print("3. Видалити співробітника")
print("4. Пошук за прізвищем")
print("5. Пошук за віком")
print("6. Пошук за першою літерою прізвища")
print("7. Вивести всіх співробітників")
print("8. Зберегти зміни у файл")
print("9. Вийти")
choice = input("Виберіть опцію: ")
if choice == '1':
first_name = input("Введіть ім'я: ")
last_name = input("Введіть прізвище: ")
age = int(input("Введіть вік: "))
employee_system.add_employee(first_name, last_name, age)
elif choice == '2':
index = int(input("Введіть індекс співробітника для редагування: "))
first_name = input("Введіть нове ім'я: ")
last_name = input("Введіть нове прізвище: ")
age = int(input("Введіть новий вік: "))
employee_system.edit_employee(index, first_name, last_name, age)
elif choice == '3':
index = int(input("Введіть індекс співробітника для видалення: "))
employee_system.delete_employee(index)
elif choice == '4':
last_name = input("Введіть прізвище для пошуку: ")
found_employees = employee_system.search_by_last_name(last_name)
if found_employees:
for emp in found_employees:
print(emp.__dict__)
else:
print("Співробітників з таким прізвищем не знайдено.")
elif choice == '5':
age = int(input("Введіть вік для пошуку: "))
found_employees = employee_system.search_by_age(age)
if found_employees:
for emp in found_employees:
print(emp.__dict__)
else:
print("Співробітників з таким віком не знайдено.")
elif choice == '6':
letter = input("Введіть першу літеру прізвища для пошуку: ")
found_employees = employee_system.search_by_first_letter(letter)
if found_employees:
for emp in found_employees:
print(emp.__dict__)
else:
print("Співробітників, чий прізвище починається з цієї літери, не знайдено.")
elif choice == '7':
for emp in employee_system.employees:
print(emp.__dict__)
elif choice == '8':
employee_system.save_to_file(filename)
elif choice == '9':
employee_system.save_to_file(filename)
print("Програма завершена.")
break
else:
print("Неправильний вибір.
if __name__ == "__main__":
main()
Допишіть цей рядок до кінця