2023年程序设计实验报告.pdf
《2023年程序设计实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年程序设计实验报告.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 发嶷理工大拳ANHUI UNIVERSITY OF SCIENCE&TECHNOLOGY学生 实 验 报 告院 系:测绘学院专业班级:测绘1 3 级 3 班学 号:学生姓名:王 泽指导教师:郭辉老师2023年 0 5 月 2 0 日安徽理工大学实验报告实验课程名称:数据结构与软件开发上机实验开课院系及实验室:测绘学院红楼二楼机房院系测绘学院专业班级测绘13-3班姓 名王泽成 绩实验项目名称测量程序设计课程实验指导教师郭辉老师实验1编程基本知识练习实验目的:通过该实验课内容的练习,学生应掌握V B编程的基本语法、变量的定义、数 组(动态数组)的 定 义、V B语言中子过程与函数的定义以及文本文
2、献的读写等知识。实验内容:1)变量的定义动态数组的定义与应用;2)矩阵的加、减、乘运算(定义S u b()子过程或Function。来实现);3)数据文献的建立、数据的读取与写入。实验环节:1.编辑界面1.1打开V B编程工具,进入编程主界面。1 .2 在窗体上新建“读入数据”和“输出数据 两个按钮。1.3 双击“窗体”进入代码输入界面,进行代码编辑。2.用V B 编写的源代码2.1 矩阵基本运算源码详见附录一。(1)两矩阵相加(2 )两矩阵相减(3)矩阵转置(4)两矩阵相乘(5)矩阵求逆2.2 文本文献(本实验中d a t a.tx t)的读取源代码(1)建立文本文献并输入数据在桌面上新建一
3、“data,t x t”(文 本文献途径为C:U s e rs WH Desktop练习d ata.tx Q o 输入以下内容:6,7,4,0.005A,3 5.418B,45.712C,25.27 0D,24.6 7 8在桌面上新建一“resuH xt”(文本文献途径为C:Us ers WH Deskto p 练习 resu 1 t.tx t )。(2)从文本文献中读数据Dim 1 i nedata a s stri n g,m_ GaochaN as i n t e ger,m_P n u mber asin t e g er,m_ k nPnumber a s i nteger,M as
4、 D ouble,kl as integer7 lined a t a 为存储文本文献一行信息的字符串变量Dim a()as S t r ing,H()as D o u b le%()为存储点名,H()存储高程O p en4tC:U s e rs W HDeskt o p练习 d at a.t x fTor Input As#1Line I npu t#1,linedatak=Split(l i n ed a t a,V)m_Gao c haN=Val(k(0)m_Pnumb e r=Val(k)m_ k n P number=Val(k(2)M=C Dbl(k(3)For kl=1 T o
5、m_knPnum b e rLine I nput#1,lin e da t akSplit(1 i nedata,a(k l)=k(0)G e t sta t io n Number(a)H(kl)=CD b l(k(1)N e x tClose#1(3)将读入点名存储到点名数组中,且返回该点名所相应编号F u n c t i on Ge t stationNum b er(n a me As S t ri n g)D i m i As In t e g e rFor i=1 To m_PnumberIf P_Name(i),M,Th en聘待查点名与已经存入点名数组的点比较If P_Nam
6、 e(i)=n am e Th e nG e t stationN u mber=iExi t ForE nd IfElse 待查点是新的点名,将新 点 名 放 到 P_N am e数组中P Name(i)=nameGe t s tat i o nNumber=iExit F o rEnd IfNext iE nd Function(4)从文本文献中写数据(将从d a t a.t x t 读入的数据,写入到re s u lt.tx t文献中)OpenC:Users WHDe s kto p 练习展5皿.t x t For Ou t pu t As#Io ut s t r ing=o u t s
7、 tring+str(m_G a o c h a N)+“,”ou t s t ri n g=o u tstring+s t r(m_Pnum b er)+,o u t s tr i ng=outst r ing+s t r(mk n P number)+,noutstri n g=o u t strin g+str(M)+vbC r L fFor kl=1 To m_ kn Pn u m b erou t string=outstr i ng+a(k 1)+=+F orm at(H(kl),#0.0 0 0u)+v bCrLfNe x tPrint#1,o u ts t r ing.实验2水
8、准网平差程序设计实验目的:通过本次实验的练习,使学生掌握水准网平差中近似高程计算算法、组成误差方程系数阵 B、组成误差方程常数项L 及权阵生成算法。掌握法方程的组建参数改正值的计算以及单位权中误差的计算。掌握水准网平差中输出高程平差值和高程中误差、输出观测值及其改正数与平差值等信息并保存为平差成果文献的方法。实验内容:1)在读入水准网数据后,进行待定点近似坐标的计算;2)基于间接平差的思想,以观测的测段高差为观测值,组成误差方程系数矩阵B 及常数项矩阵L;3)基于水准网平差中定权的方法(测段长或测站数定权),生成权阵P。4)运用矩阵的基本运算(调用矩阵运算函数即可)得到法方程系数矩阵及常数项矩
9、阵。该实验的内容其实质就是调用矩阵运算函数。5)熟悉V B 中输出函数P r in t 的用法,及控制输出格式的函数的用法,如 Space。、Str i ng()6)水准网平差结束后,将变量及数组中的数据输出到平差结果文献中。实验环节:1.读入水准网数据(1)建立文本文献并输入数据在桌面上新建一“da t a.tx t”(文本文献途径为C:U s ers WHDesktop练 习 1data.txt)。输入以下内容:1 0,7,2,0.00 1A,0.000F,1 1 .41 4A,B,7 3.7 95,20.4A,D,1 4.005,18.8A,G,14.167,15.4C,B,71,949
10、,8.9D,B,59.7 80,1 4.2C,D,1 2.159,12.8C,E,15.364,9.8F,E,5.7 9 7,19.6G,E,3.0 4 4,15.1D,G,0.1 6 9,10.0在桌面上新建一“result.tx t”(文本文献途径为C:Use r s WH Des k top练 习 1 out.t xfOoP r i vat e Sub C omman d 1 _C lick()(2)读入水准网数据O p e n C:Users W H D e s k to p 练习 ldata.txt For In p u t As#1L i n e Input#1,1 ine d a
11、t ak=Sp 1 i t(linedata,”)mGaoc h aN=Vai(k(0)m_P number=Val(k(1)m_knPn u mber=Va 1 (k(2)M=CDb 1 (k(3)ReDim A(1 T o m_ k nPn u m b er),H(1 T o m_ knP n um b e r)For k 1 =1 To m_knPnumbe rL ine Input#1,lin e d a t ak=S p lit(1 ined a ta,A(kl)=k(0)H(kl)=CDb 1 (k(l)N e xtReDim Sta r tP(1 To mGaochaN),E n
12、 d P(1 To m_G a oc h a N),gao c h a(1 To m_Gaoc h aN),L i(1 To m_G a ochaN)F o r k2=1 T o m_G a ocha NL in e Input#1,linedatak=S p 1 i t(line d ata,*)Sta r t P(k 2)=k(0)EndP(k 2)=k(l)gaocha(k2)=CDb 1 (k(2)Li(k 2)=CDbl(k(3)Ne x tClose#1End Sub2.编辑界面打开V B编程工具,进入编程主界面。在窗体上运用控件新建“载入数据”、”开始计算”、导出结果”、清空”四
13、个按钮和一个文本框。为工程 1-Microsoft Visual Basic S i t -X S 1 -Form l(Form)文件()台 视 图 区)工 程()ffi5C(Q)谓 试 运 行 雷表(D I M C D 外 接 程 序&S O(W)翔劭(H)眇,匕,,茴国 朗 囱 名 替 於 忠f j o,。XIGeneral|a司g i金 口圄、国 震,耐3.定义相应变量、数组和实现各功能的函数(过程)详见附录二(1)水准网中近似坐标计算(2)生成误差方程系数矩阵B及常数项矩阵L3(A)生成权阵P(4)残差及中误差计算函数(5)组成法方程及平差计算(6)平差结果输出附件1矩阵基本运算源码(
14、1)两矩阵相加Priv a t e Functio n Msum(M As Integ e r,n As Integer,Matrix s u m()A s D o ub1 e,Matrix 1()A s Doub 1 e,M a t ri x 2()As Do u ble)矩阵求和函数Dim il As Inte g e r,i 2 As I ntegerRe Dim Ma t rixsum(l To M,1 To n)For i 1 =1 T o MFor i 2=1 To nMa t rixsum(il,i 2)=Matrix 1 (il,i2)+Matr i x2(il,i2)Next
15、 i2Nex t i 1End Fu n c tion(2)两矩阵相减F u n c ti o n Mmi n us(M A s I nteg e r,n A s In t ege r,Mat r ixMin u s()AsDouble,Matr i xl()A s D o ubl e,Mat r ix 2()A s Dou ble)矩阵求差函数D i m i 1 A s I n teger,i 2 A s I nte g e rReD i m Ma t rixMinus(l T o M,1 T o n)Fo r il=1 ToMFor i2=1 To nMatrixMinu s(il,i2)
16、=Matrix 1 (il,i2)-M a t rix2(i 1 ,i2)N ext i2Ne x t ilEn d F u nc t i o n(3)矩阵转置F u n c t i o n Mchan g e(M A s Inte g er,n As Integer,M a t r ixc h a n ge()As D oub 1e,Mat r ixl()A s D o ub 1 e)矩阵转置函数Matrixl()需转置的矩阵,M a trixc h a n g e()为转置后的矩阵D i m i 1 As In t e ger,i2 A sintege rReD im Matr i xch
17、 a nge(1 To n,1 To M)动态分派用来存储转置后的矩阵For il=1 To MFor i2=1 To nM a tri x cha n ge(i 2,il)=M a t r ixl(i 1,i 2)Next i 2Next i 1End Fu n ctio n(4)两矩阵相乘矩阵相乘函数,M a tri x Multi P ly()为存储A B 后的矩阵,M a tri x 1()为 A 矩阵,Ma tr i x2()为 B 矩阵,注意矩阵相乘的顺序 M i为行,N i为列,i=1,2F u n c t ion Mm u Itip 1 y(M 1 As I n teger,n
18、l A sin t eger,M2 A s Int e g e r,n 2 As I n t e ger,Ma t r i xMultiply()As D o uble,Ma t r i x l()As Do u ble,M a tri x 2()A s Double)Dim i 1 As I nt e ger,i2 As I n teger,i 3 As Int e g erI f n l M2 ThenMsg B ox”两矩阵不能相乘,请检查!,v b OKC a nc e 1 +vbC ritical+v b D e f a u ItBu t to n 1E x it F u n c t
19、io nE n d IfR e D i m Matrix M u lt iply(1 To M1,1 To n2)For il1 To MlFor i21 T o n 2MatrixMul t i ply(i l,i2)=0F o r i3=1 To nlMatrixM u Itipl y(i l,i2)=MatrixMultiply(i 1 ,i2)+Matrix l(il,i 3)*Ma t rix 2(i 3,i2)Next i3Nexti2Ne x t ilEnd F unc t i on(5)矩阵求逆F u n ct i o n MRinv(n As Integer,m t x A(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 程序设计 实验 报告
限制150内