1。1测绘程序设计的意义
①计算机在现代测绘科学中的广泛应用带来极大便利
方便、快速、准确,可重复性
②测绘软件不通用
测绘相关软件丰富数据计算、制图、遥感影像处理、数字摄影测量、地理信息系统(GIS)、 GPS平差计算等软件。
实际工作遇到的问题千差万别,特定应用需要掌握一门编程语言,设计相应的程序解决实际问题。
③编写相关专业程序,深化测量知识的过程
2.1类型
C#数据类型分为值类型与引用类型;
CTS( Common Type System )公共类型系统
②值类型与引用类型
从概念上看,值类型直接存储其值,而引用类型存储对值的引用;从在内存中的存储位置上看,值类型变量把数据存储在中,引用类型变量把数据存储在中。
③预定义类型
值类型13个:Short Int类型; Float double类型;char类型  等等
引用类型2个:object类型;string类型
通过加前缀@,使编译器严格按照原样对其编译。
string  s=@hello\nworld";结果输出hello\nworld 
2.2变量与常量
变量与内存
每次声明变量时,计算机都会给它分配一块足够大的内存空间,来保存该类型的变量.
相同类型的不同变量总是占据相同大小的内存。
但不同类型的变量需要分配的内存空间就不一样了。这就需要划分类型.
使用变量
使用变量就是声明他们.即给变量指定名称和类型。修饰符—数据类型—标识符 public int I;
标识符
变量名首字符必须是字母、下划线(“_”) “@”;
其后字符必须是字母、下划线或数字;
切忌使用C#关键字。如果需要使用,须在标识符前边加上“@"(@abstract).
命名变量的一些约定:
给变量分配有意义的名称;
命名类和方法时使用PascalCase样式,命名变量使用camelCase样式;
不要通过大小写的不同来区分变量。
初始化变量
注意初始值要与声明的类型相一致  decimal  bankBalance=34。50;      //错误
可以通过附加后缀来指定数值类型  decimal  bankBalance=34.50M;    //正确
可以使用的后缀:U无符号 L长整型 UL无符号长整型 F浮点型 D双精度型  M十进制
常量
声明常量时必须对其赋值const  float pi=3.14f
2.3类型转换
显式转换方式:
Convert。ToInt32、int。Parse、int.TryParse、(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢?
Convert。ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int。Parse:
Convert。ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
Convert.ToInt32 参数为 "” 时,抛出异常;
Int。Parse 参数为 "” 时,抛出异常。
Convert。ToInt32 可以转换的类型较多;
int.Parse 只能转换数字类型的字符串
3。1方位角算法
方位角计算
{
            Console.WriteLine("Please Enter X1:”);
            double X1 = Convert。ToDouble(Console.ReadLine());
            Console。WriteLine(”Please Enter Y1:”);
            double Y1 = Convert.ToDouble(Console。ReadLine());
            Console.WriteLine("Please Enter X2:”);
            double X2 = Convert。ToDouble(Console.ReadLine());
            Console。WriteLine(”Please Enter Y2:");
            double Y2 = Convert。ToDouble(Console。ReadLine());
            double detX = X2 - X1;
            double dexY = Y2 — Y1;
            double fwj;
            if (Math。Abs(detX) 〈 0.0000001)
            {
                if (dexY 〉 0)
                    fwj = 90;
                else
                    fwj = 270;
            }
            else
            {
                fwj = dexY / detX;
                fwj = Math。Atan(fwj);
                fwj = fwj * 180 / Math。PI;
                if (detX < 0)
                    fwj = fwj + 180;
                else if (dexY < 0)        //若detY>0,fwj没做处理,fwj=fwj
                    fwj = fwj + 360;
            }
            Console.WriteLine("fwj of two point is \n{0}”, fwj);
            Console.ReadKey();
        }
3.2字符串的处理
GetLength 获得指定维度的长度 IndexOf 返回指定值第一次出现的索引值
Lengh获取元素个数
<string>.Trim()可以使用这个命令删除其他字符,只要在一个char数组中指定这些字符即可;
〈string〉.PadLeft() 〈string〉。PadRight()他们可以在字符串左边或者右边添加空格,使字符串达到指定长度。
myString=“Aligned”; myString=myString.PadLeft(10);    //3个空格
4。1函数构成
C#中函数的参数有4种类型:
值参数,不含任何修饰符;引用型参数,以ref修饰符声明.
输出参数,以out修饰符声明;数组型参数,以params修饰符声明
Ref 关键字
class Program
writeline输出数值变量    {
        static void Main(string[] args)
        {
            int  a = 3;
            int  b = 5;
            change(ref  a ,  ref  b);
            Console。WriteLine(”a={0},  b={1}”, a, b);
        }
        static void change(ref  int  a1 ,  ref  int  b1)
        {
            int  t;  t = a1;  a1 = b1;  b1 = t;
        }
    }
Out关键字
static void Main(string[] args)
    {
            Console。WriteLine(" out 参数输出 ”);
            int a, b;
            UseOut(out a,out b);
            Console。WriteLine(”调用UseOut函数后返回主程序:a={0},  b={1}”,a,b);
            Console。ReadLine();
  }
private static void UseOut(out int x,out int y)
  {
            int temp;
            x = 20;
            y = 30;
          Console.WriteLine("\n 函数内交换前  x={0},  y={1}", x,y);
            temp = x; x = y;
            y = temp;
          Console.WriteLine("\n 函数内交换后  x={0},  y={1}”, x, y);
Param关键字
class Program
    {
        static int Max(params int[] Age)
        {
            int temp=0;
            for (int i = 0; i < Age。Length; i++)
            {
                if (temp 〈 Age[i])
                    temp = Age[i];
            }
            return temp;
        }
      static void Main(string[] args)
        {           
            int maxAge = Max(18, 23, 19, 22, 27);
            Console.WriteLine("the max of age is : {0}",maxAge);
        }
  }
4.2常用的测量函数设计
坐标正算
class Program

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。