设计一个城市交通调度系统,通过命令行或简单的图形界面实现以下基本功能,并使用适当的数据结构支持这些功能。可以选择使用C、C++ 或 Java 来实现。
1.城市和道路表示
定义城市和道路的数据结构,可以使用图的表示方法(邻接矩阵或邻接表)。
每个城市可以包括城市名称、坐标等信息,每条道路可以包括道路编号、起点城市、终点城市、距离等信息。
2.城市创建和连接
● 允许用户创建新城市并连接城市,形成城市之间的道路网络。
● 用户可以指定城市之间的距离,表示两个城市之间的道路。
3.最短路径查询
● 实现最短路径算法,允许用户查询两个城市之间的最短路径和距离。
● 展示算法执行过程中节点的状态变化和最终的最短路径。
4.城市扩展
● 允许用户在已有城市之间添加新的道路,以扩展道路网络。
● 用户可以选择添加双向道路或单向道路。
5.道路权重修改
● 允许用户修改已有道路的权重,即距离。
● 系统应能够重新计算最短路径,反映道路权重的变化。
6.城市删除
允许用户删除城市及其相关的道路,以模拟城市的变化或关闭。
7.数据统计
实现功能,能够统计每个城市的连接数量、总距离等信息。
8.数据持久化
使用文件来保存城市和道路的结构,以便下次程序运行时可以重新加载数据。
9.用户友好界面
通过命令行交互,使用户能够方便地使用系统的各项功能。
10.错误处理
考虑用户输入错误、文件读写错误等情况,给予相应的提示和处理。
11.注释与文档
● 在代码中添加适当的注释,说明关键步骤和算法。
● 提供文档,解释数据结构的选择和系统的设计原理。
具体要求如下:
1. 必须用C、C++ 或 Java语言实现,用其他语言无效。
2. 用户以命令行与系统交互,暂不使用未学过的可视化的菜单、按钮完成。
3. 文字、排版必须规整,字体、字号、行距适宜(正文五号字)。
4. 严禁大段复制网络资料,检查时将仔细询问所做的一切细节。
5. 消除错别字,若有大量的错别字,一律以不及格处理。
6. 必须完成相应的所有模块,严禁只在屏幕显示字符串提示,却没有相应的实现步骤。
7. 代码一般不少于300行。代码不要粘贴至设计报告中,除去图表后,字数为3500字左右(页数约15页)。
8. 装订整齐、规范,不脱页掉页。
9. 截图幅面应尽可能小、少。