C#,《小白学程序》第八课:列表(List)应用之二“编制高铁列车时刻表”
1 文本格式
/// <summary>
/// 车站信息类 class
/// </summary>
public class Station
{
/// <summary>
/// 编号
/// </summary>
public int Id { get; set; } = 0;
/// <summary>
/// 车站名
/// </summary>
public string Name { get; set; } = string.Empty;
public Station(int id, string name)
{
this.Id = id;
this.Name = name;
}
}
// 列表的初值
List<Station> stations = new List<Station>() {
new Station(1,"北京"),
new Station(2,"石家庄"),
new Station(3,"香河"),
new Station(4,"唐山"),
new Station(5,"北戴河"),
new Station(6,"秦皇岛"),
new Station(7,"廊坊"),
new Station(8,"天津"),
};
/// <summary>
/// 《小白学程序》第八课:列表(List)应用之二————编制高铁列车时刻表
/// 列车时刻表的每一行一般都是:车站 到达时间 出发时间
/// 两个车站之间的开行时间 time = distance / speed
/// 出发时间 = 到达时间 + 停靠时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button8_Click(object sender, EventArgs e)
{
// #1 创建列表(列车车次信息)
List<Station> G103 = new List<Station>();
// #2 添加节点(车站信息)
G103.Add(stations[0]);
G103.Add(stations[2]);
G103.Add(stations[3]);
G103.Add(stations[4]);
G103.Add(stations[5]);
// #3 时间相关的信息
// 各车站之间的距离(公里)
// 每个数据表示与前面一个车站的距离;起点站当然为0;
double[] distance = new double[] { 0, 50, 100, 140, 20 };
// 每个车站的停靠时间(分钟)
// 每个数据表示停靠时间,起点站 与 终点站 不需要!
double[] stop = new double[] { 0, 2, 2, 2, 0 };
// 列车的平均时速(公里/小时,km/h)
double speed = 160;
StringBuilder sb = new StringBuilder();
// #4 计算开始
// 设定开行时间(10点01分)
DateTime start = DateTime.Parse("10:01:00");
for (int i = 0; i < 5; i++)
{
if (i == 0)
{
// 起点站;没有到达时间;只需要输出出发时间;
sb.AppendLine(G103[i].Name + " " + start.ToString("HH:mm") + " 出发<br>");
}
else if (i == 4)
{
// 终点站;没有出发时间,只需要计算到达时间;
// 算出的是列出运行时间(小时),后面一行转为 秒
double t = distance[i] / speed;
t = t * 60 * 60;
// 到达时间 = 上一站出发时间 + 开行时间
// 本函数统一(按秒计算)
DateTime arrive = start.AddSeconds(t);
sb.AppendLine(G103[i].Name + " " + arrive.ToString("HH:mm") + " 到达<br>");
}
else
{
// 其他车站;需要计算到达时间与出发时间
double t = distance[i] / speed;
t = t * 60 * 60;
// 1 到达时间;
DateTime arrive = start.AddSeconds(t);
sb.AppendLine(G103[i].Name + " " + arrive.ToString("HH:mm") + " 到达 ");
// 2 出发时间(分钟,转为秒)
start = arrive.AddSeconds(stop[i] * 60);
sb.AppendLine(start.ToString("HH:mm") + " 出发<br>");
}
}
webBrowser1.DocumentText = sb.ToString();
}
2 代码格式
/// <summary>
/// 车站信息类 class
/// </summary>
public class Station
{/// <summary>/// 编号/// </summary>public int Id { get; set; } = 0;/// <summary>/// 车站名/// </summary>public string Name { get; set; } = string.Empty;public Station(int id, string name){this.Id = id;this.Name = name;}
}// 列表的初值
List<Station> stations = new List<Station>() {new Station(1,"北京"),new Station(2,"石家庄"),new Station(3,"香河"),new Station(4,"唐山"),new Station(5,"北戴河"),new Station(6,"秦皇岛"),new Station(7,"廊坊"),new Station(8,"天津"),
};/// <summary>
/// 《小白学程序》第八课:列表(List)应用之二————编制高铁列车时刻表
/// 列车时刻表的每一行一般都是:车站 到达时间 出发时间
/// 两个车站之间的开行时间 time = distance / speed
/// 出发时间 = 到达时间 + 停靠时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button8_Click(object sender, EventArgs e)
{// #1 创建列表(列车车次信息)List<Station> G103 = new List<Station>();// #2 添加节点(车站信息)G103.Add(stations[0]);G103.Add(stations[2]);G103.Add(stations[3]);G103.Add(stations[4]);G103.Add(stations[5]);// #3 时间相关的信息// 各车站之间的距离(公里)// 每个数据表示与前面一个车站的距离;起点站当然为0;double[] distance = new double[] { 0, 50, 100, 140, 20 };// 每个车站的停靠时间(分钟)// 每个数据表示停靠时间,起点站 与 终点站 不需要!double[] stop = new double[] { 0, 2, 2, 2, 0 };// 列车的平均时速(公里/小时,km/h)double speed = 160;StringBuilder sb = new StringBuilder();// #4 计算开始// 设定开行时间(10点01分)DateTime start = DateTime.Parse("10:01:00");for (int i = 0; i < 5; i++){if (i == 0){// 起点站;没有到达时间;只需要输出出发时间;sb.AppendLine(G103[i].Name + " " + start.ToString("HH:mm") + " 出发<br>");}else if (i == 4){// 终点站;没有出发时间,只需要计算到达时间;// 算出的是列出运行时间(小时),后面一行转为 秒double t = distance[i] / speed;t = t * 60 * 60;// 到达时间 = 上一站出发时间 + 开行时间// 本函数统一(按秒计算)DateTime arrive = start.AddSeconds(t);sb.AppendLine(G103[i].Name + " " + arrive.ToString("HH:mm") + " 到达<br>");}else{// 其他车站;需要计算到达时间与出发时间double t = distance[i] / speed;t = t * 60 * 60;// 1 到达时间;DateTime arrive = start.AddSeconds(t);sb.AppendLine(G103[i].Name + " " + arrive.ToString("HH:mm") + " 到达 ");// 2 出发时间(分钟,转为秒)start = arrive.AddSeconds(stop[i] * 60);sb.AppendLine(start.ToString("HH:mm") + " 出发<br>");}}webBrowser1.DocumentText = sb.ToString();
}
相关文章:

