Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пример курсовой работы по Delphi (Кафедра)

.pdf
Скачиваний:
70
Добавлен:
06.02.2016
Размер:
870.51 Кб
Скачать

31

Y1=YA+(XB-XA)*b1

12489.012

X2=XC+(YB-YC)*b2

 

8501.164

Y2=YC+(XC-XB)*b2

 

13326.178

Контроль правильности вычислений X1,Y1,X2,Y2

XB-XA= 806.484

XB-XA= 806.484

XC-XB= 1659.600

 

 

XC-XB= 1659.600

YA-YB= 290.859

YA-YB= 290.859

YB-YC= -548.606

 

YB-YC= -548.606

Вычисление a,c

 

 

 

a=tg(BM) a=-1.311275 c=ctg(BM) c=-0.762616

Вычисления s1,s2 s1= -2806.316 s2= -2806.316

Вычисление координат точки M

XM=

6563.941

 

 

 

YM=

11848.820

 

 

Dir_ugol(MD)=

18 483

 

Dir_ugol(MC)=

343 21 27

 

Вычисленный beta3=

35 26 36

Исходный beta3=

35 26 39

beta3_исх-beta3_выч=

0 0

3

Доп. значение

= 0 0 15

 

Графическое представление засечки показано на рис.6.2

PDF created with pdfFactory Pro trial version www.pdffactory.com

32

Рисунок 6.2- Схема засечки 2, полученная в режиме графики программы

Содержимое тектового файла на пример 3: b1=ctg(beta1) 0.064911

Результаты вычислений: b2=ctg(beta2) 0.841109 X1=XA+(YA-YB)*b1 6829.052 Y1=YA+(XB-XA)*b1 10528.215 X2=XC+(YB-YC)*b2 7588.094 Y2=YC+(XC-XB)*b2 12445.667

Контроль правильности вычислений X1,Y1,X2,Y2 XB-XA= 2384.909 XB-XA= 2384.909

XC-XB= -276.526 XC-XB= -276.526 YA-YB= -650.412 YA-YB= -650.412 YB-YC= -1654.435 YB-YC= -1654.435

Вычисление a,c

PDF created with pdfFactory Pro trial version www.pdffactory.com

33

a=tg(BM) a=-0.395859 c=ctg(BM) c=-2.526151

Вычисления s1,s2 s1= -2230.937 s2= -2230.937

Вычисление координат точки M

XM=

7327.479

 

 

 

 

YM=

11787.315

 

 

 

Dir_ugol(MD)=

70 1226

 

Dir_ugol(MC)=

28

20 9

 

Вычисленный beta3=

41 52 17

Исходный beta3=

 

41 52 16

beta3_исх-beta3_выч=

0 0

1

Доп. значение

=

0 0 15

 

Графическое представление засечки показано на рис.6.3.

Рисунок 6.3- Схема засечки 3, полученная в режиме графики программы

PDF created with pdfFactory Pro trial version www.pdffactory.com

34

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

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

PDF created with pdfFactory Pro trial version www.pdffactory.com

35

ЗАКЛЮЧЕНИЕ

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

Полученный программный продукт удовлетворяет требованиям к про- граммам такого уровня.

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

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

Полученная программа занимает 1.4 МБ памяти на винчестере копьюте- ра, требует минимальной конфигурации компьютера с процессором Pentium или Celeron. Для работы программы потребуется свободной оперативной па- мяти до 40 МБ.

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

PDF created with pdfFactory Pro trial version www.pdffactory.com

36

ПЕРЕЧЕНЬ ССЫЛОК

1.Зданович В. Г. и др. Высшая геодезия, М., 1970 г.

2.Маслов А. В. и др. Геодезия, М., 1972 г.

3.Морозков С. Г. и др. Пособие по вычислению координат и высот опознаков, М., 1957 г.

PDF created with pdfFactory Pro trial version www.pdffactory.com

37

ПРИЛОЖЕНИЕ А -ЛИСТИНГ ФАЙЛА ПРОЕКТА

