【复试编程】——测绘程序设计学习

测绘程序设计学习

学习测绘程序设计这本书时候,发现有部分程序格式存在理解欠缺——C#格式化输出字符串(没有完全理解)
Console.WriteLine("r={0:E};theta={1:F}",r,theta);

Console.Writeline( "格式化表示",参数序列 ) ;
格式化表示的一般形式:
{N[, M] [: 格式码]}
N:指定参数序列中的输出序号;
M:指定参数输出的最小长度,如果参数长度小于M,就用空格填充;如果大于等于M,则按实际长度输出;如果M为负,则左对齐;如果M为正,则右对齐
r={0:E}表示输出参数序列为0的值,

常用的格式化字符串

格式化字符串 含义
D 输出十进制整数。D后的数字i傲视输出的位数,不够指定的位数补0
F 表示小数点后固定的位数。F后面不指定位数时,默认为两位
N 整数部分每3位用逗号分隔,N表示小数点后固定的位数。
X 按十六进制格式输出。X后的数字表示输出位数,不够指定的位数时,前面补0

out 参数修饰符

通过编写参心大地坐标系到参心空间直角坐标系的转换时,涉及一个函数返回多个不同类型的参数,out在此处的用法。
out关键字通过引用传递参数。out通过让形式参数称为实际参数的别名,其实对形参执行的任何操作都是对实际参数执行的。若要使用 out 参数,方法定义和调用方法均必须显式使用 out 关键字。

实现残心大地坐标系转化为参心空间直角坐标系的程序

        static void Main()
        {
            //实现参心大地坐标系转换为参心空间直角坐标系的转化(BLH->XYZ)
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            double X, Y, Z;
            double B = 30,L = 114, H = 15;
            BLH2XYZ(B, L, H, out X, out Y, out Z);
            Console.WriteLine("X={0,12:F5},Y={1,12:F5},Z={2,12:F5}", X, Y, Z);
        }
        private static double GetE2()
        {
            double a = 6378137;
            double f = 1 / 298 / 257222101;
            double e2 = 2 * f - Math.Pow(f, 2);
            return e2;
        }
        private static double GetN(double B)
        {
            double e2 = GetE2();
            double a = 6378137;
            double sinB = Math.Sin(B);
            double N = a / Math.Sqrt(1 - e2 * Math.Pow(sinB, 2));
            return N;
        }
        private static void BLH2XYZ(double B,double L,double H,out double X,out double Y,out double Z)
        {
            B = B * Math.PI / 180;
            L = L * Math.PI / 180;
            double N = GetN(B);
            double E2 = GetE2();
            X = (N + H) * Math.Cos(B) * Math.Cos(L);
            Y = (N + H) * Math.Cos(B) * Math.Sin(L);
            Z = (N *(1-E2)+H) * Math.Sin(B);
        }

C#中截取字符串的substring的使用方法

string arr.Substring(int startIndex,int Length);
//表示的是:传入的两个参数是两个长整参数,第一个是字符串的起始位置,也就是我们要开始截取字符串的位置,第二个是从起始位置开始,要截取的长度。
string arr.Substring(int startIndex);
//表示的是:传入的参数是字符串需要截取的起始位置,一直到字符串的尾部,所形成的串。
//实例代码揭示:
string sub = "";
string original = "watermelon";
sub = original.Substring(2,3);//ter
//表示从第二个字符作为起始位置,截取长度为3的字符串。

你可能感兴趣的:(复试编程,学习,c#,开发语言)