Вычисление ведомости тахеометрической съёмки

     СОДЕРЖАНИЕ 
 

         

ВВЕДЕНИЕ………………………………………………………………………

7

1.

Общие сведения о программировании для Windows………………..

              8

1.1.

Понятие графического интерфейса пользователя (GUI) ……………

              8

1.2.

Модель событий  GUI. ………………………………………………….

              8

1.3.

Визуальная среда программирования……………………………….

              9

1.4.

Объектно-ориентированное  программирование: ……………………

            10

1.4.1.

Инкапсуляция…………………………………………………………..

    10

1.4.2.

Наследование……………………………………………………………

             10

1.4.3.

Полиморфизм…………………………………………………………..

     11

2.

Решение инженерной задачи.....................……………………………..

             12

2.1.

Общее описание геодезической задачи………………………………..

             12

2.2. Цель решения  задачи........................................................………………

             12

2.3. Описание входных данных и их типов...……………...........................

             13

2.4. Определение выходных данных и их типов………………………….

             13

2.5. Математический  аппарат решения задачи……………………………

             13

2.6. Решение тестовых примеров...........……………………………………

             15

3. Программирование задачи в Delphi............……………………………

             16

3.1. Определение числа форм и их назначение .......………………………

             16

3.2. Проектирование  и описание интерфейса форм………………………

             16

3.3. Проверка входных данных……………………………………………..

             21

3.3.1. Проверка наличия данных.……………………......................................     21
3.3.2. Проверка семантической корректности данных………………………     23
3.3.3. Проверка физической корректности данных …………………............   23
3.4. Работа в  графическом режиме.……………………………....................     25
3.5. Тестирование  программы….....................................................................     25
3.6. Создание файла  помощи и его использование……………………….. 30
ЗАКЛЮЧЕНИЕ......................................................................................................

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ...................................................

    32

    33

     
     
   
            

 

