Предмет: Информатика, автор: qipirs

Python

Напишіть інформаційну систему «Співробітники». Програма має забезпечувати введення, редагування та видалення даних про співробітника, пошук співробітника за прізвищем, виведення інформації про співробітників вказаного віку або прізвище яких починається з вказаної літери. Зробіть можливість зберігати знайдену інформацію у файл, як і весь список співробітників (при виході з програми – автоматично, у процесі виконання програми – за командою користувача). Під час старту програми відбувається завантаження списку співробітників із зазначеного користувачем файлу.

Ответы

Автор ответа: MagicSticks
2

Ответ:

Объяснение:

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("Неправильний вибір.


MagicSticks: print("Неправильний вибір. Спробуйте ще раз.")

if __name__ == "__main__":
main()

Допишіть цей рядок до кінця
nastyavasileva7732: А якщо без імпорту?
Похожие вопросы