请设计一个旅行商问题(TSP)的求解与演示系统,要求已列出。 旅行商问题这样一个问题:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。

1.主界面展示系统及功能选项,类似下面这个(并没什么美感,你们自己发挥吧。界面反对全程手敲,请尽量用字符串处理代码自动处理)

提示:import os
os.system("cls") 可以清屏(在命令行模式下)
2.模块化设计
要求每个独立功能都封装成函数:
显示主界面: ShowUI
显示城市信息: ShowCityInfo
添加城市信息: AddCityInfo
删除城市信息: DelCityInfo
修改城市信息: ModiCityInfo
TSP求解与演示:ShowTSP

img

程序主流程: main
显示城市信息界面如下:(不局限于这些城市,自行添加)

img

3.数据设计
定义一个字典或列表cityInfo,存放单个城市信息
每个城市信息包括:编号(cityID),城市(cityName),经度(cityLongitude),纬度(cityLatitude)
注:两个城市之间的距离取直线距离,由其经纬度计算得到。
为了将城市信息保存在磁盘上,不致在关闭程序时丢失数据。可以新建一个文件“城市信息表.csv”,并利用文件读写操作将城市信息保存在该文件里。

-


import pandas as pd
from tkinter import *

# 读取城市信息
cityInfo = pd.read_csv("城市信息表.csv")

# 定义函数:显示主界面
def ShowUI():
    # 在此添加代码

# 定义函数:显示城市信息
def ShowCityInfo():
    # 在此添加代码

# 定义函数:添加城市信息
def AddCityInfo():
    # 在此添加代码

# 定义函数:删除城市信息
def DelCityInfo():
    # 在此添加代码

# 定义函数:修改城市信息
def ModiCityInfo():
    # 在此添加代码

# 定义函数:TSP求解与演示
def ShowTSP():
    # 在此添加代码

# 主程序
def main():
    # 在此添加代码

# 运行主程序
if __name__ == '__main__':
    main()