ВВЕДЕНИЕ

 

     Программа для вычисления ведосомти тахеометрической съмки будет написана на алгоритмическом языке Object Pascal и реализована в среде программирования Delphi 5.0.

     Программа включает в себя непосредственно вычисление ведомости, многооконный интерфейс, обработку событий для форм и кнопок, работу с текстовым и типизированным файлами, работу в графическом режиме, а также будет присутствовать индивидуальное оформление.

     В программе будет предусмотрено  создание текстового файла с исходными данными для решения задачи. Этот файл будет имеет расширение .txt, и может быть просмотрен в любом текстовом редакторе.

     Данная  программа является необходимым продуктом для обработки данных, полученных при полевых геодезических измерений, т.е. представляет собой камеральную обработку тахеометрической съемки. 
 
 
 
 
 
 

 

 

  1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММИРОВАНИИ ДЛЯ WINDOWS
 
 
    1.  Понятие графического интерфейса пользователя (GUI)
 
 

     Графический интерфейс пользователя (GUI)  - представляет собой непосредственно разновидность пользовательского интерфейса, в котором элементы самого интерфейса ( так называемые меню, кнопки, значки, списки таблицы и многое другое), представленные пользователю на дисплее (мониторе), исполнены в виде графических изображений. Все части интерфейса мы можем наблюдать визуально, также при нажатии определенных кнопочек будет происходить некое действие (вычисление, прорисовка рисунка, сохранение и т.д.) которое мы естественно можем запрограммировать в коде самой программы. Это очень удобно как и для программиста, которые пишет непосредственно эту программу, он может наблюдать что он сделал, и что ему стоит исправить в случае необходимости, что влечет за собой легкую работу пользователя с этой же самой программой. 
 

    1.  Модель  событий  GUI
 
 

     Модель  событий пакета GUI представляет собой ряд компонентов (диалог, элемент управления, кнопки, надписи, таблицы, таймер, окно и т.д.) которые представляются как отдельные объекты. Каждый такой объект может запускать некоторые события. Если вы хотите обрабатывать определенного рода события объекта GUI, то вы должны добавить для этого объекта отдельные обработчики событий. У каждого обработчика есть определенная функция, которая ждет когда ее вызовет пользователь/программист. 
 

    1.  Визуальная  среда программирования.
 
 

     Визуальная среда программирования заключается в том, что бы запрограммировать программу так,  что бы пользователь/программист видел не только код программы непосредственно но и визуальную часть. Визуальная часть включает в себя окно программы, интерфейсная часть и т.д. Среды визуальных обработок имеют свои преимущества и недостатки. Преимущества заключаются в том, что работать с визуальной средой программирования быстрее, удобнее, и легко. Недостатки же заключаются в следующем:  как правило, привязка к конкретной среде разработки связанное с проблематичностью перехода на другую среду разработки, затруднённое использование нестандартных компонентов, и также наличие недокументированных особенностей небольшого количества компонентов. Иногда случаются такие проблемы как искажение программы при переходе из одной визуальной среды программирования в другую. Это не очень удобно. В наше время используется большое количество визуальных сред программирования. Например такие как, Visual Studio (Популярная среда разработки приложений на FoxPro, Visual Basic, С++ со встроенными средствами отладки и редактирования приложений под Win32), Borland C++ Builder (Последняя версия Borland C++ служащая для создания программ любой сложности.) и многие другие. Мы же использовали Borland Turbo Pascal (Один из наиболее распространенных компиляторов. С ним совместимо большинство программ, написанных на Паскале.) 
 

    1. Объектно-ориентированное программирование(ООП)
 
 

     Все языки OOП, основаны на трёх основополагающих концепциях, называемых инкапсуляцией, полиморфизмом и наследованием. 
 

          1.4.1. Инкапсуляция  
 

     Инкапсуляция - это механизм, который объединяет данные программы и непосредственно код, работая с этими данными, а также защищает их от внешнего вмешательства или неправильного использования, для предотвращения нарушения работы самой программы. 
 

          1.4.2. Полиморфизм 
 

     Полиморфизм - это свойство, благодаря которому возможно использовать одно и то же имя для решения двух или более схожих, но технически разных задач. Целью этого свойства является использование одного имени для задания общих для класса действий. Выполнение каждого конкретного действия будет определяться определенным типом данных.  
 
 
 

      1. Наследование
 
 

     Наследование - это процесс, благодаря которому один объект может приобретать некоторые свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него. Наследование - очень важный процесс, поскольку оно позволяет поддерживать концепцию иерархии классов, что способствует управлению больших потоков информации. 
2. РЕШЕНИЕ ИНЖЕНЕРНОЙ ЗАДАЧИ 
 

     2.1. Общее описание геодезической задачи 
 

     Камеральная обработка тахеометрической съемки состоит из нескольких этапов, одним  из которых является вычисление ведомости  тахеометрической съемки. Она включает в себя вычисление угла наклона на реечные точки, горизонтального проложения линии и превышения реечных точек над соответствующими станциями.  
 

          2.2.  Цель решения задачи 
 

     Вычислить углы наклона на все реечные точки. По углу наклона и расстоянию, измеренному нитяным дальномером, вычислить горизонтальные проложнения линий и превышения реечных точек над соответствующими станциями.

       Из ведомости увязки превышений  теодолитно-высотного хода и вычисления отметок станций, выписать в журнал тахеометрической съёмки отметки станций, а также вычислить отметки реечных точек. 
 
 
 
 
 

     2.3.  Определение входных данных и их типов 
 

      На  форме «Исходные данные» в  таблицу StingGrid_vvod в столбцы 1, 2, 3, 4 и 5  вводятся данные типа Real, а в Edit1, Edit2, Edit3, Edit4, Edit5 соответственно вводятся место нуля(градусы, минуты), Отметка станции, координаты точки стояния(Х,У) типа Char.  
 

      2.4. Определение выходных данных  и их типов 
 

      На  форме «Исходные данные» после  того, как  введены все необходимые данные и произведены вычисления, в таблице StringGrid_vvod в столбцах 6,7,8,9,10 появляются результаты вычислений (выходные данные) типа Real. 

       

      2.5. Математический аппарат решения  задачи 
 

     При вычислении ведомости тахеометрической съемки были использованы следующие формулы: 

