资源描述
此文档收集于网络,如有侵权请联系网站删除
概要设计说明书
目录
1引言 2
1.1编写目的 2
1.2背景 2
1.3参考资料 2
2总体设计 2
2.1运行环境 2
2.2整体构架设计 3
2.3各模块详解 5
3接口设计 8
3.1用户接口 8
3.2外部接口 8
4出错处理 8
4.1出错处理及补救措施 8
此文档仅供学习和交流
1引言
1.1编写目的
为软件设计者提供全国交通咨询模拟系统软件的概要设计说明。
预期读者:1 开发人员
2 审查人员
3 后续开发人员
1.2背景
a. 待开发的软件系统的名称:全国交通咨询模拟
b. 本项目
任务提出者:段毅
开发者:李凤忠,孙希展,赵大辉,田佳林
用户:需要查询全国交通状况的旅游者
1.3参考资料
a.本项目由西电软件课程实训部委托,小组完成并提交
2总体设计
2.1运行环境
本软件运行环境:系统:windows xp或更高
开发环境:系统:windows xp或更高 平台:VC6.0++或更高
2.2整体构架设计
参考需求分析IPO图设计出如下流程图:
开始
用户
管理员
结束
交通编辑
城市编辑
最省时旅程
最省钱旅程
选择用户组
选择功能
选择功能
添加线路
修改线路
删除线路
添加城市
删除城市
输入始末城市编号、出发到达时间、票价
输入始末城市编号、出发到达时间、票价
输入始末城市编号
输入城市名称、及与旧城市交通信息
输入城市编号
按要求修改城市、飞机、列车文档
继续操作?
输入出发、到达城市编号
输入出发、到达城市编号
系统输出最优策略:出发城市、中转城市、到达城市及其两两出发到达时间
继续查询?
选择子功能
NO
NO
YES
显示城市、交通信息
显示城市、交通信息
初始化交通图
显示全部交通情况
显示全部交通情况
整体数据结构设计:
以此为标准各个成员进行下一步的详细设计
城市图与交通图为外部变量
//结构体
//城市结构
struct city{ //城市结构体
int i; //城市编号
int used; //调用标志
char name[20]; //城市名称
otherinfo other; //其他信息
}cities[MaxCity];
//交通图结构
typedef struct ArcNode{ //表结点
int i; //到达城市编号
int Stime; //出发时间
int Etime; //到达时间
int ticket; //票价
int used; //调用标志,有效标志,删除操作更简单
struct ArcNode *nextarc;//下一条线路指针
otherinfo other; //其他信息
}ArcNode;
typedef struct VNode{ //头结点
int i; //出发城市编号
int used; //调用标志
ArcNode *firstarc; //第一条线路
otherinfo other; //其他信息
}VNode;
//飞机交通图、列车交通图
VNode Adjplane[MaxCity],Adjtrain[MaxCity];
文档信息标准:
cities.txt:0 城市名称 1 城市名称。。。。。。。n-1 城市名称
Plane.txt:第一行记录基本信息:出发城市 到达城市 出发时间 到达时间 票价 其他信息,
第二行开始记录与固定出发城市有关的线路
模式按第一行记录:例如:
出发城市 到达城市 出发时间 到达时间 票价 其他信息
0 2 4 5 6 0 3 2 5 20 0
1 2 5 6 12 0 3 1 5 18 0 4 5 9 20 0
3 0 1 6 21 0 5 8 9 10 0
2.3各模块详解
主模块
主函数
初始条件
VC集成编程环境
形参
无
函数作用
1. 按照文档初始化城市和交通图
2. 输出界面选择用户组
3. 定义密码串,若选择管理员输入的密码为真,则进入管理员函数,否则重新选择。
返回值
无
模块一
模块名称:初始化交通图
子模块:
初始化城市
初始条件
存在被合法编辑的城市信息文档cities.txt
形参
从文档cities.txt读入数组c
函数作用
按照城市结构体存入城市信息(城市编号i、城市名称name、可调用标志used)
返回值
函数调用成功或失败信息 return OK;return FALSE;
初始化交通图
初始条件
存在被合法编辑的交通信息文档plane.txt和train.txt
形参
从文档plane.txt和train.txt读入数组p和t
函数作用
从第2行开始读入信息,按照交通图的邻接表存入
头结点( 出发城市编号i、调用标志used)
表结点(到达城市编号i,出发时间Stme,到达时间Etime,票价ticket,其他信息other,可调用标志)
返回值
函数调用成功或失败信息 return OK;return FALSE;
模块二
模块名称:输出图信息
输出城市图
初始条件
已被正确初始化的城市结构体cities[MaxCity]
形参
结构体cities[MaxCity]
函数作用
从0-MaxCity-1遍历结构体,若可调用(used==1)则输出城市编号和名称
返回值
可被调用的城市名称和城市信息
输出交通图
初始条件
已被正确初始化的交通邻接表(飞机和列车)
形参
邻接表VNode Adj[]
函数作用
从0-MaxCity-1遍历结构体,若出发城市与到达城市都可调用且线路可调用,则输出该线路
返回值
可调用的线路的出发城市,到达城市,出发时间、到达时间和票价
模块三
模块名称:管理员函数
管理员函数
初始条件
密码输入正确,初始化城市图,交通图成功
形参
外部变量城市图,交通图
函数作用
显示交通图
管理员子模块:交通编辑,城市编辑
编辑一次结束后可选择继续编辑
编辑完成后,3个文档按当前城市图交通图合法重置
返回值
函数调用成功或失败信息 return OK;return FALSE;
管理员子模块:
交通编辑
初始条件
密码输入正确,初始化城市图,交通图成功
形参
外部变量城市图,交通图
函数作用
管理员选择添加、修改、或删除
显示城市图交通图
1.添加:输入新线路信息(出发城市,到达城市,出发时间到达时间,票价和其他信息)
2.修改:指定出发城市、到达城市编号,输入旧线路修改信息(出发时间、到达时间,票价和其他信息)
3.删除:指定出发城市、到达城市编号,删除该线路(设置为不可调用used=0)
返回值
函数调用成功或失败信息 return OK;return FALSE;
城市编辑
初始条件
密码输入正确,初始化城市图,交通图成功
形参
外部变量城市图,交通图
函数作用
管理员选择添加、或删除
显示城市图交通图
1.添加:输入新的城市名称,与该城市有关的线路信息, 按照输入修改城市交通图
2.删除:输入删除的城市编号,置城市调用为0,与该城市有关的线路调用为0(used=0)
返回值
函数调用成功或失败信息 return OK;return FALSE;
模块四
模块名称:用户组函数
用户组函数
初始条件
已被正确初始化的交通邻接表(飞机和列车)
形参
外部变量城市图,交通图
函数作用
显示交通图
用户选择交通工具:飞机、列车
用户选择操作:最省时旅程,最省钱旅程
返回值
函数调用成功或失败信息 return OK;return FALSE;
用户组子模块
最省时旅程
初始条件
已被正确初始化的交通邻接表(飞机和列车)
形参
外部变量城市图,交通图
函数作用
用户输入出发城市编号、到达城市编号
系统寻找最省时路线
并打印路线相关信息(出发城市、中转城市、到达城市及其时间、票价信息)
返回值
函数调用成功或失败信息 return OK;return FALSE;
最省钱旅程
初始条件
已被正确初始化的交通邻接表(飞机和列车)
形参
外部变量城市图,交通图
函数作用
用户输入出发城市编号、到达城市编号
系统寻找最省时路线
并打印路线相关信息(出发城市、中转城市、到达城市及其时间、票价信息)
返回值
函数调用成功或失败信息 return OK;return FALSE;
3接口设计
3.1用户接口
界面如下:
主界面
管理员界面
用户组界面
选择用户界面:
1管理员
2用户
1. 城市编辑
1.添加
2.删除
1.最省时旅程
出发城市
到达城市
2. 交通编辑
1.添加
2.修改
3.删除
2.最省钱旅程
出发城市
到达城市
3.2外部接口
系统外部存在3个初始文档:城市文档、飞机交通图文档、列车交通图文档(具体见第5页)
4出错处理
4.1出错信息
错误类型:1.选择用户组或操作错误 补救措施:默认选择无效,重新选择
2.输入城市编码错误,新的修改信息错误 补救措施:默认输入无效,重新输入
3.错误删除 补救措施:被删除的信息调用恢复为1
4.技术瓶颈无法找到好的算法解决最优策略 补救措施:降低算法难度,使用后被技术:从出发城市遍历找到所有合理可能的线路到达目标城市,再从中选择最优线路
展开阅读全文