CSCI2110作业6截止日期:2019年4月8日星期一中午12:00此作业的目的是让您创建和使用图形,在图形上实现各种算法,并进一步提高您的编程技能。如课堂和第一个教程中所讨论的,对于每个问题都会为您提供问题描述和一组测试。这些测试可以在提交系统(Mimir)或本课程的unix服务器上运行。您也可以在自己的计算机上使用这些测试,如第一个教程中所示。您的代码必须编译。如果它没有编译,您将在作业中收到0。图1:https://meepletown.com/wp-con...(2019年2月12日检索)背景:TickettoRide,棋盘游戏在一个流行的棋盘中名为“乘车票”1的游戏,该游戏的目标是建立一个铁路网络,覆盖每个玩家指定的路线。路线由终点城市指定,由建筑段构成上面的游戏板上有说明。例如,要构建波士顿和温尼伯之间的路线,玩家可以选择构建以下路段:波士顿到蒙特利尔、蒙特利尔到多伦多、多伦多到德卢斯以及德卢斯到温尼伯。路段越长,建设成本就越高,路段越多,建设时间越长。因此,以尽可能最有效的方式构建分配给她的路线符合玩家的利益。1由DaysofWonder发布CSCI21102019年冬季作业6问题:最小化网络长度给定铁路段游戏板和路线列表,您的任务是假设选择了每条路线的最短距离,计算建立规定路线网络的总成本。例如,给定以下游戏板和路线:波士顿2蒙特利尔波士顿2新约克芝加哥4多伦多芝加哥3匹兹堡蒙特利尔3新约克蒙特利尔3多伦多新约克2华盛顿新约克2匹兹堡匹兹堡2多伦多Pittsburgh2WashingtondoneWashingtonMontrealChicagoNew_Yorkdone图2:可能的铁路段和两条路线的示例。由此产生的成本计算将是:铁路网络包括:Chicago3PittsburghMontreal3New_YorkNew_York2PittsburghNew_York2WashingtonThetotalcostis:10Figure3:Segmentsandtotalcostofof为图2中的指定路线和游戏板构建铁路网您的任务是创建一个程序来读取游戏板和路线,并计算应构建哪些路段和总成本。编写一个名为RouteCost.java的程序,在游戏中读取来自控制台(System.in)的电路板和路由,并输出要构建的分段集和总成本。2CSCI21102019年冬季作业6输入您的程序应使用扫描仪对象读取输入,该扫描仪对象使用System.in实例化。输入将包含两个部分,每个部分有一行或多行。第一节包含游戏棋盘包含零个或多个形式为C1LC2的线,其中C1和C2是游戏棋盘上一段的端点,L是该段的长度。例如,“多伦多3蒙特利尔”。该部分以单个单词“完成”结束。第二部分包含路线并包含零个或多个形式为C1C1的行,其中C1和C2是路线的终点,包括一个或多个段。例如,“蒙特利尔华盛顿”。该部分以单个单词“done”结束。提示:您需要使用的是Scanner对象的next()和nextInt()方法。语义游戏板已连接,所有城市名称都是单个单词,例如,“Las_Vegas”。您可以假设所有游戏板和所有路线都有效。所有路线都有不同的终点(无环路或长度为0的路线)。线段是双向的,即可以在任一方向使用,游戏板表示加权无向图。路线可能相交,也可能相交resegments.Segmentsneedonlybecountedoncethough.路线的成本是路线中各段长度的总和。如果每条路线的成本最低,则铁路网络被认为是最小的。输出您的程序应输出到System.out。每行都应以换行符结尾。输出应以以下行开头:铁路网络包括:后跟铁路网络中使用的路段列表。每个段应缩进两(2)个空格,并且段应按排序顺序排列,其中(C1,L,C2)位于前面(如果C1在词法上先于C01,或者如果C1等于C01,则C2在词法上必须先于C02。段的格式与输入的格式相同。段列表后应跟lineThetotalcost为:T其中T是段长度的总和。示例参见图3。3CSCI2110Winter2019Assignment6ExampleSample输入样本输出查尔斯顿2罗利芝加哥3匹兹堡芝加哥2Saint_LouisChicago4OmahaChicago3DuluthDallas2Little_RockDallas2Oklahoma_CityDenver4OmahaDenver4Kansas_CityDenver4Oklahoma_CityDenver2Santa_FeDenver3Salt_Lake_CityDuluth2OmahaDuluth6HelenaHelena4WinnipegHelena5OmahaHelena4DenverHelena3Salt_Lake_CityKansas_City2Saint_LouisKansas_City2Oklahoma_CityKansas_City1OmahaLas_Vegas3Salt_Lake_CityLittle_Rock3NashvilleLittle_Rock2Oklahoma_CityLittle_Rock2Saint_LouisNashville3RaleighNashville2Saint_LouisNashville4PittsburghNew_York2WashingtonNew_York2PittsburghOklahoma_City3Santa_FePittsburgh2WashingtonPittsburgh2RaleighPittsburgh5Saint_LouisRaleigh2WashingtonSaint_Louis2ChicagodoneDenverWashingtonChicagoOklahoma_CitydoneTherailnetworkconsistsof:Chicago2Saint_LouisDenver4Kansas_CityKansas_City2Saint_LouisLittle_Rock2Oklahoma_CityLittle_Rock2Saint_LouisNashville3RaleighNashville2Saint_LouisRaleigh2WashingtonThetotalcostis:194CSCI21102019年冬季作业6提示和建议使用两阶段算法:创建一个代表游戏板的加权图。然后,使用Dijkstra的最短加权路径算法找到最短路径。示例解决方案不到200行代码。你的代码必须有很好的注释和缩进。请参阅Brightspace上本课程的作业部分,了解代码风格指南。您可能会假设所有输入都是正确的。请务必使用提供的测试或Mimir来测试您的程序。评分作业将根据三个标准进行评分:功能“它是否按照规范工作?”。这是通过在多个输入上运行您的程序并确保输出与预期输出匹配来以自动方式确定的。分数是根据您的程序通过的测试次数确定的。因此,如果您的程序通过了tT测试,您将获得该比例的分数。解决方案的质量“这是一个好的解决方案吗?”这考虑了解决方案是否正确、高效、覆盖边界条件、没有任何明显的错误等。这是通过代码的目视检查来确定的。最初对每个解决方案给予满分,并根据解决方案中发现的错误扣分。代码清晰度“写得好吗?”这会考虑解决方案的格式是否正确、文档是否完整以及是否遵循编码风格指南。如果您的程序无法编译,则它被认为是非功能性的并且质量极差,这意味着您将获得0的解决方案。MarksFunctionality20QualityofSolution20CodeClarity10Total50Table1:Assignment6.WhattoHandIn的评分方案如第一个教程中所述,通过Mimir提交程序的源文件。Brightspace上提供了到Mimir的链接。提交的文件中至少有一个必须是RouteCost.java,这是主程序开始运行的地方。如果你有多个Java文件要提交,将它们全部放在一个zip文件中并提交。WX:codehelp
