预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

附和导线平差程序[QBASIC]由本人在网络上收集整理 DECLAREFUNCTIONDEG!(X!)DECLAREFUNCTIONDMS!(XX!)DECLAREFUNCTIONXCHAR$(XX!,N!)CLSPRINTPRINT"附和导线平差程序(2.0R)"PRINT"作者:徐振刚"PRINT"1999年12月31日"PRINT"功能:本程序可以用来进行一般导线平差计算,包括附和导线、闭合导线和支导线,其中"PRINT"闭合导线和支导线需对原始数据进行一定处理。"PRINT"备注:坐标计算误差≤5mm;角度计算误差≤0.5s"PRINT REMN----角度个数(包括已知方位角)REMM----导线边数REMH----允许方位角闭合差秒值REMA----方位角(A(0)为起始方位角)REMD----边长REMX,Y----坐标(X1,Y1;X,Y为已知坐标)REMF0----方位角允许闭合差REMF1----导线方位角闭合差REMF3,F4,F----增量闭合差REMK----导线全长相对闭合差 PRINT"新建数据文件?(Y/N)"LOCATE25:PRINT"按ESC键返回主菜单.";TAB(60);DATE$;"";TIME$DOYN$=INKEY$IFYN$="Y"ORTN$="y"THENRUN"DXPCEDIT.BAS"ELSEIFYN$="N"ORYN$="n"THENEXITDOELSEIFYN$=CHR$(27)THENRUN"MAIN.BAS"ENDIFLOOPREM********************************************************************************CLSPI=3.141592653589793#:PU=180/PIINPUT"请输入数据文件名:(DXPC.DAT)";FILEIN$IFFILEIN$=""THENFILEIN$="DXPC.DAT"ENDIFOPENFILEIN$FORINPUTAS#1INPUT#1,N,M,HDIMB(N),D(M),A(N-1),X(M),Y(M)INPUT#1,X1,Y1,X,YFORI=0TONINPUT#1,B(I)B(I)=DEG(B(I))NEXTIFORI=1TOMINPUT#1,D(I)NEXTICLOSE#1REM********************************************************************************A(0)=B(0)FORI=1TON-1A(I)=A(I-1)+B(I)+180IFA(I)>360THENA(I)=A(I)-360ENDIFNEXTIF0=H/3600*SQR(N-1):F1=A(N-1)-B(N)V=-1*F1/(N-1)FORI=1TON-1A(I)=A(I)+V*IIFA(I)>360THENA(I)=A(I)-360ENDIFNEXTI S=0:X(0)=X1:Y(0)=Y1FORI=1TOMS=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)NEXTIF3=X(M)-X:F4=Y(M)-Y:F=ABS(SQR(F3*F3+F4*F4))D=0FORI=1TOMD=D+D(I)X(I)=X(I)-F3/S*DY(I)=Y(I)-F4/S*DNEXTIREM********************************************************************************PRINT"方位角允许闭合差F0=+/-";XCHAR$(DMS(F0),6)IFABS(F1)<=F0THENPRINT"导线方位角闭合差F1=";XCHAR$(DMS(F1),6);"OK!"ELSEPRINT"导线方位角闭合差F1=";XCHAR$(DMS(F1),6);"OVERLIMIT!"ENDIFPRINT"相对闭合差:"PRINTTAB(5);"F3=";F3,"F4=";F4,"F=";F,"K=1/";S/FPRINT"改正后方位角:"FORI=0TON-1PRINTTAB(5);"A(";I;")=";XCHAR$(DMS(A(I)),6)NEXTIPRINT"改正后坐标:"FORI=0TOMPRINTTAB(5);"X(";I;")=";XCHAR$(X(I),4),TAB(30);"Y(";I;")=";XCHAR$(Y(I),4)NEXTIPRINTTAB(5);"X(";M;")=";XCHAR$(X(M),4),TAB(30);"Y(";M;")=";XC