program Project_germ;

uses Forms,

Unit_main in 'Unit_main.pas' {Form_main},

Unit_about in 'Unit_about.pas' {AboutBox}, Unit_new_data in 'Unit_new_data.pas' {Form_new_data}, Unit_global in 'Unit_global.pas',

Unit_view in 'Unit_view.pas' {Form_view},

Unit_Titul in 'Unit_Titul.pas' {FormTitul1},

Unit_result in 'Unit_result.pas' {Form_result}, Unit_view_result in 'Unit_view_result.pas' {Form_view_result}, Unit_graph in 'Unit_graph.pas' {Form_graph};

{$R *.RES}

begin Application.Initialize;

Application.CreateForm(TFormTitul1, FormTitul1); FormTitul1.ShowModal;

FormTitul1.Free; Application.CreateForm(TForm_main, Form_main); Application.Run;

end.

PDF created with pdfFactory Pro trial version www.pdffactory.com

38

ПРИЛОЖЕНИЕ Б -ЛИСТИНГ МОДУЛЯ UNIT_GLOBAL

unit Unit_global; interface

uses Math; type

vect_double=array[1..5] of double; vect_int=array[1..5] of integer; vect_string=array[1..5] of shortstring; var

file_name, directories:shortstring; kod_open_data,kod_open_result:byte; stroki:array[1..30] of shortstring;

w,h :integer;

function DIR_UG(XA,YA,XB,YB:double):real; function deg_rad(deg,min,sec:integer):real; Procedure rad_deg(UG:real;var deg,min,sec:integer); Function ctg(deg,min,sec:integer):real;

Procedure X_Y(x1,y1,x2,y2:double;deg,min,sec:integer;var x,y:double);

Procedure X_Y2(x1,y1,x2,y2:double;deg,min,sec:integer;var x,y:double);

Procedure kontrol(deg1,min1,sec1,deg2,min2,sec2:integer;

x1,y1,x2,y2,xa,ya,xb,yb,xc,yc:double; var xb_xa,xc_xb,ya_yb,yb_yc:double);

Function tg_bm(x1,y1,x2,y2:double):real; Function ctg_bm(x1,y1,x2,y2:double):real; Function s(x,y,xb,yb:double;a:real):real;

Procedure X_Y_m(s1:real;xb,yb:double;a:real;var x,y:double);

implementation Procedure

X_Y2(x1,y1,x2,y2:double;deg,min,sec:integer;var x,y:double);

begin x:=x2+(y1-y2)*ctg(deg,min,sec); y:=y2+(x2-x1)*ctg(deg,min,sec); end; {конец процедуры X_Y2}

Procedure X_Y_m(s1:real;xb,yb:double;a:real;var x,y:double);

begin x:=xb+s1/(1+sqr(a)); y:=yb+a*(x-xb);

end; {конец процедуры X_Y_m} Function s(x,y,xb,yb:double;a:real):real; begin

s:=a*(y-yb)+(x-xb);

end; {конец функции s}

Function tg_bm(x1,y1,x2,y2:double):real; begin

tg_bm:=(x2-x1)/(y1-y2);

end; {конец функции tg_bm}

Function ctg_bm(x1,y1,x2,y2:double):real; begin

ctg_bm:=(y1-y2)/(x2-x1); end; {конец функции ctg_bm}

Procedure kontrol(deg1,min1,sec1,deg2,min2,sec2:integer;

x1,y1,x2,y2,xa,ya,xb,yb,xc,yc:double;

var xb_xa,xc_xb,ya_yb,yb_yc:double);

var zn1,zn2:real; begin

zn1:=1+sqr(ctg(deg1,min1,sec1));

zn2:=1+sqr(ctg(deg2,min2,sec2)); xb_xa:=(ctg(deg1,min1,sec1)*(y1-yb)-(x1-xb))/zn1; xc_xb:=(ctg(deg2,min2,sec2)*(y2-yb)+(x2-xb))/zn2; ya_yb:=(ctg(deg1,min1,sec1)*(x1-xb)+(y1-yb))/zn1; yb_yc:=(ctg(deg2,min2,sec2)*(x2-xb)-(y2-yb))/zn2; end;{конец процедуры kontrol}

