- •2. После нажатия на любую клавишу заставка снимается с окна и программа должна начать выполнять задание по следующему сценарию:
- •3. Результаты выполнения программы должны быть помещены в заданные файлы. Тема курсовой работы
- •1) Число сравнений элементов последовательности, выполненных в процессе упорядочения;
- •2) Число перемещений (либо обменов пар элементов, либо пересылок элементов на новые места - в зависимости от метода), выполненных в процессе упорядочения;
- •Требования к программе
- •Документация к курсовой работе
- •Защита курсовой работы
- •График выполнения курсовой работы
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К КУРСОВОЙ РАБОТЕ
по курсу
"Программирование и алгоритмизация"
(специальность 220700)
ЦЕЛЬ РАБОТЫ.
Целью курсовой работы является закрепление и углубление навыков практического программирования типовых алгоритмов сортировки путем самостоятельной разработки законченной программы сортировки данных одним из заданных методов. Язык программирования - C, C++.
Работа должна быть выполнена с использованием интегрированной среды Borland С 3.1 и исполняться под управлением ОС MS-DOS.
СТРУКТУРА ПРОГРАММЫ.
Программа должна состоять из главной программы и подпрограмм. Главная программа реализует общий алгоритм решения задачи, а подпрограммы выполняют заданные функции, ввод и вывод результатов.
ОБЩИЙ АЛГОРИТМ РАБОТЫ ПРОГРАММЫ
После запуска программы:
1. На экран выдается окно с заставкой по типу заставки интегрированной среды Borland С 3.1, в которую выводится информация: "Курсовая работа по курсу "Програмирование и основы лгоритмизация". Вариант NN. Выполнил студент .Версия NN. Дата .....", и удерживается там до нажатия на любую клавишу.
2. После нажатия на любую клавишу заставка снимается с окна и программа должна начать выполнять задание по следующему сценарию:
Этап I. Выбор метода.
На экран выдается перечень (меню) названий различных (5-7) методов сортировки. Пользователь выбирает для дальнейшей работы один из них либо прекращает работу с системой.
Этап II. Выбор режима.
После выбора пользователем метода сортировки система запрашивает его о режиме дальнейшей работы - режиме отладки или режиме счета. (Режим отладки предназначен для демонстрации правильности работы выбранной процедуры сортировки, а режим счета - для экспериментального определения характеристик метода сортировки.) Пользователь выбирает нужный режим, но может и вернуться на предыдущий этап.
Этап III.
IIIа) Режим отладки. В этом режиме система прежде всего просит пользователя указать длину последовательности, подлежащей сортировке, а затем задать все ее элементы. Система упорядочивает эту последовательность выбранным методом, после чего выдает ее на экран. Далее пользователь может либо задать новую последовательность, либо вернуться на предыдущий этап.
IIIб) Режим счета. Если пользователь выбрал режим счета, то система запрашивает у него длину последовательностей, которые будут упорядочиваться, после чего сама генерирует несколько последовательностей заданной длины и сортирует каждую из них выбранным методом. Результатом является таблица, в которой для каждой последовательности указано число сравнений, число перемещений и время работы процедуры сортировки, а также усредненные значения этих характеристик. Далее пользователь может либо задать новую длину, либо вернуться на предыдущий этап.
УТОЧНЕНИЕ ИНТЕРФЕЙСА
A) Перечень названий методов сортировки должен быть реализован в виде вертикального меню - в виде окна, в котором друг под другом выписаны названия методов. Вначале должно быть выделено первое из этих названий, т.е. оно должно быть высвечено
особым цветом. При нажатии пользователем клавиши со стрелкой
вниз или вверх система должна выделить следующее или предыдущее
(по кругу) название, сняв, естественно, выделение с текущего
названия.
Нажатие клавиши Enter означает, что пользователь выбрал тот метод, название которого сейчас выделено. (Замечание: поскольку реально в системе реализовано лишь два метода сортировки, при выборе нереализованного метода система должна как-то сообщить об этом, например выдачей сообщения "Метод не реализован", и позволить пользователю выбрать иной метод.) При работе с меню система должна также учитывать клавишу Esc, нажатие которой означает конец работы с системой. На другие клавиши система в это время не должна реагировать.
B) Запрос режима работы системы (отладка или счет) должен быть реализован следующим образом. На экране появляется окно с текстом "РЕЖИМ: ОТЛАДКА". Если пользователь нажимает клавишу "пробел", тогда слово "ОТЛАДКА" должно замениться на слово "СЧЕТ". При новом нажатии этой клавиши на экране снова появляется слово "ОТЛАДКА" и т.д. Нажатие клавиши Enter означает выбор того режима, название которого указано сейчас в окне. Допустимо также нажатие клавиши Esc, что означает отказ от выбора режима и возврат на предыдущий этап. На иные клавиши система в это время не должна реагировать.
C) Запрос числа (длины последовательности) должен быть реализован следующим образом. На экране появляется окно, например, с текстом "ДЛИНА ПОСЛЕДОВАТЕЛЬНОСТИ: ", за которыми выделено тем же фоновым цветом, что и этот текст, "поле ввода" - 2-4 позиции, в которых пользователь и должен набрать число. Курсор устанавливается в начальную позицию поля, и пользователь набирает число (система не должна разрешать ему выходить за рамки этого поля). Нажатие клавиши Enter (при любом положении курсора) означает, что ввод числа окончен. Система вводит набранные цифры и переводит их в соответствующую числовую величину. Если число набрано верно и не выходит за определенный диапазон, система продолжает свою работу, иначе система каким-то образом сообщает об ошибке и дает пользователю возможность исправить набранный текст. Во время набора числа (до нажатия клавиши Enter) или в случае обнаружения ошибки в ранее набранном числе пользователь должен иметь возможность вносить изменения в набранный текст. Рекомендуется использовать следующие клавиши для редактирования вводимого текста:
←,→ - движение курсора на одну позицию влево или вправо (не выходя за границы поля ввода);
Del - удаление символа, на который показывает курсор (со сдвигом влево на одну позицию правой части текста);
Backspace - удаление символа слева от курсора (если только курсор не в начале поля ввода) и перемещение курсора на одну позицию влево;
Ins - переключение с режима вставки на режим замены или наоборот (исходный режим - вставка) В режиме замены введенный обычный символ (цифра, буква и т.п.) заменяет на экране тот символ, на который указывает курсор. В режиме же вставки часть текста (от курсора и вправо) сдвигается на одну позицию вправо и в освободившееся место вставляется введенный символ. Далее (в любом режиме) курсор перемещается на позицию вправо, если только он не находится в конце поля ввода. При вводе числа система помимо указанных выше клавиш должна реагировать и на клавишу Esc, нажатие которой означает отказ от ввода и возврат системы на предыдущий этап. На нечисловые символы реакция системы может быть двоякой: либо она не реагирует на них (не высвечивает на экране), либо допускает их ввод, а проверку на правильность записи числа осуществляет лишь по окончании ввода. Рекомендуется использовать второй вариант как более универсальный.
D) В режиме отладки пользователь должен набрать заказанное им число элементов (дат) последовательности, подлежащей сортировке. Здесь рекомендуется поступить следующим образом.
Система выделяет определенным цветом на экране нужное число небольших окон, размер которых должен допускать ввод самого "длинного" элемента. Вначале курсор устанавливается в первую позицию первого окна, и пользователь набирает первый элемент, после чего нажимает клавишу Enter. Далее система переносит курсор в начало второго окна, пользователь набирает следующий элемент и т.д.
(Можно предоставить пользователю право вводить элементы не последовательно, а в любые указанные им окна и разрешить ему возвращаться к ранее набранным элементам с целью их изменения.) Ввод элементов должен осуществляться аналогично вводу длины последовательности (с возможностью редактирования). Формат записи элементов-дат может быть, например, таким: dd.mm.yy , где dd - число (1-2 цифры), mm - номер месяца (1-2 цифры) и yy – две последние цифры года. Анализ правильности записи даты следует проводить только после нажатия клавишы Enter.
E) Все другие аспекты работы системы (форматы вывода таблицы в режиме счета и отсортированной последовательности в режиме отладки и т.п.) определяются самостоятельно разработчиком системы. Он может также предусмотреть выдачу на экран (в верхней или нижней строке) подсказок - какие управляющие клавиши может сейчас нажимать пользователь и что они означают; он может очищать экран при переходе от одного этапа работы системы к другому, а может и уместить все нужные окна на одном экране, и т.д.