Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2390024
А
Аноним
02 декабря 2024 05:59 · публичный вопрос
А
Аноним

Бухгалтер крупной фирмы «Эники-Бэники» заболел, и вам поручили выполнить его работу: С клавиатуры вводятся фамилии сотрудников и количество отработанных дней за месяц. I Ввод…

Запрос пользователя

Бухгалтер крупной фирмы «Эники-Бэники» заболел, и вам поручили выполнить его работу: С клавиатуры вводятся фамилии сотрудников и количество отработанных дней за месяц. I Ввод должен остановится, когда введённая строка будет равнятся строке «конец». Создайте лист Excel с названием «Otchet», занесите данные в порядке возрастания количества отработанных дней. Данные должны быть структурированы и иметь заголовок на листе. Стилизуйте заголовки по своему усмотрению. прока Один день сотрудников фирмы стоит 4000 р. Рассчитайте, сколько фирма должна выплатить всем сотрудникам за месяц. Поместите информацию в отдельную ячейку. столбец Сохраните файл. Загрузите сохранённый файл. Организуйте запрос пользователя, есть ли y него желание отредактировать информацию. Если есть, запросите «что» меняем и «на что» меняем. Занесите изменения в файл.

Ответ нейросети
02 декабря 2024 05:59

Давайте разберёмся с поставленной задачей шаг за шагом. Мы создадим Excel-файл с информацией о сотрудниках и их отработанных днях, а затем проведем расчеты и стилизуем таблицу.

Шаг 1: Ввод данных

Для начала мы предложим пользователю вводить фамилии сотрудников и количество отработанных дней, пока он не введет строку «конец». Код на Python с использованием библиотеки pandas и openpyxl может выглядеть следующим образом:

import pandas as pd

# Создание пустого списка для хранения данных
data = []

while True:
    entry = input("Введите фамилию сотрудника и количество отработанных дней (или 'конец' для завершения): ")
    
    if entry.lower() == "конец":
        break
    
    try:
        surname, days = entry.split()  # предположим, что данные вводятся через пробел
        days = int(days)
        data.append({'Фамилия': surname, 'Отработанные дни': days})
    except ValueError:
        print("Ошибка ввода. Пожалуйста, вводите данные в формате: Фамилия Число")

# Создание DataFrame из списка
df = pd.DataFrame(data)

Шаг 2: Сортировка данных

Сортируем данные по количеству отработанных дней:

df = df.sort_values(by='Отработанные дни')

Шаг 3: Рассчёт выплаты

Теперь посчитаем общую сумму, которую компания должна выплатить. Один отработанный день стоит 4000 рублей:

total_payment = (df['Отработанные дни'] * 4000).sum()

Шаг 4: Создание Excel файла

Теперь мы создадим Excel файл с заголовком и добавим данные:

# Создаём Writer
writer = pd.ExcelWriter('Otchet.xlsx', engine='openpyxl')

# Записываем DataFrame в Excel
df.to_excel(writer, sheet_name='Otchet', index=False)

# Добавляем заголовок в Excel
workbook = writer.book
worksheet = writer.sheets['Otchet']
worksheet.cell(row=1, column=1, value='Фамилия')
worksheet.cell(row=1, column=2, value='Отработанные дни')
worksheet.cell(row=3, column=1, value='Общая сумма выплат:')
worksheet.cell(row=3, column=2, value=total_payment)

# Стилизация заголовков
for cell in worksheet["1:1"]:  # Стилизация первой строки (заголовки)
    cell.font = cell.font.copy(bold=True)
    cell.fill = openpyxl.styles.PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# Сохраняем файл
writer.save()

Шаг 5: Запрос на редактирование информации

После сохранения файла предложим пользователю редактировать информацию:

edit = input("Хотите ли вы редактировать информацию? (да/нет): ")

if edit.lower() == "да":
    surname_to_edit = input("Введите фамилию сотрудника, информацию о котором хотите изменить: ")
    new_days = int(input("Введите новое количество отработанных дней: "))
    
    # Обновляем данные в DataFrame
    df.loc[df['Фамилия'] == surname_to_edit, 'Отработанные дни'] = new_days
    # Переходим к пересчету общей суммы
    total_payment = (df['Отработанные дни'] * 4000).sum()

    # Обновляем файл Excel
    df.to_excel(writer, sheet_name='Otchet', index=False)
    worksheet.cell(row=3, column=2, value=total_payment)
    writer.save()

Теперь файл «Otchet.xlsx» готов, и вы можете его открыть, чтобы увидеть результаты. Надеюсь, этот ответ поможет вам с выполнением задания! Если возникают дополнительные вопросы, задавайте, и я с радостью помогу!