- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学 号: 0120803490426
课 程 设 计
题 目 航空线路最短路径求解 学 院 管理学院 专 业 信息管理与信息系统 班 级 0804班 姓 名 祝黎 指导教师 施亚能
2010 年 07 月 09 日 课程设计任务书
学生姓名: 祝黎 专业班级: 信管0804
指导教师: 施亚能 工作单位: 管理学院
题 目:航空线路最短路径求解
初始条件:定义10个城市(自行选择)和至少20条航线(不含中转),要求任意两城市间都可达且至少有2条可选飞行路线。预先定义每条航线的最高定价,航线票价每季度都会有折扣机会,但并非必须,每季度的折扣率由随机函数产生,范围是0.3、0.4、0.5、……、0.9、1.0。用户从键盘上输入年份,确定该年各季度各航线票价的折扣情况以后,输入月份、起始城市和目的城市名称,程序能显示出最经济的路线选择方案。
要求完成的主要任务: (包括课程设计工作量及其技术要求、说明书撰写等具体要求)
依题意可知每个结点的度不小于2,航线最高票价可参考实际情况,从网上直接搜索。本程序不考虑机场建设费和燃油附加费,只计算机票价格,将其作为路径上的权值处理,耗费矩阵存储结构自行选择。
时间安排:
序号 设计内容 所用时间 1 问题分析和任务定义 0.5天 2 数据类型和系统设计 0.5天 3 编码实现和静态检查 3天 4 上机准备和上机调试 2天 5 总结和整理设计报告 1天 合 计 7天
指导教师签名: 施亚能 2010年 07月03日
系主任(或责任教师)签名: 2010年 07月09日
需求分析
该程序是一个航空最短路径求解的程序,其中程序中定义10个城市和24条航线(不含中转),任意两城市间都可达且至少有2条可选飞行路线。程序预先用邻接表定义并存储了每条航线的最高定价,航线票价每季度都会有折扣机会,每季度的折扣率由随机函数产生,范围是0.3、0.4、0.5、……、0.9、1.0。用户从键盘上输入年份,确定该年各季度各航线票价的折扣情况以后,输入月份,系统就输出相应的折扣,用户再输入起始城市和目的城市名称,程序能显示出最经济的路线选择方案。
程序拥有很清晰的人机界面,其中包括1.查看城市:将预先存储和管理员后来添加的城市一一输出。 2.选择最短时间路线:每一条航线都对应一个预先定义的时间,该操作会为用户选择花时最短的路线,并附带该路线所需费用。3.选择最节约费用路线:每一天航线都预先定义存储了对应的费用,当用户选择对应的月份后,系统会输出相应的折扣,该操作会为用户选择花费最少的航线,并附带该路线所需时间。4.管理员程序:当然一个好的程序肯定不是一个死程序,也就是它可以随时修改,该操作又包含了4个子操作:(1)添加城市 (2)添加或编辑飞机费用 (3)添加或编辑飞机时间 (4)返回主菜单。5.退出程序。
本程序运用了图的知识,构造了无向带权费用图和无向带权时间图。(如图1,图2所示)
图1 无向带权费用图 图2 无向带权时间图
部分截图
1.主菜单截图
2.查看城市
3.最低费用查询
4.最短时间查询
5.添加城市
6.飞机花费编辑
概要设计
1.数据结构
本程序运用了关于图这种数据结构,它的抽象数据类型定义如下:
typedef struct unDiGraph
{
int numVerts; //结点
costAdj cost; //邻接矩阵
}unDiGraph,*UNG;
基本操作:
unDiGraph* CreateCostG()
操作结果:构造带权(费用)图。
unDiGraph* CreateTimeG()
操作结果:构造带权(时间)图。
PathMat *Floyed(unDiGraph *D)
操作结果:Floyed函数 求任意两点的最短路径。
2.主程序流程
Floyed() pr(i,0) add_city() Floyed()
pr(Bcity,0) edit_fline() pr(Bcity,0)
prn_pass(Bcity,Ecity) edit_fhour() prn_pass(Bcity,Ec
文档评论(0)