程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生实验报告
院系:测绘学院
专业班级:测绘13级3班
学号:2013305517
学生姓名:王泽
指导教师:郭辉老师
2016年05月20日
安徽理工大学实验报告
实验课程名称:数据结构与软件开发上机实验
开课院系及实验室:测绘学院红楼二楼机房
实验1 编程基本知识练习
实验目的:
通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。
实验内容:
1)变量的定义动态数组的定义与应用;
2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现);
3)数据文件的建立、数据的读取与写入。
实验步骤:
1.编辑界面
1.1 打开VB 编程工具,进入编程主界面。
1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。
1.3 双击“窗体”进入代码输入界面,进行代码编辑。
2.用VB 编写的源代码
2.1 矩阵基本运算源码详见附录一。
(1)两矩阵相加
(2)两矩阵相减
(3)矩阵转置
(4)两矩阵相乘
(5)矩阵求逆
2.2 文本文件(本实验中data.txt)的读取源代码
(1)建立文本文件并输入数据
在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容:
6,7,4,0.005
A,35.418
B,45.712
C,25.270
D,24.678
在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据
Dim linedata as string, m_GaochaN as integer,m_Pnumber as
integer,m_knPnumber as integer,M as Double,k1 as integer
'linedata 为存储文本文件一行信息的字符串变量
Dim a() as String,H() as Double
'a()为存储点名,H()存储高程
Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1
Line Input #1, linedata
k = Split(linedata, ",")
m_GaochaN = Val(k(0))
m_Pnumber = Val(k(1))
m_knPnumber = Val(k(2))
M = CDbl(k(3))
For k1 = 1 To m_knPnumber
Line Input #1, linedata
k = Split(linedata, ",")
a(k1)= k(0)
GetstationNumber (a)
H(k1) = CDbl(k(1))
Next
Close #1
(3)将读入点名存储到点名数组中,且返回该点名所对应编号
Function GetstationNumber(name As String)
Dim i As Integer
For i = 1 To m_Pnumber
If P_Name(i) <> "" Then
'将待查点名与已经存入点名数组的点比较
If P_Name(i) = name Then
GetstationNumber = i
Exit For
End If
Else '待查点是新的点名,将新点名放到P_Name 数组中
P_Name(i) = name
GetstationNumber = i
Exit For
End If
Next i
End Function
(4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1
outstring = outstring + str(m_GaochaN) +","
outstring = outstring + str(m_Pnumber) + ","
outstring = outstring + str(m_knPnumber) + ","
outstring = outstring + str(M) + vbCrLf
For k1 = 1 To m_knPnumber
outstring = outstring +a(k1)+ ","+Format(H(k1), "##0.000") + vbCrLf
Next
Print #1, outstring
实验2 水准网平差程序设计
实验目的:
通过本次实验的练习,使学生掌握水准网平差中近似高程计算算法、组成误差方程系数阵B、组成误差方程常数项L及权阵生成算法。掌握法方程的组建参数改正值的计算以及单位权中误差的计算。掌握水准网平差中输出高程平差值和高程中误差、输出观测值及其改正数与平差值等信息并保存为平差成果文件的方法。
实验内容:
1)在读入水准网数据后,进行待定点近似坐标的计算;
2)基于间接平差的思想,以观测的测段高差为观测值,组成误差方程系数矩阵B 及常数项矩阵L;
3)基于水准网平差中定权的方法(测段长或测站数定权),生成权阵P。
4) 利用矩阵的基本运算(调用矩阵运算函数即可)得到法方程系数矩阵及常数项矩阵。该实验的内容其实质就是调用矩阵运算函数。
5)熟悉VB 中输出函数Print 的用法,及控制输出格式的函数的用法,如Space()、String()
6)水准网平差结束后,将变量及数组中的数据输出到平差结果文件中。
实验步骤:
1.读入水准网数据
(1)建立文本文件并输入数据
在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习1\data.txt”)。输入以下内容:
10,7,2,0.001
A,0.000
F,11.414
A,B,73.795,20.4
A,D,14.005,18.8
A,G,14.167,15.4
C,B,71.949,8.9
D,B,59.780,14.2
C,D,12.159,12.8
C,E,15.364,9.8
F,E,5.797,19.6
G,E,3.044,15.1
D,G,0.169,10.0
在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习1\ out.txt”)。Private Sub Command1_Click()