Procedure X_Y(x1,y1,x2,y2:double;deg,min,sec:integer;var x,y:double);

begin x:=x1+(y1-y2)*ctg(deg,min,sec); y:=y1+(x2-x1)*ctg(deg,min,sec); end;{конец процедуры X_Y} Function ctg(deg,min,sec:integer):real; var

vr:real; begin

vr:=deg_rad(deg,min,sec); vr:=tan(vr);

ctg:=1/vr;

end;{конец функции ctg}

Procedure rad_deg(UG:real;var deg,min,sec:integer); begin

UG:=UG*180/Pi;

deg:=trunc(ug); min:=trunc((UG-deg)*60); sec:=round(((UG-deg)*60-min)*60); end; {конец процедуры rad_deg}

function deg_rad(deg,min,sec:integer):real; begin deg_rad:=(deg+min/60+sec/3600)*Pi/180; end; {конец функции deg_rad }

function DIR_UG(XA,YA,XB,YB:double):real; var

dx,dy:real;

UG:real; begin dx:=XB-XA; dy:=YB-YA; if dx=0 then begin

if dy=0 then begin DIR_UG:=0; end else begin

if dy>0 then begin DIR_UG:=3*Pi/2; end else

begin DIR_UG:=Pi/2; end;

end; end else

PDF created with pdfFactory Pro trial version www.pdffactory.com

39

begin UG:=arctan(dy/dx); if dx>0 then

begin

if dy=0 then begin DIR_UG:=0; end else begin

if dy>0 then begin DIR_UG:=UG; end else

begin DIR_UG:=2*Pi-abs(UG); end;

end; end else begin

if dy=0 then begin DIR_UG:=Pi; end else begin

if dy>0 then begin

DIR_UG:=Pi-abs(UG); end else

begin DIR_UG:=Pi+abs(UG); end;

end;

end;

end;

end; {конец функции DIR_UG} end.

PDF created with pdfFactory Pro trial version www.pdffactory.com

40

ПРИЛОЖЕНИЕ В -ЛИСТИНГ МОДУЛЯ UNIT_GRAPH

unit Unit_graph;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, ImgList, ExtDlgs, ComCtrls, ToolWin,

StdCtrls, unit_main;

type

TForm_graph = class(TForm) MainMenu1: TMainMenu; mmFile: TMenuItem; mmssave: TMenuItem;

N3: TMenuItem; mmexit: TMenuItem; mmopen: TMenuItem; mmhelpa: TMenuItem;

OpenDialog1: TOpenDialog; ImageList1: TImageList; SavePictureDialog1: TSavePictureDialog; Edit_xa: TEdit;

Edit_ya: TEdit;

Edit_xb: TEdit;

Edit_yb: TEdit;

Edit_xc: TEdit;

Edit_yc: TEdit;

Edit_xd: TEdit;

Edit_yd: TEdit; ToolBar1: TToolBar; TB_open: TToolButton; TB_savegrf: TToolButton; n_open: TToolButton;

ToolButton4: TToolButton; TB_help: TToolButton; ToolButton7: TToolButton; TB_exit: TToolButton; Label_xa: TLabel; Label_ya: TLabel; Label_yd: TLabel; Label_xd: TLabel; Label_xb: TLabel; Label_xc: TLabel; Label_yb: TLabel; Label_yc: TLabel; Label13: TLabel; ToolButton1: TToolButton; ToolButton2: TToolButton; Label_xm: TLabel; Label_ym: TLabel; Edit_xm: TEdit;

Edit_ym: TEdit; N_ris: TMenuItem; N_new: TMenuItem;

OpenPictureDialog1: TOpenPictureDialog; N1: TMenuItem;

N_max: TMenuItem;

PDF created with pdfFactory Pro trial version www.pdffactory.com