Задание № 3319

Студент

Бергман Арсений

Задача

Горячие клавиши

Состояние

Открыто

Дедлайн
10 мая 2021
Назначено

04.05.2021, 11:19

Разработать программу, которая позволяет манипулировать горячими клавишами. Горячая клавиша - клавиша или сочетание клавиш на клавиатуре, которому сопоставлено некоторое действие, команда.

Входные данные

Текстовый файл (или несколько), содержащий набор горячих клавиш и назначенных им команд. Пример:

Ctrl+Alt+Del = reset
Ctrl+C = copy
Ctrl+Ins = copy
Ctrl+V = paste
Shift+Ins = paste
Ctrl+X = cut
Shift+Del = cut
F1 = help

Клавиша рассматривается как отдельная строка. Сочетания Shift+Ctrl+L и Ctrl+Shift+L система должна воспринимать как эквивалентные горячие клавиши. Названия команд заданы как строки.

Постановка задачи

Разработать модуль, позволяющий манипулировать горячими клавишами. Модуль должен поддерживать следующую функциональность:

  • находить команду связанную с горячей клавишей.
  • добавлять связку “горячая клавиша - команда”.
  • добавлять набор горячих клавиш для указанной команды.
  • удалять команду, горячие клавиши.
  • выполнять поиск команды по горячим клавишам и наоборот.
  • выполнять полное очищение контейнера.
  • объединять содержимое контейнеров и возвращает список конфликтующих горячих клавиш.

Выходные данные

Варианты:

1) Даны два файла с наборами горячих клавиш и назначенных им команд. Загрузить файлы, распечатать, объединить, распечатать список конфликтов, объединенный результат записать в третий файл.

Пример вывода программы:

file1:
copy    Ctrl+C, Ctrl+Ins, 
paste   Ctrl+V, Shift+Ins, 
reset   Ctrl+Alt+Del, 

file2:
move    Ctrl+M, F6, 
copy    Ctrl+C, F5, 
search  Ctrl+V, F7, 

conflicts: 1
Ctrl+V

file3 = file1.merge(file2):
copy    Ctrl+C, Ctrl+Ins, F5, 
paste   Ctrl+V, Shift+Ins, 
reset   Ctrl+Alt+Del, 
move    Ctrl+M, F6, 
search  F7, 

2) Дан файл с набором горячих клавиш и назначенных им команд, а так же файл со списком горячих клавиш и команд которые нужно удалить. Загрузить оба файла, удалить горячие клавиши и команды, сохранить результат в третий файл.

Пример вывода программы:

file1:
copy    Ctrl+C, Ctrl+Ins, F5, 
paste   Ctrl+V, Shift+Ins, 
reset   Ctrl+Alt+Del, 
move    Ctrl+M, F6, 
search  F7, 

remove items:
Ctrl+Alt+Del
Ctrl+Ins
move

file2:
copy    Ctrl+C, F5, 
paste   Ctrl+V, Shift+Ins, 
search  F7, 

Действия