C#二等精密水准实习平差程序武大测绘二等水准实习


之前大二做二等精密水准测量实习的时候写的一个程序,完全按照任务书的要求来做的,实现的是xlsx电子手簿数据直接读入,输出txt的各点平差结果文件,它能自动识别点号,不过建议使用前先修改源代码里面的点号识别类
资源截图
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Data.OleDb;

namespace 水准网平差程序
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender EventArgs e)
        {
            //读取表格文件
            dataGridView1.DataSource = null; //每次打开清空内容
            DataTable dt = ReadFile.getData().Tables[0];
            dataGridView1.DataSource = dt;    
        }
        private void button2_Click(object sender EventArgs e)
        {
            
            int n = dataGridView1.RowCount - 1;
            label3.Text = n.ToString();
            if (n <= 2)
            {
                MessageBox.Show(“观测数据不足!“ “请重新添加数据“);
                return;
            }
            int t = 12;
            label8.Text = t.ToString();
            string[] start = new string[n];string[] end = new string[n];
            int[] num_start = new int[n]; int[] num_end = new int[n];
            double[] H = new double[n];double[] S = new double[n];
            double[] X0 = new double[t1];
            
            //将表格的数据转化成数组
            for(int i=0;i            {
                start[i] = (string)dataGridView1[1 i].Value;
                end[i] = (string)dataGridView1[2 i].Value;
                H[i] = (double)dataGridView1[3 i].Value;
                S[i] = (double)dataGridView1[4 i].Value;
                num_start[i] = 点号识别(start[i]); num_end[i] = 点号识别(end[i]);
            }
            //计算各点高程近似值X0
            #region
            double h0 = 24.802;
            X0[00] = H[Array.IndexOf(num_start 0)]+h0;
            for(int i=0;i            {
                if(num_end[i]>1&&num_start[i]>0)
                if(X0[num_end[i]-10]==0)//a
                {
                    X0[num_end[i]-1 0] = X0[num_start[i]-1 0] + H[i];
                }
            }
            #endregion
            //计算误差方程系数阵B
            double[] B = new double[n t];
            for(int i=0;i            {
                for(int j=0;j                {
                    if (num_start[i]!=0&&j == num_start[i] - 1)
                    {
                        B[i j] = -1;
                    }
                    else if (num_end[i] != 0 && j == num_end[i] - 1)
                    {
                        B[i j] = 1;
                    }
                    else
                        B[i j] = 0;
                }
            }
            //构建权阵P
            double[] P = new double[n n];
            for(int i=0;i                for(int j=0;j                {
                    if (i == j) P[i i] = 1000 / S[i];//取1km的观测高差为单位权

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-05 23:22  水准网平差程序
     目录           0  2018-07-12 02:00  水准网平差程序.vs
     目录           0  2018-07-12 02:00  水准网平差程序.vs水准网平差程序
     目录           0  2018-07-12 02:00  水准网平差程序.vs水准网平差程序DesignTimeBuild
     文件         176  2018-07-08 23:25  水准网平差程序.vs水准网平差程序DesignTimeBuild.dtbcache
     目录           0  2018-07-12 02:00  水准网平差程序.vs水准网平差程序v15
     文件       50688  2018-07-12 01:19  水准网平差程序.vs水准网平差程序v15.suo
     目录           0  2018-07-12 02:00  水准网平差程序.vs水准网平差程序v15Server
     目录           0  2018-07-12 02:00  水准网平差程序.vs水准网平差程序v15Serversqlite3
     文件           0  2018-07-08 17:58  水准网平差程序.vs水准网平差程序v15Serversqlite3db.lock
     文件      585728  2018-07-12 01:04  水准网平差程序.vs水准网平差程序v15Serversqlite3storage.ide
     文件       32768  2018-07-12 00:59  水准网平差程序.vs水准网平差程序v15Serversqlite3storage.ide-shm
     文件     4128272  2018-07-12 01:19  水准网平差程序.vs水准网平差程序v15Serversqlite3storage.ide-wal
     文件    26646944  2018-07-08 17:40  水准网平差程序AccessDatabaseEngine.exe
     文件         433  2018-07-12 02:13  水准网平差程序平差结果数据.txt
     目录           0  2018-08-05 23:22  水准网平差程序水准网平差程序
     文件        1032  2018-07-08 11:37  水准网平差程序水准网平差程序.sln
     文件       39424  2018-07-12 04:25  水准网平差程序水准网平差程序.v12.suo
     文件         187  2018-07-08 11:37  水准网平差程序水准网平差程序App.config
     目录           0  2018-07-12 02:00  水准网平差程序水准网平差程序in
     目录           0  2018-08-05 23:22  水准网平差程序水准网平差程序inDebug
     文件       19968  2018-07-12 02:11  水准网平差程序水准网平差程序inDebug水准网平差程序.exe
     文件         187  2018-07-08 11:37  水准网平差程序水准网平差程序inDebug水准网平差程序.exe.config
     文件       54784  2018-07-12 02:11  水准网平差程序水准网平差程序inDebug水准网平差程序.pdb
     文件       24224  2018-07-12 04:23  水准网平差程序水准网平差程序inDebug水准网平差程序.vshost.exe
     文件         187  2018-07-08 11:37  水准网平差程序水准网平差程序inDebug水准网平差程序.vshost.exe.config
     文件         490  2018-04-12 07:35  水准网平差程序水准网平差程序inDebug水准网平差程序.vshost.exe.manifest
     文件        9100  2018-07-12 02:11  水准网平差程序水准网平差程序Form1.cs
     文件       13217  2018-07-12 01:06  水准网平差程序水准网平差程序Form1.Designer.cs
     文件        6553  2018-07-12 01:06  水准网平差程序水准网平差程序Form1.resx
     文件        8582  2018-07-09 11:24  水准网平差程序水准网平差程序Matrixs.cs
............此处省略29个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)