一、代码界面展示
整个界面主要就是就整个界面而言,其实主要使用到的控件就是Menu,tabControl,dataGridView,richtextbox。
二、代码运算结果展示
1.导入数据
这里就是把txt的数据导入到程序里,数据的来源是去峨眉山实习,测了几圈峨秀湖获得的(往返3次,一共6圈,人都麻了)。txt文件的里面的数据要和表格里面的位置对应。
手动输入数据那个比较鸡肋,就是输进去了再保存成txt,再导入,图一乐,不如直接在txt中输入。
2.参数设置
我这里直接就内置了我们实习测量时候的测站设置。限差这些可以自己修改,没啥难度(就是几个if语句)
3.计算数据
参数设置之后计算数据
数据如果超限,会依次弹窗出来提示,因为实验的数据已经是经过修改的,所以没有弹窗提醒。
源代码中有相关的代码
4.生成外业观测手簿
这里我就没有用表格了,因为我用datagridview也设计不来,能力有限,有兴趣你自己可以试一试。就按照手簿的样子,在richtextbox上面输出出来。大致位置是一样的,格式看着有一点点奇怪,但是绝对够看了。
5.生成高程配赋表
这里也是用的richtextbox,一圈6km,测6次,麻了。
6.重置
这没什么好说的了,就是把数据,界面重置了。
7.保存
把计算出的外业观测手簿和高程配赋表导出成txt。
三、源代码
变量设置
namespace work
{
class Shuju
{
public double sumh = 0, suml = 0;
public string qhsjc;//前后视距差
public string sjljc;//视距累积差
public string hhmdsc;//红黑面读数差
public string hhmgczc;//红黑面高差之差
public string [] dh;//点号
public string [] czs;//测站数
public string qd;//起始点高程
public string zd;//重点高程
public string czbh;//测站编号
public double hcs;//后视上丝
public double qcs; //前视上丝
public double hcx;//后视下丝
public double qcx;//前视下丝
public double hchmzs1;//后尺黑面中丝
public double hchmzs2;//后尺红面中丝
public double qchmzs1;//前尺黑面中丝
public double qchmzs2;//前尺红面中丝
public double fh;//闭合差
public double zjl;//总距离
public double hj;//后距
public double qj;//前距
//public double qjjhjp;
public double sjc;//视距差
public double sjch;//视距差和
public double hjq1;//后尺黑面中丝-前尺黑面中丝
public double hjq2;//后尺红面中丝-前尺红面中丝
public double hjq11;//后尺黑面中丝-前尺黑面中丝
public double hjq12;//后尺红面中丝-前尺红面中丝
public double kjhjh1;//K+黑减红 后尺
public double kjhjh2;//K+黑减红 前尺
public double kjhjh3;//1与2之差
public double gczs;//高程中数
public double gc;//高程
public double dhgc;//点号高程
public double jl;//距离
public double pjgc;//平均高程
public double gzs;//改正数
public double gzhgc;//改正后高程
public bool bd=false;//判断
}
}
Form1
namespace work
{
public partial class Form1 : Form
{
List<Shuju> sj = new List<Shuju>();
Shuju shuju = new Shuju();
Form2 form2 = new Form2();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void 文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void 导入原始数据ToolStripMenuItem_Click(object sender, EventArgs e)
{
string[] temp;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
ofd.Title = "打开数据文件";
if (ofd.ShowDialog(this) == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.FileName);
while (!sr.EndOfStream)
{
temp = sr.ReadLine().Split(new[] { ' ', ',', '.', ':' , ' ' },StringSplitOptions.RemoveEmptyEntries);
Shuju shuju = new Shuju();
shuju.czbh = temp[0];
shuju.hcs = Convert.ToDouble(temp[1]);
shuju.qcs = Convert.ToDouble(temp[2]);
shuju.hcx = Convert.ToDouble(temp[3]);
shuju.qcx = Convert.ToDouble(temp[4]);
shuju.hchmzs1 = Convert.ToDouble(temp[5]);
shuju.hchmzs2 = Convert.ToDouble(temp[6]);
shuju.qchmzs1 = Convert.ToDouble(temp[7]);
shuju.qchmzs2 = Convert.ToDouble(temp[8]);
sj.Add(shuju);
}
sr.Close();
GridBuild1();
}
else
{
MessageBox.Show("输入失败");
}
}//获取数据
public void GridBuild1()
{
for (int i = 0; i < sj.Count; i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells[0].Value = sj[i].czbh;
dataGridView1.Rows[i].Cells[1].Value = sj[i].hcs;
dataGridView1.Rows[i].Cells[2].Value = sj[i].qcs;
dataGridView1.Rows[i].Cells[3].Value = sj[i].hcx;
dataGridView1.Rows[i].Cells[4].Value = sj[i].qcx;
dataGridView1.Rows[i].Cells[5].Value = sj[i].hchmzs1;
dataGridView1.Rows[i].Cells[6].Value = sj[i].hchmzs2;
dataGridView1.Rows[i].Cells[7].Value = sj[i].qchmzs1;
dataGridView1.Rows[i].Cells[8].Value = sj[i].qchmzs2;
}
}
private void 参数设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
shuju.bd = true;
CSSZ();
}
public void CSSZ()
{
Form2 form2 = new Form2();
form2.ShowDialog();
shuju.qd = form2.textBox4.Text;
shuju.zd = form2.textBox5.Text;
string a = form2.textBox1.Text;
shuju.dh = a.Split(new Char[] { ' ', ',', '.', ':' });
string b = form2.textBox3.Text;
shuju.czs = b.Split(new Char[] { ' ', ',', '.', ':' });
shuju.qhsjc = form2.textBox6.Text;
shuju.sjljc = form2.textBox7.Text;
shuju.hhmdsc = form2.textBox8.Text;
shuju.hhmgczc = form2.textBox9.Text;
}//参数设置
private void 计算ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
if (shuju.bd==false)
{
MessageBox.Show("请输入参数");
}
else
{
Gcsb();
Gcpfb();
}
}
public void Gcsb()
{
//计算前后距
for (int j = 0; j < sj.Count; j++)
{
sj[j].hj = (sj[j].hcs - sj[j].hcx) / 10;//计算后距
sj[j].qj = (sj[j].qcs - sj[j].qcx) / 10;//计算前距
//sj[j].qjjhjp = sj[j].hj + sj[j].hj;
sj[j].sjc = sj[j].hj - sj[j].qj;//计算视距差
if (sj[j].sjc >Convert.ToInt32(shuju.qhsjc))
{
MessageBox.Show("前后视距差超限");
break;
}
//计算视距差和
if (j == 0)
{
sj[j].sjch = sj[j].sjc;
}
else
{
sj[j].sjch = sj[j - 1].sjch + sj[j].sjc;
if (sj[j].sjch > Convert.ToInt32(shuju.sjljc))
{
MessageBox.Show("前后视距差累积和超限");
break;
}
}
}
//计算高差
//计算K+黑减红
for (int i = 0; i < sj.Count; i++)
{
double k1 = 4687;
double k2 = 4787;
if (Math.Abs(sj[0].hchmzs1 + k1 - sj[0].hchmzs2) < Math.Abs(sj[0].hchmzs1 + k2 - sj[0].hchmzs2))
{
if (i % 2 == 0)
{
sj[i].kjhjh1 = sj[i].hchmzs1 + k1 - sj[i].hchmzs2;
sj[i].kjhjh2 = sj[i].qchmzs1 + k2 - sj[i].qchmzs2;
}
else if (i % 2 == 1)
{
sj[i].kjhjh1 = sj[i].hchmzs1 + k2 - sj[i].hchmzs2;
sj[i].kjhjh2 = sj[i].qchmzs1 + k1 - sj[i].qchmzs2;
}
}
else
{
if (i % 2 == 0)
{
sj[i].kjhjh1 = sj[i].hchmzs1 + k2 - sj[i].hchmzs2;
sj[i].kjhjh2 = sj[i].qchmzs1 + k1 - sj[i].qchmzs2;
}
else if (i % 2 == 1)
{
sj[i].kjhjh1 = sj[i].hchmzs1 + k1 - sj[i].hchmzs2;
sj[i].kjhjh2 = sj[i].qchmzs1 + k2 - sj[i].qchmzs2;
}
}
if (Math.Abs( sj[i].kjhjh1)>3|| Math.Abs(sj[i].kjhjh2) >3)
{
MessageBox.Show("第" + sj[i].czbh + "号测站红黑面读数差超限");
}
sj[i].hjq11 = (sj[i].hchmzs1 - sj[i].qchmzs1);
sj[i].hjq12 = (sj[i].hchmzs2 - sj[i].qchmzs2);
sj[i].hjq1 = (sj[i].hchmzs1 - sj[i].qchmzs1) / 1000;
sj[i].hjq2 = (sj[i].hchmzs2 - sj[i].qchmzs2) / 1000;
//计算高差中数
sj[i].kjhjh3 = sj[i].kjhjh1 - sj[i].kjhjh2;
if (sj[i].kjhjh3 > Convert .ToInt32(shuju.hhmgczc) || sj[i].kjhjh3 < -(Convert.ToInt32(shuju.hhmgczc)))
{
MessageBox.Show("第" + sj[i].czbh + "号测站红黑面读数差之差超限");
}
if (sj[i].hjq1 > sj[i].hjq2)
{
sj[i].gczs = (sj[i].hjq1 + sj[i].hjq2 + 0.1) / 2;
}
else if (sj[i].hjq1 < sj[i].hjq2)
{
sj[i].gczs = (sj[i].hjq1 + sj[i].hjq2 - 0.1) / 2;
}
else
{
sj[i].gczs = (sj[i].hjq1 + sj[i].hjq2) / 2;
}
shuju.sumh += sj[i].gczs;
}
//计算高
for (int i = 0; i < sj.Count; i++)
{
if (i == 0)
{
sj[i].gc = Convert.ToDouble(shuju.qd) + sj[i].gczs;
}
else
{
sj[i].gc = sj[i - 1].gc + sj[i].gczs;
}
}
GridBuild2();
}//外业观测手簿
public void Gcpfb()//高程误差配赋表
{
//计算两点距离
//计算平均高差
if (sj.Count == 0)
{
MessageBox.Show("请输入数据");
}
else
{
int b = 0;
int c = 0;
for (int a = 0; a < shuju.czs.Length; a++)
{
if (a == 0)
{
b = Convert.ToInt32(shuju.czs[a]);
for (int i = c; i < b; i++)
{
sj[a].jl += sj[i].hj + sj[i].qj;
sj[a].pjgc += sj[i].gczs;
sj[a].gzs = -(sj[i].jl / shuju.zjl) * shuju.fh;
sj[a].gzhgc = sj[i].pjgc + sj[i].gzs;
}
}
else
{
b += Convert.ToInt32(shuju.czs[a]);
c += Convert.ToInt32(shuju.czs[a - 1]);
for (int i = c; i < b; i++)
{
sj[a].jl += sj[i].hj + sj[i].qj;
sj[a].pjgc += sj[i].gczs;
sj[a].gzs = -(sj[i].jl / shuju.zjl) * shuju.fh;
sj[a].gzhgc = sj[i].pjgc + sj[i].gzs;
}
}
shuju.zjl += sj[a].jl;//计算总距离
}
//计算高差闭合差
shuju.fh = shuju.sumh + Convert.ToDouble(shuju.qd) - Convert.ToDouble(shuju.zd);
if (Math.Abs(shuju.fh) > 20 * Math.Pow(shuju.zjl / 1000, 0.5))
{
MessageBox.Show("高差闭合差超限");
}
//计算高差改正数
//计算改正后高差
for (int i = 0; i < shuju.czs.Length; i++)
{
sj[i].gzs = -(sj[i].jl / shuju.zjl) * shuju.fh;
sj[i].gzhgc = sj[i].pjgc + sj[i].gzs;
}
//高程
for (int i = 0; i < sj.Count; i++)
{
if (i == 0)
{
sj[i].dhgc = Convert.ToDouble(shuju.qd) + sj[i].gzhgc;
}
else
{
sj[i].dhgc = sj[i - 1].dhgc + sj[i].gzhgc;
}
}
}
}
public void GridBuild2()
{
for (int i = 0; i < sj.Count; i++)
{
dataGridView2.Rows.Add();
dataGridView2.Rows[i].Cells[0].Value = sj[i].czbh;
dataGridView2.Rows[i].Cells[1].Value = Math.Round(sj[i].hj, 4);
dataGridView2.Rows[i].Cells[2].Value = Math.Round(sj[i].qj, 4);
dataGridView2.Rows[i].Cells[3].Value = Math.Round(sj[i].sjc, 4);
dataGridView2.Rows[i].Cells[4].Value = Math.Round(sj[i].sjch, 4);
dataGridView2.Rows[i].Cells[5].Value = Math.Round(sj[i].gczs, 4);
dataGridView2.Rows[i].Cells[6].Value = Math.Round(sj[i].gc, 4);
}
}
private void chart1_Click(object sender, EventArgs e)
{
}
private void 生成外业观测手簿ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void 生成平差高程误差配赋表ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void 导出外业观测手簿ToolStripMenuItem_Click(object sender, EventArgs e)
{
int i ;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if (dlg.ShowDialog() == DialogResult.OK)
{
string path = dlg.FileName;
StreamWriter sw = new StreamWriter(path);
sw.WriteLine(" 四等水准测量观测手簿");
sw.WriteLine("测站 后下丝 前下丝 方 向 标 尺 读 数 K + 黑");
sw.WriteLine("编号 尺上丝 尺上丝 及 减 高差");
sw.WriteLine(" 后距 前距 尺 号 黑 红 红 中数");
sw.WriteLine(" 视距差d Σd 面 面");
sw.WriteLine("");
for (i = 0; i < sj.Count; i++)
{
sw.WriteLine( sj[i].czbh + " " + sj[i].hcs + " " + sj[i].qcs + " 后 " + sj[i].hchmzs1 + " " + sj[i].hchmzs2 + " " + sj[i].kjhjh1);
sw.WriteLine(" " + sj[i].hcx + " " + sj[i].qcx + " 前 " + sj[i].qchmzs1 + " " + sj[i].qchmzs2 + " " + sj[i].kjhjh2 + " " + sj[i].gczs);
sw.WriteLine(" " + sj[i].qj + " " + sj[i].hj + " 后-前 " + sj[i].hjq11 + " " + sj[i].hjq12 + " " + sj[i].kjhjh3);
sw.WriteLine(" " + Math.Round(sj[i].sjc, 4) + " " + Math.Round(sj[i].sjch, 4));
}
MessageBox.Show("保存路径:" + dlg.FileName);
sw.Close();
}
else
{
MessageBox.Show("保存失败!");
}
}
private void 导出ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
int i ;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if (dlg.ShowDialog() == DialogResult.OK)
{
string path = dlg.FileName;
StreamWriter sw = new StreamWriter(path);
sw.WriteLine( " 高程误差配赋表\r\n");
sw.WriteLine( "点号 距离(m) 平均高差(m) 改正数(m) 改正后高差(m) 点之高程(m) 备注" + "\r\n");
for (i = 0; i < shuju.dh.Length; i++)
{
if (i == 0)
{
sw.WriteLine(shuju.dh[i] + " " + shuju.qd + "\r\n");
sw.WriteLine(" " + Math.Round(sj[i].jl, 1) + " " + Math.Round(sj[i].pjgc,3) + " " +
Math.Round(sj[i].gzs, 4) + " " + Math.Round(sj[i].gzhgc, 3) + " " + "\r\n");
}
else if (i == shuju.dh.Length-1)
{
sw.WriteLine(shuju.dh[i] + " " + Math.Round(sj[i - 1].dhgc, 3) + "\r\n");
}
else
{
sw.WriteLine(shuju.dh[i] + " " + Math.Round(sj[i - 1].dhgc, 3) + "\r\n");
sw.WriteLine(" " + Math.Round(sj[i].jl, 1) + " " + Math.Round(sj[i].pjgc, 3) + " " +
Math.Round(sj[i].gzs, 4) + " " + Math.Round(sj[i].gzhgc, 3) + " " + "\r\n");
}
}
sw.WriteLine("总距离(m): " + shuju.zjl + "\r\n");
sw.WriteLine("闭合差(mm): " + Math.Round(shuju.fh, 3) * 1000 + "\r\n");
sw.WriteLine("每公里改正数(mm): " + Math.Round(Math.Round(shuju.fh, 3) * 1000 / shuju.zjl * 1000, 0) + "\r\n");
sw.WriteLine("路线闭合差(mm): " + Math.Round(20 * Math.Pow(shuju.zjl / 1000, 0.5), 0));
MessageBox.Show("保存路径:" + dlg.FileName);
sw.Close();
}
else
{
MessageBox.Show("保存失败!");
}
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void richTextBox2_TextChanged(object sender, EventArgs e)
{
}
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void 重置ToolStripMenuItem_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
dataGridView2.Rows.Clear();
richTextBox2.Text = "";
richTextBox1.Text = "";
shuju.fh = 0;
shuju.sumh = 0;
shuju.zjl = 0;
sj.Clear();
}
private void 保存数据ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void 外业观测手簿ToolStripMenuItem_Click(object sender, EventArgs e)
{
int i;
richTextBox1.AppendText(Environment.NewLine);
richTextBox1.Text = " 四等水准测量观测手簿\n";
richTextBox1.Text += "测站 后上丝 前上丝 方 向 标 尺 读 数 K + 黑\n";
richTextBox1.Text += "编号 尺下丝 尺下丝 及 减 高差\n";
richTextBox1.Text += " 后距 前距 尺 号 黑 红 红 中数\n";
richTextBox1.Text += " 视距差d Σd 面 面\n";
richTextBox1.Text += "";
for (i = 0; i < sj.Count; i++)
{
richTextBox1.Text += " " + sj[i].czbh + " " + sj[i].hcs + " " + sj[i].qcs + " 后 " + sj[i].hchmzs1 + " " + sj[i].hchmzs2 + " " + sj[i].kjhjh1 + "\r\n";
richTextBox1.Text += " " + sj[i].hcx + " " + sj[i].qcx + " 前 " + sj[i].qchmzs1 + " " + sj[i].qchmzs2 + " " + sj[i].kjhjh2 + " " + sj[i].gczs + "\r\n";
richTextBox1.Text += " " + sj[i].hj + " " + sj[i].qj + " 后-前 " + sj[i].hjq11 + " " + sj[i].hjq12 + " " + sj[i].kjhjh3 + "\r\n";
richTextBox1.Text += " " + Math.Round(sj[i].sjc, 4) + " " + Math.Round(sj[i].sjch, 4) + " " + "\r\n";
}
}
private void 高程误差配赋表ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox2.AppendText(Environment.NewLine);
richTextBox2.Text += " 高程误差配赋表\r\n";
richTextBox2.Text += "点号 距离(m) 平均高差(m) 改正数(m) 改正后高差(m) 点之高程(m) 备注" + "\r\n";
for (int i = 0; i < shuju.dh.Length; i++)
{
if (i == 0)
{
richTextBox2.Text += shuju.dh[i] + " " + shuju.qd + "\r\n";
richTextBox2.Text += " " + Math.Round(sj[i].jl, 1) + " " + Math.Round(sj[i].pjgc, 3) + " " +
Math.Round(sj[i].gzs, 4) + " " + Math.Round(sj[i].gzhgc, 3) + " " + "\r\n";
}
else if (i == shuju.dh.Length - 1)
{
richTextBox2.Text += shuju.dh[i] + " " + Math.Round(sj[i - 1].dhgc, 3) + "\r\n";
}
else
{
richTextBox2.Text += shuju.dh[i] + " " + Math.Round(sj[i - 1].dhgc, 3) + "\r\n";
richTextBox2.Text += " " + Math.Round(sj[i].jl, 1) + " " + Math.Round(sj[i].pjgc, 3) + " " +
Math.Round(sj[i].gzs, 4) + " " + Math.Round(sj[i].gzhgc, 3) + " " + "\r\n";
}
}
richTextBox2.Text += "总距离(m): " + shuju.zjl + "\r\n";
richTextBox2.Text += "闭合差(mm): " + Math.Round(shuju.fh, 3) * 1000 + "\r\n";
richTextBox2.Text += "每公里改正数(mm): " + Math.Round(Math.Round(shuju.fh, 3) * 1000 / shuju.zjl * 1000, 0) + "\r\n";
richTextBox2.Text += "路线闭合差(mm): " + Math.Round(20 * Math.Pow(shuju.zjl / 1000, 0.5), 0);
}
private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
}
}
}
Form2就是参数设置的窗体,其实没什么东西,就是预置我实习时候的设置,方便计算的。
namespace work
{
public partial class Form2 : Form
{
List<Shuju> sj = new List<Shuju>();
Shuju shuju = new Shuju();
public Form2()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
public void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text ==""||textBox2.Text == ""||
textBox3.Text == "" || textBox4.Text == ""||
textBox6.Text == ""||textBox7.Text == "" ||
textBox8.Text == "" || textBox9.Text == "")
{
MessageBox.Show("未完整输入数据");
}
else
{
Close();
}
}
private void label5_Click(object sender, EventArgs e)
{
}
private void textBox2_TextChanged_1(object sender, EventArgs e)
{
}
private void label6_Click(object sender, EventArgs e)
{
}
private void label8_Click(object sender, EventArgs e)
{
}
private void TextBox8_TextChanged(object sender, EventArgs e)
{
}
private void label11_Click(object sender, EventArgs e)
{
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text == "四等")
{
textBox6.Text = "3";
textBox7.Text = "10";
textBox8.Text = "3";
textBox9.Text = "5";
}
else
{
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
textBox9.Text = "";
MessageBox.Show("请手动输入");
}
}
private void textBox7_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void label12_Click(object sender, EventArgs e)
{
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox2.Text == "第一圈")
{
textBox1.Text = "a,b,c,d,e,f,g,a";
textBox2.Text = "81";
textBox3.Text = "10,8,13,13,13,10,14";
textBox4.Text = "0";
textBox5.Text = "0";
comboBox1.Text = "四等";
}
else if (comboBox2.Text == "第二圈")
{
textBox1.Text = "a,g,f,e,d,c,b,a";
textBox2.Text = "84";
textBox3.Text = "12,10,14,12,14,10,12";
textBox4.Text = "0";
textBox5.Text = "0";
comboBox1.Text = "四等";
}
else if (comboBox2.Text == "第三圈")
{
textBox1.Text = "a,b,c,d,e,f,g,a";
textBox2.Text = "84";
textBox3.Text = "12,10,14,12,14,10,12";
textBox4.Text = "0";
textBox5.Text = "0";
comboBox1.Text = "四等";
}
}
}
}
四、结语
这个程序是我第一次实习的时候编写的,有助于你用C#写测绘工程实习程序,特别的需要批量处理的。谢谢您的阅读。
如果你有基础,看源码就可以了。如果你才学C#窗体,我觉得你下载这一个程序或者闭合导线那个基本上可以满足测绘程序编写的要求了,不用每个问题都去搜索,这两个程序基本都包括了。
我的其他文章:
- 利用Python编写一个高斯正反算程序:https://blog.csdn.net/Zj1638/article/details/125740379
- 利用C#编写一个高斯正反算程序:https://blog.csdn.net/Zj1638/article/details/125380593
- 利用C#编写一个附和闭合导线简易平差程序:https://blog.csdn.net/Zj1638/article/details/125639541
- 利用C#编写一个GPS高程拟合(二次曲面拟合模型)程序:https://blog.csdn.net/Zj1638/article/details/125752243
相关下载链接:
- 利用C#编写一个水准测量近似平差程序下载链接:https://download.csdn.net/download/Zj1638/16732130
- 利用C#编写一个附和闭合导线简易平差程序下载链接:https://download.csdn.net/download/Zj1638/85928040
- 利用C#编写一个高斯正反算程序下载链接:https://download.csdn.net/download/Zj1638/85711234
- 利用Python编写一个高斯正反算程序下载链接:https://download.csdn.net/download/Zj1638/86059069
- 利用C#编写一个GPS高程拟合(二次曲面拟合模型)程序下载链接:https://download.csdn.net/download/Zj1638/85916113
需要的可以支持一下。如果有什么不懂的,可以私信,我看到了会回答的。
、