附和导线平差程序
附和导线平差程序[QBASIC]
由本人在网络上收集整理
DECLARE FUNCTION DEG! (X!)
DECLARE FUNCTION DMS! (XX!)
DECLARE FUNCTION XCHAR$ (XX!, N!)
CLS
PRINT " 附和导线平差程序(2.0R)"
PRINT " 作者:徐振刚"
PRINT " 1999年12月31日"
PRINT " 功能:本程序可以用来进行一般导线平差计算,包括附和导线、闭合导线和支导线,其中"
PRINT " 闭合导线和支导线需对原始数据进行一定处理。"
PRINT "备注:坐标计算误差≤5mm;角度计算误差≤0.5s"
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.[**************]#: 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(N - 1), X(M), Y(M)
INPUT #1, X1, Y1, X, Y
FOR I = 0 TO N
INPUT #1, B(I)
B(I) = DEG(B(I))
NEXT I
FOR I = 1 TO M
INPUT #1, D(I)
NEXT I
CLOSE #1
REM
********************************************************************************
A(0) = B(0)
FOR I = 1 TO N - 1
A(I) = A(I - 1) + B(I) + 180
IF A(I) > 360 THEN
A(I) = A(I) - 360
END IF
NEXT I
F0 = H / 3600 * SQR(N - 1): F1 = A(N - 1) - B(N)
V = -1 * F1 / (N - 1)
FOR I = 1 TO N - 1
A(I) = A(I) + V * I
IF A(I) > 360 THEN
A(I) = A(I) - 360
END IF
NEXT I
S = 0: X(0) = X1: Y(0) = Y1
FOR I = 1 TO M
S = S + D(I)
X(I) = X(I - 1) + D(I) * COS(A(I) / PU)
Y(I) = Y(I - 1) + D(I) * SIN(A(I) / PU)
NEXT I
F3 = X(M) - X: F4 = Y(M) - Y: F = ABS(SQR(F3 * F3 + F4 * F4))
D = 0
FOR I = 1 TO M
D = D + D(I)
X(I) = X(I) - F3 / S * D
Y(I) = Y(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 N - 1
PRINT TAB(5); "A("; I; ")="; XCHAR$(DMS(A(I)), 6)
NEXT I
PRINT "改正后坐标:"
FOR I = 0 TO M
PRINT TAB(5); "X("; I; ")="; XCHAR$(X(I), 4), TAB(30); "Y("; I; ")="; XCHAR$(Y(I), 4)
NEXT I
PRINT TAB(5); "X("; M; ")="; XCHAR$(X(M), 4), TAB(30); "Y("; M; ")="; XCHAR$(Y(M), 4)
OPEN "DXPC.OUT" FOR OUTPUT AS #1
PRINT #1, " 导线平差"
PRINT #1, TAB(25); DATE$, TIME$
PRINT #1,
PRINT #1, "方位角允许闭合差 F0=+/-"; XCHAR$(DMS(F0), 6)
IF ABS(F1)
PRINT #1, "导线方位角闭合差 F1= "; XCHAR$(DMS(F1), 6); " OK!"
ELSE
PRINT #1, "导线方位角闭合差 F1= "; XCHAR$(DMS(F1), 6); " OVER LIMIT!"
END IF
PRINT #1, "相对闭合差:"
PRINT #1, TAB(5); "F3="; F3, "F4="; F4, "F="; F, "K=1/"; S / F
PRINT #1, "改正后方位角:"
FOR I = 0 TO N - 1
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 "详细数据资料业已备份到 JHFY.OUT。"
PRINT "按 ESC键 返回主菜单..."
DO
LOOP UNTIL INKEY$ = CHR$(27)
RUN "MAIN.BAS"
END
REM 将度分秒转换成度
FUNCTION DEG (X)
D = INT(X)
M = INT((X - D) * 100)
S = INT((X - D - M / 100) * 1000000) / 100
DEG = D + M / 60 + S / 3600
END FUNCTION
REM 将度转换成度分秒
FUNCTION DMS (XX)
IF XX
X = -XX
ELSE
X = XX
END IF
D = INT(X)
M = INT((X - D) * 60)
S = (X - D - M / 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
相关文章
- 地籍调查技术设计书
- 全站仪导线测量及平差方法
- 工程测量报告
- 测量毕业设计
- 铁路测量方案
- 导线点布设及施工测量
- 导线测量实验报告
- 矿山测量规范
- 测绘软件名录集
徐州市铜山新区 控制测量技术设计书 专 业: 工程测量 小 组: 第八组 姓 名: 学 号: 指导教师: 2012年 5 月 16 日 徐州市铜山新区控制测量技术设计书 目录 一. 任务概述 1. 任务来源 2. 测区范围 3. 地理位置 ...
全站仪坐标导线测量及平差方法的比较 摘 要:介绍了全站仪坐标导线的测量方法,简要叙述分析了四种全站仪坐标导线平差方法,并对其中一种平差方法通过算例验证了它的可行性,指出全站仪坐标平差方法计算简单.精度符合要求,值得推广. 多年来,全站仪以其 ...
测量实习报告 序言²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²1 基本原理²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²1 实习步骤²²²²²²²²²²²²² ...
江苏建筑职业技术学院毕业设计说明书 图书馆收藏 中图分类号: 密级: UDC: 编号: 毕业设计 苏州市滨湖新城吴中片区东三路道路测量技术设计 李亚州 专业名称: 班 级: 学 制: 学 号: 学历层次: 指导教师: 评 阅 人: 工程测量 ...
衢宁铁路施工测量方案 一.工程概况 衢宁铁路第一合同段起始桩号为DK0+000.000,终点桩号为DK40+944.000,主线全长40.944公里.主要工程量包括: 1.路基挖方 万立方米,路基填方 万立方米: 2.大桥 座. 3.涵洞通 ...
导线控制网的布设及施工测量 一. 准备工作 1. 熟悉图纸及图纸复核. 2. 仪器标定及校核. 3. 工地现场实地考察,熟悉现场地形. 二. 导线控制点的布设 1. 导线点应选择在通视良好,安全易保护的地方 2. 用混凝土浇筑成方桩,中间预 ...
课程设计报告 设计题目: "误差理论与测量平差基础"课程设计 专 业: 班级学号: 姓 名: 指导教师: 测绘工程 测绘10001.08 董恩忠 蒋 辉 起屹日期: 2012年9月3日-2012年9月9日 南京工业大学测 ...
矿山测量技术规范 第一章 总则 第1条 矿山测量是矿山企业生产建设的一项基础技术工作.是正确指导生产.进行科学管理,实现矿山生产技术现代化工作中的一个重要组成部分.它的主要任务是及时进行生产测量和施工测设:执行生产监督,实现正规采掘与矿产资 ...
广州开思公司系列软件 SCS 2000G 多用途数字化测绘系统 SCS 2000i Lisp二次开发程序集 SCS2000 自由码包 SCS 2002G 多用途数字化测绘系统国标版 SCS 2002G 说明书(电子版) NSCS 2002多 ...