C#,《小白学程序》第八课:列表(List)应用之二“编制高铁列车时刻表”
1 文本格式 /// <summary> /// 车站信息类 class /// </summary> public class Station { /// <summary> /// 编号 /// </summary> public int Id { get; set; } 0; /// <summary> /// 车站名 /// </summary&g…...

2、QT的信号与槽
一、什么是信号与槽 一个对象发送一个信号出去,另外一个对象接收到该信号后,会触发相应的槽函数 二、信号与槽的语法 connect(信号的发送者,SIGNAL(信号名称),信号的接收者,SLOT(槽函数)); 1、写法: QT 4 的写法 connect(sende…...

Java代码审计15之Apache log4j2漏洞
文章目录 1、log4j简介2、复现2.1、高版本测试2.2、测试代码2.3、补充之dns探测2.3.1、rmi、ldap也可以dnslog探测 2.3.2、dnslog外带信息 3、漏洞原理3.1、漏洞的危害大的背景3.2、具体的代码调试 4、靶场测试4.1、dns探测4.2、工具下载与使用4.3、测试4.4、手工可以测出&…...

c语言每日一练(13)
前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,上学期间将看学业情况更新。 五道选择题: 1、程序运行的结果…...
H5 + C3基础(六)(2D转换transform 位移 旋转 缩放)
2D转换transform & 2D转换transform平移利用平移百分比优化盒子水平垂直居中 旋转指定2d变换的中心点 transform-origin 缩放2d转换简写 2D转换transform 所谓2D转换,就是在二维坐标系内进行各种操作,包括平移,转动,缩放等等…...

2023最新 Electron.js 桌面应用开发教程(基础篇)更新中
Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux Electron Fiddle 运行实例 Ele…...

【ES】笔记-Set集合实践
JS <script>let arr[1,2,3,4,5,4,3,2,1];//1.数组去重let result0[...new Set(arr)];console.log(数组去重${result0});//2.交集let arr2[4,5,6,5,6];let result[...new Set(arr)].filter(item>{let s2new Set(arr2);//4 5 6if(s2.has(item)){return true;}else{retur…...

缺陷或负样本难以收集怎么办?使用生成式模型自动生成训练样本,image-to-image Stable diffusion
文章大纲 样本稀疏与对应的解决方案如何解决工业缺陷检测小样本问题参考1:AIDG(Artificial Intelligent Defect Generator)参考2:灵感来源 : Image-to-Image Diffusion Models参考文献与学习路径参考博文数据集算法缺陷检测库hugging face样本稀疏与对应的解决方案 1.数据层面…...

ZMTP协议
ZoreMQ Transport Protocol是一个传输层协议,用于ZMQ的连接的信息交互,本文档描述的是3.0协议,主要分析基于NULL Security Mechanism 协议语法 ZMTP由三部分组成,分别是 greeting、handshake、traffic 部分描述构成greeting描述…...
ubuntu18安装中文环境
1. 安装中文语言包 首先,我们需要安装中文语言包。打开终端,输入以下命令: sudo apt-get install language-pack-zh-hans 这个命令会下载并安装中文语言包。安装完成后,我们需要重新启动系统(reboot)。 2. 安装中文输入法 安…...

怎么提取视频中的音乐保存到本地?其实方法很简单
当你想要使用视频中的音乐时,你可以考虑将它从视频中提取出来。这可以用于制作音频样本集,制作铃声或其他音频素材,或者向其他人展示视频的音乐部分而无需显示视频本身。如果你是一位音乐制作人员,你可能会需要一些特定类型的音效…...

线性代数的学习和整理18:矩阵的秩的各种定理, 秩和维度(未完成)
目录 1 矩阵的秩 矩阵的秩 2 求秩的方法 矩阵的维度秩 矩阵的维度 向量的模,矩阵的模-没有把,难道是面积? 矩阵的平直概念 5 矩阵的初等变换(矩阵等价概念的引出) 1 为什么要引入矩阵的“秩” 这个概念&#x…...
UVa11374 Airport Express(Dijkstra)
题意 给出经济路线以及商业路线,在给出起始点s,终止点e,在只能使用其中一个商业路线 的情况下输出最短路径 思路 如果选择商业路线为从u到v,则需要从s->u,u->v,v->e点的路径最短。使用Dijkstra计算出从s点…...
hadoop的hdfs中避免因节点掉线产生网络风暴
hadoop的hdfs中避免因节点掉线产生网络风暴 控制节点掉线RPC风暴的参数 三个参数都是hdfs-site.xml中参数,具体可以参考apache hadoop官网,其实块的复制速度有两个方面决定,一是namenode分发任务的速度,二则是datanode之间进行复…...

2023年高教社杯 国赛数学建模思路 - 案例:最短时间生产计划安排
文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…...

Spring MVC介绍
MVC模式是什么 MVC 模式,全称为 Model-View-Controller(模型-视图-控制器)模式,它是一种软件架构模式,其目标是将软件的用户界面(即前台页面)和业务逻辑分离,使代码具有更高的可扩展…...

5年测试在职经验之谈:2年功能测试、3年自动化测试,从入门到不可自拔...
毕业3年了,学的是环境工程专业,毕业后零基础转行做软件测试。 已近从事测试行业8年了,自己也从事过2年的手工测试,从事期间越来越觉得如果一直在手工测试的道路上前进,并不会有很大的发展,所以通过自己的努…...

【Python数据分析】数据分析之numpy基础
实验环境:建立在Python3的基础之上 numpy提供了一种数据类型,提供了数据分析的运算基础,安装方式 pip install numpy导入numpy到python项目 import numpy as np本文以案例的方式展示numpy的基本语法,没有介绍语法的细枝末节&am…...

Swift 如何从图片数据(Data)检测原图片类型?
功能需求 如果我们之前把图片对应的数据(Data)保持在内存或数据库中,那么怎么从 Data 对象检测出原来图片的类型呢? 如上图所示:我们将 11 张不同类型的图片转换为 Data 数据,然后从 Data 对象正确检测出了原图片类型。 目前,我们的代码可以检测出 jpeg(jpg), tiff,…...
【ES6】 JavaScript 中的Object.assign
Object.assign() 是 JavaScript 中的一个方法,它用于复制源对象的所有可枚举属性到目标对象。该方法会返回目标对象。 这是其基本用法: let target Object.assign({}, source);在这个例子中,source 对象的所有可枚举属性都被复制到了 targ…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...