校园最短路径的设计文档(模板)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
校园最短路径问题的设计方案
1.问题描述
定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
2.功能需求
要求完成以下功能:
(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。
(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。
(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。
3.实现要点
(1)分析系统中的各个实体及它们之间的关系;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述;
(4)完成类中各个成员函数的定义;
(5)当用户操作错误时,系统会给出相应的出错信息。
4.类定义
为构建图及最短路径建立了图的类,其类定义如下:
const int MaxSize=8; //图中最多顶点个数class Graph
{
public:
Graph(int* a, string* v,int n ); //构造函数
~Graph( ) { } //析构函数
void Dijkstra( int v,int endv); //最小距离void PutOutVexInfo(); //取顶点信息 void PutOutArcInfo(); //输出路径void SetArc(int v1,int v2,int arclength); //修改路径 void DeleteArc(int i, int j); //删除边,其依附的两个顶点的编号为i和j
void InsertArc(int i, int j,int n); //插入边,其依附的两个顶点的编号为i和j
private:
string vertex[MaxSize]; //存放图中顶点的数组 int arc[MaxSize][MaxSize]; //存放图中边的数组 int vertexNum, arcNum; //图的顶点数和边数 };
在图的类中,提供了如下成员函数:
⑴函数声明:Graph
完成的功能:构造函数,初始化具有n个顶点的图
⑵函数声明:void Dijkstra
完成的功能:求最短距离
(3)函数声明:PutOutVexInfo
完成的功能:取顶点信息
(4)函数声明:PutOutArcInfo
完成的功能:取边信息
(5)函数声明:SetArc
完成的功能:修改路径
(6)函数声明:DeleteArc
完成的功能:删除边
(7)函数声明:InsertArc
完成的功能:插入边
(1)开始界面
(2)输出顶点信息
(3)输出边的信息
(3)修改
(4)求最短路径
(5)删除某一顶点
(6)插入某一顶点
(7)删除某条边
(8)插入某条边
(9)退出
5.不足之处
为构建图及最短路径建立了图的类,其类定义如下:
(1)无效数据的考虑不全面,如顶点编号的无效值等
(2)数据的读取不通用,数据的修改未存储,可以采用文件方式来处理(3)还可增加功能,如增删顶点
(4)算法效率可以提高
(5)源代码风格不好,如缩进等