Вопросы (1110763), страница 4
Текст из файла (страница 4)
В режиме отладки пользователь сам вводит элементы (даты)последовательности, которая должна быть упорядочена, а в ответ система демонстрирует пошаговую работу процедуры сортировки для этой последовательности (это нужно для показа правильности работы процедуры). В режиме счетасистема должна работать так же, как и в задании 3: должна сформировать несколько последовательностей заданной длины, отсортировать их и вывести наэкран таблицу результатов.— Система должна позволять пользователю менять сделанный им ранее выбор(метода, длины или режима) и должна повторять свою работу при новом выборе.— При вводе длины и элементов последовательности пользователь должен иметьвозможность редактировать вводимую информацию.4.2. ВОЗМОЖНЫЕ СЦЕНАРИИ РАБОТЫ С СИСТЕМОЙНиже описаны два возможных сценария работы пользователя с системой. Любой изних можно взять за основу и со своими изменениями реализовать в задании.Сценарий 1.Этап 1.
Выбор метода.Работа системы начинается с очистки экрана и показа на нем списка названий различных (не менее 4-5) методов сортировки. Пользователь выбирает один из них либо прекращает работу с системой.Этот список должен быть реализован в виде вертикального меню — в виде окна (закрашенного своим цветом прямоугольника), в котором друг под другом выписаны названия методов (см. рис.
1). Вначале должно быть выделено (высвечено особым цветом) первое из этих названий, а затем при нажатии пользователем клавиши со стрелкойвниз или вверх система должна выделить следующее или предыдущее (по кругу) название, сняв выделение текущего названия.14Методическое пособиеОдновременно с меню методов на экране (в его нижней строке) должен высвечиватьсятекст, подсказывающий пользователю, что он должен сейчас делать, какие клавишиможет нажимать и что они означают.
Подсказка может быть, например, такой:ВЫБЕРИТЕ МЕТОД: ↓,↑–сдвиг Enter-выбор Esc-выходНажатие пользователем клавиши Enter означает, что он выбрал тот метод, название которого сейчас выделено. (Замечание: поскольку в системе реализовано лишь два методасортировки, то при выборе нереализованного метода система должна как-то сообщитьоб этом, например звуковым сигналом или выдачей сообщения «Метод не реализован»и позволить пользователю выбрать иной метод. Желательно реализованные методыкак-то пометить, например звездочкой.)Нажатие клавиши Esc означает конец работы с системой.На этом этапе система не должна реагировать на другие клавиши, а курсор долженбыть невидимым.Этап 2.
Выбор режима.После того как пользователь выбрал метод сортировки, система спрашивает его о режиме дальнейшей работы — режиме отладки или режиме счета. Пользователь выбирает нужный режим, но может и вернуться на предыдущий этап. В нижней строке экранадолжна высвечиваться соответствующая подсказка.Запрос режима может быть реализован следующим образом. В свободной части экранапоявляется окно с текстом «РЕЖИМ: ОТЛАДКА» (см. рис. 1). Если пользователь нажимает клавишу пробела, тогда слово «ОТЛАДКА» заменяется на слово «СЧЕТ»; приновом нажатии этой клавиши снова появляется слово «ОТЛАДКА» и т.д. Нажатие клавиши Enter означает выбор того режима, название которого указано сейчас в окне.Допустимо также нажатие клавиши Esc, что означает отказ от выбора режима и возвратна предыдущий этап (с удалением окна режима и восстановлением подсказки, соответствующей предыдущему этапу).
На иные клавиши система в это время не должна реагировать. Курсор должен быть невидимым.Этап 3. Выбор длины.При любом выбранном режиме система далее спрашивает у пользователя, последовательности какой длины он желает упорядочивать. В режиме счета длина может меняться от 1 до 100, а в режиме отладки — от 1 до 15.Запрос длины можно реализовать так. На экране появляется окно с текстом «ДЛИНА(<=15): » (или «<=100» в режиме счета), за которым следует «поле ввода» — 3-4 позиции, в которые пользователь будет вводить длину (система не должна разрешать емувыходить за рамки этого поля).
Курсор на этом этапе видим и показывает позицию, вкоторую пользователь вводит очередной символ (вначале это первая позиция поля ввода, а затем курсор сдвигается вправо по мере ввода числа). В нижней строке экранадолжна высвечиваться соответствующая подсказка. Экран в этот момент может выглядеть так:15Трифонов Н.П., Пильщиков В.Н. Практикум на ЭВМ┌─────────────────────┐│ МЕТОДЫ СОРТИРОВКИ: ││ БИНАРНЫЕ ВСТАВКИ ││ МЕТОД ПУЗЫРЬКА (*)││ ПРОСТОЙ ВЫБОР││ МЕТОД ШЕЛЛА (*) ││ ЕСТЕСТ.СЛИЯНИЕ│└─────────────────────┘┌──────────────────┐│ РЕЖИМ: ОТЛАДКА │└──────────────────┘┌──────────────────┐│ ДЛИНА (<=15): _ │└──────────────────┘СТРОКА С ПОДСКАЗКОЙРис. 1При вводе числа (до нажатия клавиши Enter) пользователь должен иметь возможностьвносить изменения в набранный текст.
Рекомендуется использовать следующие клавиши для редактирования вводимого текста:←,→перемещение курсора на одну позицию влево или вправо (без выходаза границы поля ввода)Delудаление символа, на который указывает курсор (со сдвигом влево наодну позицию правой части уже набранного текста)Backspaceудаление символа слева от курсора (если только курсор не находится вначале поля ввода) со сдвигом на одну позицию влево самого курсораи правой части уже набранного текстаInsпереключение с режима вставки на режим замены или наоборот (начальный режим — вставка)(Замечание.
В режиме замены введенный символ заменяет на экране тот символ, на который указывает курсор, а в режиме вставки часть текста (от курсора и вправо) сдвигается на одну позицию вправо и в освободившуюся позицию вставляется введенныйсимвол. Далее (в любом режиме) курсор перемещается на одну позицию вправо, еслитолько он не находится в конце поля ввода.)При вводе длины нажатие клавиши Enter (при любом положении курсора) означает,что ввод окончен. Система должна считать набранные цифры и перевести их в соответствующую числовую величину. Если число набрано верно и не выходит за определенный диапазон, то система переходит к следующему, четвертому, этапу своей работы, аиначе она должна каким-то образом сообщить об ошибке и предоставить пользователювозможность исправить ранее набранную длину.Помимо указанных выше клавиш система должна реагировать и на клавишу Esc, нажатие которой означает отказ от ввода и возврат системы на предыдущий этап (с удалением окна длины и восстановлением прежней подсказки).Этап 4а.
Работа в режиме счета.Если пользователь выбрал режим счета, тогда система (после запроса длины) сама генерирует несколько последовательностей заданной длины (какие именно — см. задание3) и сортирует каждую из них выбранным методом. В результате на экране должнапоявиться таблица, в которой для каждой последовательности указано число сравненийи число перемещений, выполненных во время ее сортировки, а также усредненные значения этих характеристик. Таблица должна сохраняться на экране до тех пор, покапользователь не нажмет на какую-нибудь клавишу, после чего следует восстановитьсостояние экрана, соответствующее 3-му этапу, чтобы пользователь мог задать новуюдлину.Этап 4б. Работа в режиме отладки.16Методическое пособиеВ этом режиме система (после запроса длины) очищает экран и высвечивает в его левой части окно из n строк, где n — заданная длина (см. рис.
2). Это окно предназначенодля ввода пользователем дат той последовательности, которую он хочет упорядочить(поэтому ширина окна должна быть выбрана с расчетом на самую «длинную» дату).Курсор в это время видим и показывает место, куда будет помещен очередной набранный символ. Пользователь должен иметь возможность редактировать набираемыйтекст — так же, как и при вводе длины (см. выше).Желательно в верхней части окна указать, в каком порядке должны вводиться элементыдат (например: день, месяц, год) и какой символ (например, точка) используется какразделитель.
При этом формат вводимых дат должен быть свободным: не надо требовать, чтобы каждый элемент даты содержал ровно две цифры, не надо заранее расставлять точки.┌────────────┐│ ДД.ММ.ГГ ││────────────││ 9.5.45││ 25.10.17 ││ 15.7_│││││└────────────┘┌────────────┐│││ ПРЕДЫДУЩИЙ ││ШАГ││ СОРТИРОВКИ │││││└────────────┘┌────────────┐│││ ОЧЕРЕДНОЙ ││ШАГ││ СОРТИРОВКИ │││││└────────────┘СТРОКА С ПОДСКАЗКОЙРис. 2Нажатие клавиши Enter или ↓ является признаком конца ввода текущей даты. В этотмомент система должна проверить, правильно ли была набрана дата, и, если да, перейти к следующей строке окна.
Иначе система должна сообщить (звуковым сигналом иликаким-то сообщением) пользователю об ошибке и остаться в текущей строке окна, чтобы пользователь мог исправить дату. Смысл клавиши ↑ аналогичен, но по ней происходит переход к предыдущей дате (этот возврат нужен, чтобы пользователь мог изменитьранее набранную дату).Правильный ввод даты в нижней строке окна означает конец ввода всей исходной последовательности (можно сделать и так, чтобы признаком конца ввода всей последовательности было нажатие какой-нибудь особой клавиши). В этом случае в правой частиэкрана должны появиться два новых окна и должна начать свою работу процедура сортировки, которая в одном из этих окон будет показывать состояние упорядочиваемойпоследовательности перед каждым очередным шагом сортировки, а в другом - послеэтого шага.