1) Для  вычисления угла наклона была  применена формула 

ν = КЛ – МО             (2.4.1) 

2) Горизонтальное проложение линии вычисляется по формуле  

L0 = klcos2ν,            (2.4.2) 

где l - длина по дальномеру,

k - коэффициент , равный 1,

ν - угол наклона. 

       3) Для вычисления превышения реечных точек над соответствующими станциями я использовала формулу: 

      h = klsin2ν,      (2.4.3) 

где l - длина по дальномеру,

k - коэффициент , равный 1,

ν - угол наклона. 

4) Отметки всех  реечных точек вычисляются путем  прибавления соответствующего превышения к отметке станции: 

Hпик = Hст + h        (2.4.4) 

где Hст – отметка станции,

h – превышение. 
 
 
 
 
 

     2.6. Решение тестовых примеров 
 

     Данные для тестових примеров были взяты из ведомости камеральной обработки тахеометрической съемки, которая была решена мной в осеннем семестре.Тестовый пример показан на рисунке 2.6.1

Рис. 2.6.1. - «Решение тестовых примеров» 

     Сравнивая полученные данные в результате вычисления пргограммы и данные, которые я получила при вычислении ведомости, можно сделать вывод, что программа работает правильно! Вычисления в программе и в ведомости совпадают.  
 
 
 
 

     3. ПРОГРАММИРОВАНИЕ ЗАДАЧИ В DELPHI 
 

     3.1. Определение числа форм и их назначения 
 

     Данная программа состоит из 5 форм:

  1. Форма заставки (Form1). Она появляется при запуске программы и предназначена для представления приложения;
  2. Главная форма (Form_main). Главное окно программы;
  3. Форма «О программе» (Form_About). Предназначена для предоставления пользователю информации о назначении программы и о ее разработчике;
  4. Форма «Исходные данные» (Form_new_data). Предназначена для ввода исходных данных, их обработки и вычисления.
  5. Форма «Графика» (FormGraphics). Предназначена для представления решенной задачи в графическом виде.

     Также есть форма помощи,  к которой пользователь в случае возникновения у него  затруднений с работой программы, сможет обратиться к ней, для получения подсказок в его дальнейших действиях.  
 

     3.2. Проектирование и описание интерфейса форм 
 

     Форма Form_splash – форма заставки при загрузке программы. На эту форму были помещены компоненты TTimer (Sistem) и TImage (Additional).

     Форма заставки представлена на рисунке 3.2.1 

Рис. 3.2.1 – «Форма заставки» 

     Форма Form_main – главная форма программы, которая появляется после заставки.

     На  эту форму были помещены такие компоненты как: TStatusBar (Win32), TToolBar (Win32), TMainMenu (Standart), TImage (Additional), TImage (Win32), TOpenDialog (Dialogs)

     Главная форма программы представлена на рисунке 3.2.2

Рис. 3.2.2 – «Главная форма» 

     Форма Form_About – форма «О программе»

     На  эту форму были помещены компоненты TButton (Standart), TImage (Additional) и 3 компоненты TLabel (Standart).

     Форма «О программе» представлена на рисунке 3.2.3

    

Рис. 3.2.3 – Форма «О программе» 

     Форма Form_new_data – форма для ввода исходных данных

     На  эту форму были помещены 5 компонент TButton (Standart), 5 компонент TEdit (Standart), 4 компоненты TLabel (Standart), 5 компонент TPanel (Standart), SaveDialog (Dialogs), SpinEdit (Samples), StatusBar (Win32), StringGrid (Additional).

     Форма «Исходные данные» представлена на рисунке 3.2.4

