编辑代码

using System;

class 雷榜才圆曲线要素计算
{
    static void Main()
    {
        // 给定值
        double R = 15; // 半径,单位:米
        int A_degrees = 15, A_minutes = 36;
        double A_seconds = 56;

        // 验证角度的分和秒部分是否在合理范围内
        if (A_seconds >= 60 || A_minutes >= 60)
        {
            Console.WriteLine("角度错误");
            return;
        }

        // 将角度转换为十进制度数并检查角度是否超过360度
        double B = A_degrees + A_minutes / 60.0 + A_seconds / 3600.0;
        if (B > 360)
        {
            Console.WriteLine("角度错误");
            return;
        }

        // 检查半径是否超过10000米
        if (R > 10000)
        {
            Console.WriteLine("距离错误");
            return;
        }

        // 转换角度为弧度并计算
        double C = B * Math.PI / 180.0;
        double T = R * Math.Tan(C / 2);
        double E = R * (1 / Math.Cos(C / 2) - 1);
        double L = R * C;
        double q = 2 * T - L;

        // 输出结果
        Console.WriteLine($"给定半径 R = {R:F4} 米");
        Console.WriteLine($"给定角度 A = {A_degrees}°{A_minutes}'{A_seconds}\"");
        Console.WriteLine($"切线长度 T = {T:F4} 米");
        Console.WriteLine($"外矢距 E = {E:F4} 米");
        Console.WriteLine($"曲线长 L = {L:F4} 米");
        Console.WriteLine($"切曲线差 q = {q:F4} 米");
    }
}