Пример курсовой работы по Delphi (Кафедра)
.pdf31
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