Научный журнал
Международный журнал экспериментального образования
ISSN 2618–7159
ИФ РИНЦ = 0,425

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++ ДЛЯ КАРТОГРАФОВ И ГЕОДЕЗИСТОВ УЧЕБНАЯ ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ ПРОГРАММА «НИВЕЛИРНАЯ РЕЙКА»

Заблоцкий В.Р. 1
1 Московский государственный университет геодезии и картографии
1. Заблоцкий В.Р. Фам Суан Хоан Программирование учебных геодезических задач в среде BORLAND C++ BUILDER 6 (консольные приложения) // Известия высших учебных заведений. Геодезия и аэрофотосъемка. – 2008. – № 4. – С. 81–89.

Обсуждается программа для студентов, изучающих программирование на С++ и знакомых с основами общей геодезии. В учебно-методической литературе, к сожалению, отсутствуют объектно-ориентированные программы, связанные с задачами картографии и геодезии. Представлены лишь программы на основе функционального программирования [1]. Цель работы заключалась в разработке программы, которая моделирует технику определения превышения одной точки местности над другой с помощью геометрического нивелирования. Рассмотрим содержательную постановку задачи. В выбранных точках местности размещаются вертикально нивелирные рейки, между ними устанавливается нивелир. Наводя зрительную трубу нивелира на рейки, берут отсчеты. Сначала берут отсчет по черной стороне задней рейки, затем рейку поворачивают красной стороной и берут отсчет по красной стороне. Затем трубу наводят на переднюю рейки и снова берут отсчеты по черной и красной стороне рейки. Превышение передней точки вычисляют как разность двух отсчетов и из двух измерений находят среднее значение.

Последовательность, описанных выше шагов выполнения геометрического нивелирования, представлена в программе «НИВЕЛИРНАЯ РЕЙКА». В ней реализован класс нивелирная рейка LevelingStaff, содержащий общие методы: «установить рейку в контрольной точке» SetUpStaffAtControlPoint и «повернуть рейку красной стороной к прибору» RotateTheStaffRedFace, а также частные элементы данных – целочисленные переменные, longOfStaff для хранения длины рейки и zeroOfRedFace – для начального отсчета на пятке красной стороны рейки. Определение, указанных выше методов класса, приводится вне класса в строках 19–24 и 25–28. Отметим также, что в строках 29–36 находится определение функции «направить трубу прибора на рейку и взять отсчет» PointTelescopeToStaffAndGetReading. Главная функция определяется в строках 37–65. В строке 42 создаются две нивелирные рейки и конструктору передаются два начальных значения: длина рейки – 3 м и начальный отсчет на пятке красной стороны рейки – 4787. С помощью функций библиотеки времени выполнения strcpy устанавливаются начальное значение символьного массива model равное «Двусторонняя деревянная рейка».

Поскольку все элементы члены – класса отмечены как имеющие тип private, то для доступа к ним должны использоваться интерфейсные функции, которые в данной версии программы не предусмотрены. Далее в строках 44 и 45 рейки устанавливаются в контрольных точках, причем рейка Staff1 определяется как задняя, а рейка Staff2 как передняя. Затем, в строках 47–48, вызывается метод класса, чтобы направить трубу прибора на рейку и взять отсчет PointTelescopeToStaffAndGetReading, величина отсчета сохраняется в переменной valueFromBlackFaceOfStaff1. В строке 49 вызывается метод, чтобы повернуть рейку Staff1 красной стороной RotateTheStaffRedFace к трубе нивелира. Далее в строках 50–51 выполняется отсчет по красной стороне рейки, и значение сохраняется в переменной valueFromRedFaceOfStaff1. Код в строках 53–57 повторяет действия, рассмотренные ранее для задней рейки, но теперь они выполняются для передней рейки. Затем в строке 60 вычисляется превышение точки (целочисленная переменная h1) по черной стороне рейки, а в строке 61 по контрольной стороне рейки. Среднее значение величины превышения рассчитывается и выводится на экран в строке 62. На этом выполнение программы заканчивается.

Выводы. Разработана учебная объектно-ориентированная программа для практических занятий по программированию на С++. В программе реализован класс нивелирная рейка, на его основе создаются два объекта – задняя и передняя рейка и моделируется техника геометрического нивелирования для определения превышения одной точки местности над другой. Данная программа подчеркивает преимущества объектно-ориентированного программирования на основе задачи геометрического нивелирования.


Библиографическая ссылка

Заблоцкий В.Р. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++ ДЛЯ КАРТОГРАФОВ И ГЕОДЕЗИСТОВ УЧЕБНАЯ ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ ПРОГРАММА «НИВЕЛИРНАЯ РЕЙКА» // Международный журнал экспериментального образования. – 2015. – № 5-1. – С. 89-91;
URL: https://expeducation.ru/ru/article/view?id=7496 (дата обращения: 29.03.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674