Составьте модуль для определения класса защищенности на основе вводимых пользователем значений в соответствующие ячейки на листе Excel. Результат должен выводиться в ячейку таблицы. Оформите пользовательский (текстовый) интерфейс этого процесса.
pip install openpyxl
pip install PySimpleGUI
Для начала импортируем необходимые модули:
python
import openpyxl
import PySimpleGUI as sg
Затем создадим функцию, которая будет определять класс защищенности на основе вводимых пользователем значений:
python
def determine_security_class(values):
secrecy = int(values['-SECRECY-'])
integrity = int(values['-INTEGRITY-'])
availability = int(values['-AVAILABILITY-'])
if secrecy == 1 and integrity == 1 and availability == 1:
return 'Конфиденциальность: высокая, Целостность: высокая, Доступность: высокая'
elif secrecy == 0 and integrity == 0 and availability == 0:
return 'Конфиденциальность: низкая, Целостность: низкая, Доступность: низкая'
elif secrecy == 1 and integrity == 0 and availability == 0:
return 'Конфиденциальность: высокая, Целостность: низкая, Доступность: низкая'
elif secrecy == 0 and integrity == 1 and availability == 0:
return 'Конфиденциальность: низкая, Целостность: высокая, Доступность: низкая'
elif secrecy == 0 and integrity == 0 and availability == 1:
return 'Конфиденциальность: низкая, Целостность: низкая, Доступность: высокая'
else:
return 'Не удалось определить класс защищенности'
Затем создадим функцию для отображения пользовательского интерфейса и обработки событий:
python
def main():
# Открываем файл Excel
wb = openpyxl.load_workbook('file.xlsx')
# Получаем первый лист
sheet = wb.active
# Создаем пользовательский интерфейс
layout = [
[sg.Text('Конфиденциальность')],
[sg.Radio('Высокая', '-SECRECY-', default=True), sg.Radio('Низкая', '-SECRECY-')],
[sg.Text('Целостность')],
[sg.Radio('Высокая', '-INTEGRITY-', default=True), sg.Radio('Низкая', '-INTEGRITY-')],
[sg.Text('Доступность')],
[sg.Radio('Высокая', '-AVAILABILITY-', default=True), sg.Radio('Низкая', '-AVAILABILITY-')],
[sg.Button('Определить')]
]
window = sg.Window('Определение класса защищенности', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == 'Определить':
# Определяем класс защищенности
security_class = determine_security_class(values)
# Выводим результат в ячейку таблицы
sheet['A1'] = security_class
# Сохраняем файл
wb.save('file.xlsx')
window.close()
if __name__ == '__main__':
main()
В данном примере предполагается, что вы уже создали Excel-файл с именем "file.xlsx". В нем будет один лист, на котором будет выведен результат класса защищенности.
При запуске программы открывается пользовательский интерфейс, в котором представлены опции для ввода значений конфиденциальности, целостности и доступности. После нажатия кнопки "Определить" класс защищенности будет вычислен в соответствии с выбранными опциями и выведен в ячейку A1 на листе Excel. Затем файл будет сохранен.
Уточнение для понимания работы:
- Мы имеем таблицу Excel с одним листом (для примера, возьмем файл.xlsx)
- Необходимо определить класс защищенности на основе выбранных пользователем опций (Конфиденциальность, Целостность, Доступность)
- Для этого создается пользовательский интерфейс, где пользователь может выбрать опции (высокая/низкая) для каждого из параметров
- После нажатия кнопки "Определить" происходит вычисление класса защищенности на основе выбранных опций
- Результат выводится в ячейку A1 на листе Excel и файл сохраняетсяНажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет