Scientific journal
International Journal of Experimental Education
ISSN 2618–7159
ИФ РИНЦ = 0,425

1
1

Учебный практикум по программированию для студентов картографов и геодезистов обычно основывается на решении математических задач, например, найти сумму сходящегося ряда с заданной точностью или вычислить площадь подынтегральной функции и не учитывает специфику геодезического направления подготовки. Нашей целью является разработка набора типовых учебных задач геодезического содержания [1, 2], которые могут использоваться в качестве домашних заданий и при выполнении лабораторных работ студентами геодезического направления подготовки.

В данной работе обсуждается объектно-ориентированная программа на С++, иллюстрирующая наследование. Наследование является фундаментальной концепцией объектно-ориентированного программирования и рассматривается на примере создания и использования обычной и женевской линеек для измерения длин отрезков на аэрофотоснимке. Известно, что с помощью обычной линейки длина отрезка определяется с погрешностью 0,2 мм, женевская линейка с лупой позволяет определять длину с погрешностью 0,05 мм. Тем не менее, линейки, как объекты программирования, близки по своему назначению, что позволяет использовать их в качестве примера на простое наследование. Класс женевская линейка реализуется на основе родительского класса обычная линейка и наследует методы и свойства родительского класса. В программе моделируется техника измерения длин двух отрезков AB и AC на аэрофотоснимке с помощью обычной и женевской линеек.

Рассмотрим код программы. Определен класс линейка Ruler, содержащий общие методы: «провести отрезок прямой» DrawAStraightLine и «измерить длину отрезка» MeasuringLineLenght. Порождая класс женевская линейка GenevaRuler из существующего класса Ruler, мы добавляем метод «измерить длину отрезка, используя лупу» MeasuringLineLenghtUsingAMagnifyingGlass. Определение методов двух классов приводится в строках 23–26, 27–35 и в строках 36–50 соответственно. В главной функции заданы три точки А, В и С на аэрофотоснимке, далее в строке 55 создается объект обычная линейка ordinaryRuler, а в строке 56 – объект женевская линейка myGenevaRuler. Методом обычной линейки ordinaryRuler.DrawAStraightLine между точками А и В проводится отрезок (строка 58) и его длина измеряется методом ordinaryRuler.MeasuringLineLenght. Аналогичные действия выполняются с помощью женевской линейки, в строке 63 проводится отрезок между точками А и С, затем измеряется длина отрезка. Результаты измерений выводятся на экран в консольное окно. На этом выполнение программы заканчивается.

pic_2.wmf

Одно из преимуществ наследования состоит в том, что исключается дублирование программного кода внутри программы. Это видно на примере строки 63, где объект женевская линейка вызывает метод DrawAStraightLine, определенный в родительском классе.

Выводы

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