城市交通咨询系统类图
时间: 2023-11-26 16:46:31 浏览: 36
根据提供的引用内容,可以得知该交通咨询系统主要包含城市地图类、站点类、弗洛伊德算法类、文件读写类、工具类和可视化界面类。因此,该系统的类图如下所示:
```uml
@startuml
class CityMap {
-cityList: List<City>
-edgeList: List<Edge>
+addCity(city: City): void
+addEdge(edge: Edge): void
+getCityByName(name: String): City
+getEdgeByStartAndEnd(start: City, end: City): Edge
}
class City {
-name: String
-x: int
-y: int
+getName(): String
+getX(): int
+getY(): int
}
class Edge {
-start: City
-end: City
-distance: double
-time: double
-cost: double
+getStart(): City
+getEnd(): City
+getDistance(): double
+getTime(): double
+getCost(): double
}
class FloydAlgorithm {
-distance: double[][]
-path: int[][]
+calculateShortestPath(cityMap: CityMap): void
+getShortestDistance(start: City, end: City): double
+getShortestPath(start: City, end: City): List<City>
}
class FileIO {
+readCityMapFromFile(fileName: String): CityMap
+writeCityMapToFile(cityMap: CityMap, fileName: String): void
+readEdgeFromFile(fileName: String): List<Edge>
+writeEdgeToFile(edgeList: List<Edge>, fileName: String): void
}
class Utils {
+calculateTime(distance: double, speed: double): double
}
class Visualization {
-cityMap: CityMap
+displayCityMap(): void
+displayShortestPath(start: City, end: City): void
}
CityMap "1" *-- "0..*" City
CityMap "1" *-- "0..*" Edge
Edge "1" -- "1" City
FloydAlgorithm "1" -- "1" CityMap
Visualization "1" -- "1" CityMap
@enduml
```