Рис. 3.2.4 – Форма «Исходные данные» 

     Форма FormGraphics – форма, на которой представляется решение задачи в графическом виде.

     На  эту форму были помещены компоненты TImageList (Win32), 2 компоненты TPanel (Standart), TPageControl (Win32), TStringGrid (Additional), TSavePictureDialog (Dialogs), StatusBar (Win32), ToolBar (Win32)

     Форма графики представлена на рисунке 3.2.5

Рис. 3.2.5 – Форма «Графика» 
 

     3.3. Проверка входных данных 
 

     Данные  проверки дают возможность пользователю не ошибиться с вводом исходных данных для решения данной задачи , что не повлечет за собой появление неправильных результатов. 
 

     3.3.1. Проверка наличия данных 
 

     Данная  проверка состоит в том, что при  случае если в окне вводимых данных не будет введен ни один символ, программа  выдаст сообщение об ошибке и не даст возможность продолжать вычисление текущей задачи. Эта проверка будет срабатывать только при наличии в листинге программы следующего кода : 

     begin

     if Edit1.Text='' then

     begin

     ShowMessage('Нет градусов места нуля');

     Exit;

     end; 

     if Edit2.Text='' then

     begin

     ShowMessage('Нет минут места нуля');

     Exit;

     end; 

     if Edit3.Text='' then

     begin

     ShowMessage('Нет отметки точки станции');

     Exit;

     end; 

     Этот  код должен быть подсоединен к кнопке, при нажатии которой и будет проходить проверка. В случае успешного проверки, программа автоматически  будет выполнять расчеты требуемые непосредственно для решение самой задачи.  
 
 

     3.3.2. Проверка семантической корректности данных 

     Данная проверка заключается в том, что на вводимые данные налагаются ограничения(семантическая корректность), т.е. вы не сможете ввести какие-либо символы, кроме цифр от 0 до 9 и разделительной запятой. Для того, чтобы эта проверка работа в коде программы прописываем следующий код:

     procedure TForm_new_data.StringGrid_vvodKeyPress(Sender: TObject;

     var Key: Char);

     begin

     if not (Key in ['0'..'9',DecimalSeparator,#8])

     then

     begin

     ShowMessage('Вы вводите недопустимые данные!');

     Key:=#0;

     Exit;

     end;

     end; 
 

     3.3.3. Проверка физической коректности данных 
 

     Данную  проверку стоит выполнять в том  случае, если при введении чисел  требуется соблюдение некого диапазона. Например, для вычисления ведомости тахеометрической съемки, в исходные данные нужно ввести значение углов по горизонтальному и вертикальному кругам в градусах, минутах, секундах, соответственно в диапазоне для: градусов - 0º-359º, минут 0'-59', секунд 0''-59'' 

     Эта проверка будет срабатывать только при наличии в листинге программы: 

     / Проверка горизонтального угла на допустимые значения

     if ACol=2 then

     begin

     if StrToInt(Value)>360 then

     begin

    ShowMessage('Недопустимое значение градусов горизонтального угла');

     StringGrid_vvod.Cells[ACol,Arow]:='';

     Exit;

     end;

     end;

     // Проверка минут горизонтального угла на допустимые значения

     if ACol=3 then

     begin

     if StrToInt(Value)>59 then

     begin

     ShowMessage('Недопустимое значение минут горизонтально угла');

     StringGrid_vvod.Cells[ACol,Arow]:='';

     Exit;

     end;

     end; 

     Данную  проверку стоит выполнять в том  случае, если нам нужно вводить  только числа, а другие знаки, такие  как буквы и т.д. не допустимы. 
 

     3.4. Работа в графическом режиме 
 

     Работу в графическом режиме можно начать лишь после того, как вы введете все необходимые данные и произведете вычисления. Так как, не выполнив эти действия, кнопка Графика, позволяющая перейти на форму работы с графикой и находящаяся на форме «Исходные данные», не активна.

     После выполнения необходимых действий, нажимаем кнопку Графика, после чего появится форма «Графическая схема». Для рисования графики необходимо нажать на кнопку Нарисовать точки . После того как графика будет выполнена, ее можно будет увеличить(кнопка Увеличить ), уменьшить (кнопка Уменьшить ) и сохранить (кнопка Сохранить ). Сохраненный файл графики можно будет просмотреть в стандартной программе для рисования Paint.  
 

     3.5. Тестирование программы  
 

     Для тестирования программы я также использовала ведомость, вычесленную в осеннем семестре. Тестирование программы заключается в том, чтобы проверить правильность вычислений, сохранение полученных данных в текстовый и бинарный файлы, а также сохранение полученной графики.

     Сначала я на форме «Исходные данные» вводила данные с клавиатуры

     Пример представлен на рисунке 3.5.1

Рис. 3.5.1 – «Ввод данных с клавиатуры» 

Результаты вычислений представлены на рисунке 3.5.2

     Рис. 3.5.2 – «Результаты вычислений» 

     Полученные данные можно сохранить как в текстовый, так и в бинарный файлы. Для этого нажимаем кнопку Сохранить, после чего появится диалоговое окно, в котором вам необходимо будет выбрать расширение, которое вы хотите присвоить данному файлу (.txt, .bin, *.*), и прописать имя файла, под которым он будет храниться (рис 3.5.3)

Рис. 3.5.3 – «Сохранение вычислений в файл» 

     Для перехода на форму графики нажимаем кнопочку «Графика» на форме исходные данные, после чего появится форма «Графическая схема», представленная на рисунке 3.5.4

     Рис. 3.5.4 – форма «Графика» 

     Для рисования графики нужно нажать на кнопочку Рисовать . После чего на форме появится решенная задача в графическом виде.(рис. 3.5.5)

Рис. 3.5.5 – «Рисование графики» 

     Также для тестирования программы был создан текстовый файл в формате .txt, который сохранен в папке Data под именем Исходные данные. Для его открытия на главной форме в меню Файл нажимаем Открыть, после чего в появившемся окне выбираем нужный нам файл. В таблице исходных данных появляются данные, содержащиеся в документе(рис. 3.5.6)

Рис. 3.5.6 – «Открытие исходных данных из тектсового документа» 

     После открытия текстового документа с исходными данными мы вводим недостающие данные и нажимаем кнопку Вычислить(рис. 3.5.7)

Рис. 3.5.7 – «Результат вычисления по данным из файла»

     По  результатам тестировани видно, что программа работает правильно. Вычисления произведены верно, графическое представление решения работает, сохранение в текстовый и типизированные файлы производится успешно.  
 

     3.6. Создание файла помощи и его использование 
 

     Для создания файла помощи я использовала программу «Help & Manual»

После запуска программы выбираем New Help & Manual Project. Затем слева в колонке Tabel of Contents прописываем основные пункты и подпункты, необходимые для работы прграммы, для которой пишется помощь. Для добавления

или удаления разделов используем кнопки «плюс» и «минус», которые находятся над колонкой Tabel of Contents. Для написания текста для какого-либо раздела помощи переходим на поле ввода текста Help Text. Введеный текст можно редактировать: изменять шрифт, размер, цвет текста, выравнивать по левому,по правому краю и по центру, и т.д.

     После написания всех пунктов помощи, сохраняем файл в папку Listing,

затем нужно откомпелировать программу. Для этого нажимаем кнопку Make Help File and Run(в виде мясорубки),в появившемся окне выбираем пункт Winhelp . После компиляции появится диалоговое окно в котором вы сможете увидеть где был сохранен файл. В листинге программы надо прописать на тот пункт меню, при обращении к которому будет появляться файл помощи код: Application.HelpCommand(HELP_CONTENTS,0);

     Для присоединения файла помощи в программу нужно выполнить следующие действия: Project ÞOptions Þ Applications. В строке Help file прописать путь к файлу помощи и нажать ОК. Затем сохраняем все изменения в программе и запускаем ее на выполнение. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ЗАКЛЮЧЕНИЕ 

     В процессе изучения языка программирования Object Pascal и визуальной среды программирования Delphi 7 был создан программный продукт, производящий вычисление углов ориентирования.

Вычисление ведомости тахеометрической съёмки