补发上期:C Sharp编写缓和曲线计算应用程序——漏洞

2023-10-27 20:40

本文主要是介绍补发上期:C Sharp编写缓和曲线计算应用程序——漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上期编译程序后,发现缓和曲线整桩位为0,无法计算桩位坐标。

为此存在的一些漏洞在此表示抱歉!!!

主要错误出现在表单存储这里:上期应用"count"存储是有漏洞的。

  if (i > Kzh)
{
Kjd1 = i;
存里程.Count();

正确的应该是:应用Add方法。

  Kjd1 = i;存里程.Add(Kjd1);

其余细节的修改部分这里就不做赘述。

修复版内容:

namespace 缓和曲线计算
{class Program{public struct AtH1  {public double AtH2(double ang){int fuhao = (int)(ang / Math.Abs(ang));ang = Math.Abs(ang);int d = (int)ang;int m = ((int)(ang * 100)) - d * 100;double s = ang * 10000 - m * 100 - d * 10000;return ((d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI;}}static void Main(string[] args){double m;double p;double Thyx;double Thyy;double T;double L;double E;double q;double Kqz;double Tx;double Ty;double Kzh;double Khy;double Kyh;double Khz;double wet;AtH1 A;Console.WriteLine("请输入交点里程(需要输入里程与小数):");double Kjd = double.Parse(Console.ReadLine());Console.WriteLine("请输入转角值:");double Aef = A.AtH2(double.Parse(Console.ReadLine()));Console.WriteLine("请输入曲线半径值:");double R = double.Parse(Console.ReadLine());Console.WriteLine("请输入直缓点的X坐标:");double Xzh = double.Parse(Console.ReadLine());Console.WriteLine("请输入直缓点的Y坐标:");double Yzh = double.Parse(Console.ReadLine());Console.WriteLine("请输入ZY-JD方位角:");double Wt = A.AtH2(double.Parse(Console.ReadLine()));Console.WriteLine("请输入缓和曲线长:");double Hd = double.Parse(Console.ReadLine());m = Hd / 2 - (Hd * Hd * Hd / 240 / R / R / R);Console.WriteLine(m);p = Hd * Hd / 24 / R;Console.WriteLine(p);wet = Hd * A.AtH2(180) / 2 / R / Math.PI;Console.WriteLine(wet);Console.ReadKey();T = (R + p) * Math.Tan(Aef / 2) + m;Console.WriteLine("T ={0}", T);L = Math.PI * R * (Aef - 2 * wet) / A.AtH2(180) + 2 * Hd;Console.WriteLine("L ={0}", L);E = (R + p) / Math.Cos(Aef / 2) - R;Console.WriteLine("E = {0}", E);q = 2 * T - L;Console.WriteLine("q = {0}", q);Kzh = Kjd - T;Console.WriteLine("Kzh = {0}", Kzh);Khy = Kzh + Hd;Console.WriteLine("Khy = {0}", Khy);Kqz = Kzh + L / 2;Console.WriteLine("Kqz = {0}", Kqz);Kyh = Kqz + L / 2;Console.WriteLine("Kyh = {0}", Kyh);Khz = Kzh + L;Console.WriteLine("Khz = {0}", Khz);Console.WriteLine("检校值{0}", Kqz + q / 2 - Kjd);Console.WriteLine("请输入整桩点间隔值:");double ZZD = double.Parse(Console.ReadLine());double Kjd1 = 0;//此处我们已经可以找到整条圆曲线中间的整桩点里程   List<double> 存里程 = new List<double>();for (double i = 0; i < Khy; i += ZZD){if (i > Kzh){Kjd1 = i;存里程.Add(Kjd1);}}Console.WriteLine("本曲线共有{0}个整桩点,请输入需要计算的整桩点点号", 存里程.Count);int co = int.Parse(Console.ReadLine());Kjd1 = 存里程[ co - 1];if (Kqz + q / 2 - Kjd == 0) {Tx = Xzh + (Hd - (Hd * Hd * Hd * Hd * Hd) / (40 * R * R * (Kjd1 - Kzh)));Console.WriteLine("Tx(第{0}桩) = {1}", co, Tx);Ty = Yzh + (Hd * Hd * Hd) / (6 * R * (Kjd1 - Kzh)) - (Hd * Hd * Hd * Hd * Hd * Hd * Hd) / (336 * R * R * R * ((Kjd1 - Kzh) * (Kjd1 - Kzh) * (Kjd1 - Kzh)));Console.WriteLine("Ty(第{0}桩) = {1}", co, Ty);存里程.Add(Tx);存里程.Add(Ty);Console.ReadKey();}else{Console.WriteLine("里程不符合,计算超限");Console.ReadKey();}Kjd1 = Kzh;Thyx = Xzh + (Hd - Hd * Hd * Hd / (40 * R * R));Console.WriteLine("Thyx(缓圆点X)={0}", Thyx);Thyy = Yzh + (Hd * Hd) / (6 * R) - (Hd * Hd * Hd) / (336 * R * R * R);Console.WriteLine("Thyy(缓圆点X)={0}", Thyy);Console.ReadKey();}}
}

计算结果:

本程序由吉林建筑科技学院梁*杰老师教学授课,小编经梁*杰老师传授,进行一系列整理希望能帮助到各位测绘同学!(如有侵权请告知!!!)  

这篇关于补发上期:C Sharp编写缓和曲线计算应用程序——漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/288268

相关文章

基于Python编写一个git自动上传的脚本(打包成exe)

《基于Python编写一个git自动上传的脚本(打包成exe)》这篇文章主要为大家详细介绍了如何基于Python编写一个git自动上传的脚本并打包成exe,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录前言效果如下源码实现利用pyinstaller打包成exe利用ResourceHacker修改e

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