附和导线平差程序[QBASIC]_导线平差程序

2020-02-28 其他范文 下载本文

附和导线平差程序[QBASIC]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“导线平差程序”。

附和导线平差程序[QBASIC]

由本人在网络上收集整理

DECLARE FUNCTION DEG!(X!)

DECLARE FUNCTION DMS!(XX!)

DECLARE FUNCTION XCHAR$(XX!, N!)

CLS

PRINT

PRINT “ 附和导线平差程序(2.0R)”

PRINT “ 作者:徐振刚”

PRINT “ 1999年12月31日”

PRINT “功能:本程序可以用来进行一般导线平差计算,包括附和导线、闭合导线和支导线,其中” PRINT “ 闭合导线和支导线需对原始数据进行一定处理。”

PRINT “备注:坐标计算误差≤5mm;角度计算误差≤0.5s”

PRINT

REM N----角度个数(包括已知方位角)

REM M----导线边数

REM H----允许方位角闭合差秒值

REM A----方位角(A(0)为起始方位角)

REM D----边长

REM X,Y----坐标(X1,Y1;X,Y为已知坐标)

REM F0----方位角允许闭合差

REM F1----导线方位角闭合差

REM F3,F4,F----增量闭合差

REM K----导线全长相对闭合差

PRINT “新建数据文件?(Y/N)”

LOCATE 25: PRINT “按 ESC键 返回主菜单.”;TAB(60);DATE$;“ ”;TIME$

DO

YN$ = INKEY$

IF YN$ = “Y” OR TN$ = “y” THEN

RUN “DXPCEDIT.BAS”

ELSEIF YN$ = “N” OR YN$ = “n” THEN

EXIT DO

ELSEIF YN$=CHR$(27)THEN

RUN “MAIN.BAS”

END IF

LOOP

REM ******************************************************************************** CLS

PI = 3.14***93#: PU = 180 / PI

INPUT “请输入数据文件名:(DXPC.DAT)”;FILEIN$

IF FILEIN$ = “” THEN

FILEIN$ = “DXPC.DAT”

END IF

OPEN FILEIN$ FOR INPUT AS #1

INPUT #1, N, M, H

DIM B(N), D(M), A(N1

A(I)= A(I360

END IF

NEXT I

F0 = H / 3600 * SQR(N1)1)

FOR I = 1 TO N360

END IF

NEXT I

S = 0: X(0)= X1: Y(0)= Y1

FOR I = 1 TO M

S = S + D(I)

X(I)= X(I1)+ D(I)* SIN(A(I)/ PU)

NEXT I

F3 = X(M)Y: F = ABS(SQR(F3 * F3 + F4 * F4))

D = 0

FOR I = 1 TO M

D = D + D(I)

X(I)= X(I)F4 / S * D

NEXT I

REM ********************************************************************************

PRINT “方位角允许闭合差 F0=+/-”;XCHAR$(DMS(F0), 6)

IF ABS(F1)

PRINT “导线方位角闭合差 F1= ”;XCHAR$(DMS(F1), 6);“ OK!”

ELSE

PRINT “导线方位角闭合差 F1= ”;XCHAR$(DMS(F1), 6);“ OVER LIMIT!”

END IF

PRINT “相对闭合差:”

PRINT TAB(5);“F3=”;F3, “F4=”;F4, “F=”;F, “K=1/”;S / F

PRINT “改正后方位角:”

FOR I = 0 TO N1

PRINT #1, TAB(5);“A(”;I;“)=”;XCHAR$(DMS(A(I)), 6)

NEXT I

PRINT #1, “改正后坐标:”

FOR I = 0 TO M

PRINT #1, TAB(5);“X(”;I;“)=”;XCHAR$(X(I), 4), TAB(30);“Y(”;I;“)=”;XCHAR$(Y(I), 4)NEXT I

PRINT #1, TAB(5);“X(”;M;“)=”;XCHAR$(X(M), 4), TAB(30);“Y(”;M;“)=”;XCHAR$(Y(M), 4)CLOSE #1

REM ******************************************************************************** PRINT

PRINT “详细数据资料业已备份到 JHFY.OUT。”

PRINT

PRINT “按 ESC键 返回主菜单...” DO

LOOP UNTIL INKEY$ = CHR$(27)RUN “MAIN.BAS”

END

REM 将度分秒转换成度

FUNCTION DEG(X)

D = INT(X)

M = INT((XDD)* 60)

S =(XM / 60)* 3600

IF XX >= 0 THEN

DMS = D + M / 100 + S / 10000

ELSE

DMS =-1 *(D + M / 100 + S / 10000)END IF

END FUNCTION

REM 以字符串形式输出保留 N 位小数的 X FUNCTION XCHAR$(XX, N)

X = ABS(XX)

R = INT(X)

F = INT((X-R)* 10 ^ N +.5)

TEMP$ = MID$(STR$(F), 2)

WHILE LEN(TEMP$)

TEMP$ = “0” + TEMP$

WEND

TEMP$ = STR$(R)+ “.” + TEMP$

IF XX >= 0 THEN

XCHAR$ = TEMP$

ELSE

XCHAR$ = “-” + MID$(TEMP$, 2)

END IF

END FUNCTION

《附和导线平差程序[QBASIC].docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
附和导线平差程序[QBASIC]
点击下载文档
相关专题 导线平差程序 导线 程序 qbasic 导线平差程序 导线 程序 qbasic
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文