Пример работы программы
После запуска программы пользователь видит следующее окно (главное меню программы):
В программе предусмотрена защита от нажатия посторонних клавиш, т.е. любых клавиш кроме 1 - 4.
После нажатия клавиши 1, пользователь видит новое меню, меню работы с массивами:
В данном меню предусмотрены две защиты. 1 –я от нажатия посторонних клавиш, 2 – я выводит предупреждение, если пользователь нажмет клавишу 2 или 3 до того как введет массив.
После нажатия клавиши 1, пользователь переходит в меню выбора способа ввода массива.
Нажав 1, производится ввод координат точек с клавиатуры пользователем.
Если нажата клавиша 2, то считывание координат точек из файла.
После ввода массива, пользователь возвращается в меню работы с массивами.
Нажав клавишу 2, происходит преобразование массива и пользователь видит следующее сообщение на экране:
Нажав любую клавишу, пользователь возвращается в меню работы с массивами.
Нажав клавишу 3, происходит вывод результатов работы программы с массивами на экран и в файл.
После этого происходит возврат в меню работы с массивами.
Нажав клавишу 4, пользователь возвращается в главное меню программы.
При нажатии клавиши 2, пользователь попадает в окно работы по поиску площади и периметра фигуры, координаты вершин которой вводит пользователь.
Программа будет считать площадь до тех пор, пока пользователь не нажмет клавишу 'y' или ‘Y’. При нажатии этих клавиш, происходит возврат в главное меню программы.
Если в главном меню программы выбрать 3 – ий пункт (нажать клавишу 3), то пользователь попадает в окно работы по поиску точки пресечения исходной прямой и прямой, коэффициенты которой вводятся пользователем с клавиатуры.
Возможен случай, когда прямые будут параллельны, т.е. точки пересечения не будет.
Программа выводит соответствующее сообщение.
Поиск точки пересечения будет производиться до тех пор, пока пользователь не нажмет клавишу 'y' или ‘Y’. При нажатии этих клавиш, происходит возврат в главное меню программы.
При выходе из программы (нажатии клавиши 4 в главном меню), пользователь видит следующее окно:
При нажатии клавиши 'y' или ‘Y’ происходит выход из программы. Если нажата любая другая клавиша, пользователь возвращается к выбору задания в главном меню.
Выводы
В данной работе приходилось пользоваться массивами, функциями и работой с файлами.
Преимущества конструкции, использованной мной присчитывании координат точек из файла, заключается в том, что с помощью нее можно считывать неограниченное количество координат, т.е. считывать координаты до тех пор пока функция fscanf не возвратит EOF. Данную конструкцию можно использовать не только в данной курсовой работе, но и в других программах.
В программе были использованы статические массивы, т.к. у нас заранее известно, сколько элементов будет участвовать в работе с массивами. С точки зрения использования памяти это не рационально, т.к. в массивах D1 и D2 приходится выделять память под элементы этих массивов гораздо больше, чем это надо на самом деле. Для решения этой проблемы можно воспользоваться динамическими массивами (динамическим выделением памяти).
При сортировке массива D2 по убыванию r (расстояние от точки до прямой) был использован алгоритм сортировки методом «пузырька». Этот метод основывается на последовательном сравнении значений двух соседних элементов массива, начиная с последнего. В результате сравнения больший по значению элемент перемещается на место соседнего, достигая через определенное число шагов места первого элемента массива (при перестановке r, переставляются местами строки массива D2, т.е. каждый элемент i- ой строки).
Для облегчения чтения и красивого вывода на экран (записи в файл) результатов работы программы в функции vyvod(), я воспользовался табуляцией \t и форматным выводом элементов массивов %2.2f.
Алгоритм и программа составлены таким образом, что вся работа с массивами осуществляется не в главной функции, а в отдельной функции massiv(). Это сделано для того, чтобы не нагружать главную функцию main() и для удобства работы с программой.
При разработке программы мной была предусмотрена и разработана и реализована защита
от нажатия посторонних клавиш при работе с программой. В функции main() защита от нажатия любых клавиш кроме 1 – 4. В функции massiv() 2 защиты: 1 – я от нажатия посторонних клавиш кроме 1 – 4; 2 – я предусматривает проверку, ввел ли пользователь массив, т.е. если выбрать преобразование массива или его просмотр не введя его (из файла или с клавиатуры), то пользователь будет предупрежден об этом. Благодаря этим способам защиты программа функционирует без сбоев и ошибок при случайном (или специальном) нажатии посторонних клавиш.